discord.pyを使ってbotを作ったメモ
誰が何時に寝たか,誰が先に寝るか,スプレッドシートで記録する地獄の習慣が身内のdiscordサーバで始まったのでdiscordのbotを作りました.
on_voice_state_update()で決まった時間にvcを抜けたら,その人に向けてのおやすみコール.
ziholoop()で見やすくするために時報というか区切り?を表示してるだけです.
いつか,もっと機能を追加して改善したいです.嘘です.
参考にさせてもらった神記事を下に貼っておきます.
#coding:utf-8
import discord
from discord.ext import tasks
import datetime
client = discord.Client()
TOKEN = 'トークン'
suimin = 睡眠ログのチャンネルid
@client.event
async def on_ready():
channel = client.get_channel(suimin)
await channel.send('皆さんの健康増進を睡眠の面から手助けします.')
await client.change_presence(activity=discord.Game(name="睡眠記録", type=1))
@client.event
async def on_voice_state_update(member,before,after):
alert_channel = client.get_channel(suimin)
if after.channel is None:
dt_now = datetime.datetime.now()
if 0 <= int(dt_now.hour) <= 10 or 20 <= int(dt_now.hour) <= 24:
msg = f'{dt_now:%H:%M} に {member.name} が {before.channel.name} から退出しました.おやすみなさい.'
await alert_channel.send(msg)
@tasks.loop(seconds = 60)
async def ziholoop():
dt_now = datetime.datetime.now()
if int(dt_now.hour) == 20 and int(dt_now.minute) == 0:
ziho = client.get_channel(suimin)
await ziho.send('-----',dt_now.month,'/',dt_now.day,'-----')
elif int(dt_now.hour) == 12 and int(dt_now.minute) == 0:
ziho = client.get_channel(suimin)
await ziho.send('-------------')
ziholoop.start()
client.run(TOKEN)
DiscordのBot登録・設定・トークンの発行方法
https://dot-blog.jp/news/discord-bot-token/
discord.py でボイスチャンネルの入退出をテキストチャンネルに通知するコード
https://qiita.com/aiotter/items/69f8d5a4c5a75313e77a
[Python]Discordで指定時間に発言させるBOT
https://qiita.com/higuratu/items/033e6fa655ee4b1d2ff0
discord.py 公式ドキュメント
https://discordpy.readthedocs.io/ja/latest/index.html#
この記事が気に入ったらサポートをしてみませんか?