技術的な話

Toubans! Discord Versionは、名前と機能を似せていますが、Toubans!本家とは仕組みが100%異なります。



環境

Toubans! 本家はPHPで動いていますが、私はPHPなどちんぷんかんぷんなので、Python 3.6.5(バージョン大事)で動かしています。

discord.pyというすばらしいBot Clientがあるので、それのrewriteバージョンを使っています。

Pythonを常時稼動するために、家のRaspberry Pi 3を使っています。

設定画面

LIFFに相当するものがないのは(GUIが作れないとして)難点でした。

そのかわり、LIFFを使わなくてもguild.id(LINEのgroup idに相当)が取得できます。

設定は、チャット内でコマンドを送る(コマンドプロンプト好きならわかる)方法で行うことにしました。

設定はラズパイ内のjsonファイルに記録されています。

                
@bot.command(name="設定A")
async def config_a(ctx, v):
    guild=ctx.message.channel.guild
    config=_rjson()
    config[str(guild.id)]["config_a"]=v
    _wjson(config)
    await ctx.send("設定しました!")
                
            

通知

通知はcreate_task内で無限ループをまわすという原始的な方法でやっています。

ほとんどがKenny2githubさん作。詳細はソースコードを!

ソースコード

GitHubにてMITライセンスで公開中。

ソースコードを見る

本家にない! Discord versionの自慢

  1. Discordにメンション機能があるので、それを使える
  2. 設定変更役職を作って、当番設定を勝手に変えられないようにできる
  3. 絵文字入りヘルプメッセージ
  4. 必要なファイルは1ファイル(+トークンファイル)のみ
  5. 設定忘れを教えてくれる
  6. ボットと友達になる手間が省ける