get_user などで UserDetail を取得した際、Twitterのアカウントを設定していないと traq.exceptions.ApiValueError: Invalid value for `twitter_id`, must match regular expression `^[a-zA-Z0-9_]{1,15}$ になる
再現するコード
Python 3.9.6
traq 3.9.1-0
import traq
from traq.api import user_api
configuration = traq.Configuration(
host = "https://q.trap.jp/api/v3"
)
configuration.access_token = 'TOKEN'
with traq.ApiClient(configuration) as api_client:
api_instance = user_api.UserApi(api_client)
try:
# Twitterを設定していない人(sorameaくん) の ID
api_response = api_instance.get_user('5a7baf27-aed3-44cf-8e77-4cbc7a1993a1')
except traq.ApiException as e:
print("Exception when calling UserApi->get_user_stats: %s\n" % e)
内容
get_user
などでUserDetail
を取得した際、Twitterのアカウントを設定していないとtraq.exceptions.ApiValueError: Invalid value for `twitter_id`, must match regular expression `^[a-zA-Z0-9_]{1,15}$
になる再現するコード
Python 3.9.6 traq 3.9.1-0
原因
レポジトリ全体で、Twitterのidのバリデーションをするための正規表現が
r'^[a-zA-Z0-9_]{1,15}$'
になっていて : https://github.com/search?q=repo%3Amotoki317%2Ftraq-py%20%7B1%2C15%7D&type=codeTwitterのidが設定されていない場合は空文字列となってこれに引っかかる。
修正すべき内容
r'^[a-zA-Z0-9_]{1,15}$'
を全てr'^[a-zA-Z0-9_]{0,15}$'
に変更する