#初めに
この記事は僕がPythonで作ったDiscord Botを簡単に共有できればと思い書いたものです
あまり詳しくは書きませんが誰かの役に立てれば幸いです
#このBotで出来ること
Discord からLinuxを操作できます
「ls」コマンドや 「less」コマンドなど基本的に何でも使えます。
ただvimやsudoなどユーザーが追加で入力するものなどは使えません(コード追加すれば可能だと思われ)
二千文字の制限がDiscordにあるのでそれ以上のものは送信できません。
あとエラー処理してないのでvimなど開こうとするとbotが飛びます。
#実行環境
Debian 10
Python 3.7.3
#コード
import subprocess
# インストールした discord.py を読み込む
import discord
# 自分のBotのアクセストークンに置き換えてください
TOKEN = 'ボットのトークン'
# 接続に必要なオブジェクトを生成
client = discord.Client()
# 起動時に動作する処理
@client.event
async def on_ready():
# 起動したらターミナルにログイン通知が表示される
print('ログインしました')
async def job(message):
await message.channel.send('そろそろ寝ましょう!')
# メッセージ受信時に動作する処理
@client.event
async def on_message(message):
# メッセージ送信者がBotだった場合は無視する
if message.author.bot:
return
# 「/neko」と発言したら「にゃーん」が返る処理
if message.content == '/neko':
await message.channel.send('にゃーん')
if message.content == '/konn':
await message.channel.send("こん")
if message.author.id == DiscordのユーザーID:
messStr = str(message.content)#ユーザーのメッセージを取得
messList = messStr.split(" ")#ユーザーのメッセージをスペース区切りで配列にする
res = subprocess.check_output(messList)#そのコマンドを実行、出力をresに代入
res = res.decode("utf-8")#resをutf-8ででデコード
await message.channel.send(res)#メッセージを送信
else:
await message.channel.send("権限がありません")
client.run(TOKEN)
#ユーザーIDについて
途中で出てきたユーザーIDというのはDiscordで確認できます。
そのIDを使ってコマンドを実行してよいユーザーなのかを判定しています。
###IDを表示する方法
ユーザー設定→テーマ→開発者モード をオンにします
そしてDiscordのユーザーを右クリックしてIDをコピーから参照できます。