前提・実現したいこと
python3.7にて、discordでのチャットボットを作成中です。
ユーザーの「おはよう」に対して
botが「おはようございます。今日は何をしますか?」とお返事したとして、
それに対してユーザーが「今日は運動をします」と返した場合
「楽しんでくださいね」と返すようにしたいのです。
(前置きなしにユーザーが「今日は運動をします」と言ったときは別の返信をさせたい)
発生している問題・エラーメッセージ
エラーは特にありませんが、
今日は運動をします、と言っても応答がありません。
該当のソースコード
async def on_message(message): if message.author.bot: return if "おは" in message.content: text = message.content + '\n' file = open('log.txt', 'a') file.write(text) file.close() x1="今日は何をしますか?" x2="今日も頑張りましょう。" xxx = "おはようございます。"+random.choice((x1,x2)) await message.channel.send(xxx) file = open('log.txt', 'a') file.write(xxx + '\n') file.close() if "今日は何をしますか" in xxx: text = '1' file = open('log.txt', 'a') file.write(text) file.close()#ここまではOK async def on_message(message): if message.author.bot: return if "運動します" in message.content: await message.channel.send("楽しんでくださいね") elif "行きます" in message.content: await message.channel.send("行ってらっしゃい")
試したこと
どこまで動いているか確認するため、log.textに同時入力させています。
「ここまではOK」までは動いているのですが、おそらくそのあとのif以降が動いていません。
最初、if "今日は何をしますか" in xxx:以降の「async def~」は書いていなかったのですが
インデント下げで、messageを判定しないのかと思い、追記したのですが、動かず、お手上げな状態です。
補足情報(FW/ツールのバージョンなど)
python3.7
python初心者でコードがひどく稚拙かもしれませんが、何卒宜しくお願い致します。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/04 09:05
退会済みユーザー
2019/07/04 09:33 編集
2019/07/04 09:48 編集