Discord

提供:ペチラボ書庫
2025年3月6日 (木) 00:03時点におけるPtt (トーク | 投稿記録)による版 (→‎定期実行)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

主にdiscord.pyについて書く

Discord bot の作成

  1. Applicationを作成する
  2. botアカウントを追加
  3. Privileged Gateway Intentsを設定する
  4. botをサーバーに招待する

messageに含まれる情報

  • id


できること

リアクションをつける

async def on_message(message):
	await message.add_reaction('👍')

リプライ

async def on_message(message):
	await message.reply('リプライ')

ファイル送信

channel = client.get_channel(CHANNEL_ID)
await channel.send(file=discord.File("filename"))

定期実行

@tasks.loop() デコレータの処理を宣言して、on_ready()で開始する

@tasks.loop(minutes=30) とすれば30分おきに実行

jst = datetime.timezone(datetime.timedelta(hours=+9), 'JST')
times = [
    datetime.time(hour=13, minute=00, tzinfo=jst)
]
@tasks.loop(time=times)
async def loop():
    # 処理

@client.event
async def on_ready():
    await loop.start()

のようにすれば指定の時刻に実行される

スラッシュコマンド

このへんに書かれてます https://discordpy.readthedocs.io/ja/latest/interactions/api.html#discord.app_commands.Command

引数の入力補完には choices か autocomplete が使えそうだが、choices は25個までの制限がある模様