discord.botで特定の曜日時間でメッセージを送るようにしたい
数日前に初めてpythonを始めたものです。
discord botに特定の曜日、日時になったときにメッセージを送るプログラムを作成したいのですが、エラーも出ず、頼れるかたも周りにおらず、困っています。
エラーメッセージが出ないのですが、初心者のた安直な手段ではありますがprint分を配置することで大体のエラーが起こっている場所を特定しました。
print("send2") await channel.send('時間だよ') print("send3")
print("完了") await SendMessage()
どうやらこの二つが機能しておらず、discordにメッセージを送れないようです。
よろしくお願いします
### コードエラー説明
特定の曜日と時間になったときメッセージを送るBOTを作りたいと思い、today()とweekday()でその日の曜日を割り出し、曜日番号と=であれば"第1段階"と出力されます。
if date.weekday()==5: print("1段階")
次にその日の時間を割り出し、その時間と=であれば"完了"と出力し、await SendMessage()をdiscordに送るはずなのですが、メッセージが届きません。
if timedate.hour==1: print("完了") await SendMessage()
そこでSendMessage()を見てみると"send2"で止まってることがわかりました。
async def SendMessage(): print("send") channel = client.get_channel(チャンネル番号) print("send2") await channel.send('時間だよ') print("send3"
コード内容とエラー文
python
1 2ソースコード 3import datetime 4import discord 5from discord.ext import tasks 6 7TOKEN = "トークン番号" 8CHANNEL_ID = チャンネル番号 9client = discord.Client() 10 11 12print(datetime.date.today()) 13date=datetime.date.today() 14print(date.weekday()) 15timedate=datetime.datetime.now() 16print(timedate) 17print("時:",timedate.hour) 18print("分:",timedate.minute) 19 20@client.event 21async def on_ready(): 22 print('ready') 23 24async def SendMessage(): 25 print("send") 26 channel = client.get_channel(チャンネル番号) 27 print("send2") 28 await channel.send('時間だよ') 29 print("send3") 30 31@tasks.loop(seconds=5) 32async def loop(): 33 if date.weekday()==5: 34 print("1段階") 35 if timedate.hour==1: 36 print("完了") 37 await SendMessage() 38 print("完了2") 39 40@client.event 41async def on_message(message): 42 43 if message.author.bot: 44 return 45 46 if message.content == '!help': 47 await message.channel.send('現在使用できるコマンドはありません') 48 49loop.start() 50client.run(TOKEN)
出力
2019-07-27 5 2019-07-27 01:22:22.753057 時: 1 分: 22 1段階 完了 send send2 ready
エラー文
ありません、ごめんなさい
回答1件
あなたの回答
tips
プレビュー