見出し画像

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#

この記事が気に入ったらサポートをしてみませんか?