Feature/tool based reminder routing #12
@@ -112,8 +112,11 @@ async def on_message(message: discord.Message):
|
|||||||
# (新規作成したスレッド、または元のチャンネル)に統一する。
|
# (新規作成したスレッド、または元のチャンネル)に統一する。
|
||||||
reply_channel = await _ensure_thread(message, content)
|
reply_channel = await _ensure_thread(message, content)
|
||||||
|
|
||||||
async with reply_channel.typing():
|
try:
|
||||||
try:
|
# typing() の開始(=タイピング表示のリクエスト送信)自体が権限不足で失敗しうる
|
||||||
|
# (スレッド作成には成功しても "Send Messages in Threads" が無いケースなど)ため、
|
||||||
|
# try の外に置くと on_message ごと落ちて何の返信もされない。try の内側に入れる。
|
||||||
|
async with reply_channel.typing():
|
||||||
if any(keyword in content for keyword in USELESS_TALK_KEYWORDS):
|
if any(keyword in content for keyword in USELESS_TALK_KEYWORDS):
|
||||||
redirect = await _generate_useless_talk_redirect(content)
|
redirect = await _generate_useless_talk_redirect(content)
|
||||||
await _reply(message, reply_channel, redirect)
|
await _reply(message, reply_channel, redirect)
|
||||||
@@ -147,9 +150,9 @@ async def on_message(message: discord.Message):
|
|||||||
if reply:
|
if reply:
|
||||||
record_message(reply)
|
record_message(reply)
|
||||||
await _reply(message, reply_channel, reply or "(応答が空でした)")
|
await _reply(message, reply_channel, reply or "(応答が空でした)")
|
||||||
except Exception:
|
except Exception:
|
||||||
logger.exception("Failed to generate reply for Discord mention")
|
logger.exception("Failed to generate reply for Discord mention")
|
||||||
await _reply(message, reply_channel, "⚠️ 応答の生成に失敗しました")
|
await _reply(message, reply_channel, "⚠️ 応答の生成に失敗しました")
|
||||||
|
|
||||||
|
|
||||||
async def _generate_useless_talk_redirect(content: str) -> str:
|
async def _generate_useless_talk_redirect(content: str) -> str:
|
||||||
|
|||||||
Reference in New Issue
Block a user