Help us understand the problem. What is going on with this article?

discord.py のデバッガー ddiscord が便利

discord.py のデバッグは少し難しい

discord.py という、discord BOT を作るためのパッケージがあります。
大変使いやすくて良いのですが、非同期であるがゆえにデバッグが難しく、起動にも時間がかかるため、ちょっとしたモデレーション目的でコードを実行するのも面倒で困っていました。
そこで、デバッグを簡単にするためのツール ddiscord を開発しました。

ddiscord はこう使う

コマンド ddiscord を実行するとトークンを問われるので、自分のBOTのトークンを入力してください。
起動すると discord.Client のインスタンス client が使用可能な状態で REPL もどきが起動します。

$ ddiscord
 - Debugger for discord.py -
Running on Python 3.7.2. Send EOF (Ctrl-D) to exit.
Logged in as YourBot#0000 (012345678901234567)
You can refer to your Client instance as `client` variable. i.e. client.guilds

>>> len(client.guilds)
1
>>> client.user.bot
True
>>> await client.guilds[0].create_text_channel('test')
<TextChannel id=012345678901234567 name='test' position=1>
>>>

見ての通り discord.py の簡単なデバッグや、またコマンドによるサーバーの管理を行うことができます。

インストール方法

PyPIに登録してありますので、pip install できます。

$ python3 -m pip install ddiscord

Q and A

起動時に毎回トークンを入力するのがめんどくさい

カレントディレクトリに token というテキストファイルがあれば、ddiscord はそのファイルの中身をトークンとして認識します。
また、環境変数 DISCORD_TOKEN があれば、それをトークンとして認識します。
またトークンをコマンド引数として渡すこともできますので、複数のトークンを別々のエイリアスに登録しておくのも便利かと思います。
その他の起動方法は GitHub に書いてあります。

for文とか入力できないの?

今はまだ複数行の入力を受け付けません。方法を見つけたらそのうち対応したいですね……。
もし実現するためのアイデアをお持ちでしたらコメントやPRをいただけると助かります!

早速ですがアドバイスを頂いて、複数行に渡るコードをサポートしました!

Ctrl-C で終了しようとしたらなんかエラーめっちゃ出たんだけど

既知のバグです。EOF を送信すればエラーなしに正常終了してくれます。Windows では Ctrl-Z、Linux では Ctrl-D です。
原因が掴めず困っているので、こちらもアドバイスありましたらぜひおねがいします。

aiotter
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした