Discordチャンネルの過去投稿をチェックしてアラートを飛ばすPythonコード
特定Discordチャンネルの過去投稿をチェックし、特定ユーザーが投稿していなかったらアラートを飛ばすPythonコードを書きました。
Advertisement
Discordチャンネルの過去投稿をチェックしてアラートを飛ばす
私はDiscordをログ管理ツールとして利用しており、1時間ごとに動作ログが送られてきます。
その動作ログを利用して死活監視するためのコードを書きました。
DiscordAPIの用意
まずDiscordの各種機能を利用するためにDiscordAPIの設定を行い、discord.pyをインストールしてください。
Discordチャンネルの過去投稿をチェックしてアラートを飛ばすPythonコード
import discord, datetime
TOKEN = 'トークン'
log_channel_id = 監視対象のチャンネルID
alert_channel_id = 通知を送りたいチャンネルID
intents = discord.Intents.default()
intents.message_content = True
client = discord.Client(intents=intents)
author_list = ["監視対象のユーザー名"]
@client.event
async def on_ready():
log_channel = client.get_channel(log_channel_id)
alert_channel = client.get_channel(alert_channel_id)
async for message in log_channel.history(limit=30):
if(len(author_list) != 0):
if((datetime.datetime.now(datetime.timezone.utc) - message.created_at).seconds <= 10800):
for i, author in enumerate(author_list):
if(author in str(message.author)):
del author_list[i]
else:
break
else:
await log_channel.send("Complete")
await client.close()
for author in author_list:
await alert_channel.send("Alert-" + author)
await client.close()
client.run(TOKEN)
まずトークンや監視対象・アラート先のチャンネルIDを指定します。
監視対象のユーザー名をリストに記述して実行すれば、30件までの投稿が取得され、投稿時間が過去3時間以内のものがチェックされます。
あとはこの処理を監視したい頻度で定期実行するように設定すればOKです。
Advertisement
これで異常が発生しても3時間以内に気がつくことができます。
-
前の記事
discord.pyを利用する 2023.01.23
-
次の記事
Cloud Functionsを定期実行する 2023.01.25