discord.pyでFortniteのアイテムショップが更新された際にチャンネルに画像を送信したい
発生している問題
通常のコマンドで同じコードを実行すると動いていたが、tasks.loopで実行するとなぜか、sendの属性がないと返され、正常に実行できない。
エラー
Unhandled exception in internal background task 'itemshop_up'. Traceback (most recent call last): File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/ext/tasks/__init__.py", line 101, in _loop await self.coro(*args, **kwargs) File "main.py", line 159, in itemshop_up await channel.send(embed=embed, file=discord.File(fp=io.BytesIO(res.content), filename='shop.png')) AttributeError: 'NoneType' object has no attribute 'send'
問題のソースコード
py
1@tasks.loop(seconds=90) 2async def itemshop_up(): 3 with open('cached/shop.txt', 'r', encoding='utf-8') as c: 4 cached = c.read() 5 res = requests.get('https://api.nitestats.com/v1/shop/shophash') 6 if cached != res.text: 7 with open('cached/shop.txt', 'w', encoding='utf-8') as f: 8 f.write(res.text) 9 10 channel = bot.get_channel(846888372214431786) 11 embed = discord.Embed(title='Fortnite Item Shop',color=0x00ffff) 12 embed.set_image(url='attachment://shop.png') 13 await channel.send(embed=embed, file=discord.File(fp=io.BytesIO(res.content), filename='shop.png')) 14 15(下の方でitemshop_up.start()は入力済み)
試したこと
IDの指定方法が悪いのか、sendの指定が悪いのか、メッセージだけを指定して試してみたが、同じエラーが出てしまい画像どころか、メッセージすらも投稿不可能。
補足情報(FW/ツールのバージョンなど)
replitのIDE環境
Python 3.8.2
回答1件
あなたの回答
tips
プレビュー