xpjp/xpfiat-bot

Xp-Botの負荷軽減

Opened this issue · 12 comments

実現したいこと

Xp-Botの負荷軽減

ゴール

@foo87b さんからの提案です。
Discordの権限をうまく駆使すれば、本家のBOTのままで負荷削減はある程度できるようになると考えています。
例1: #bot-spam チャンネルでコマンド打ったら、負荷軽減用BOTがその人の発言権を即座に奪い本家BOTがレスポンスしたら解除する
例2: 負荷軽減用BOTに全ユーザーをグループ分けさせて、一定時間ごとに順番で発言できるように管理させる
などなど

相談したいこと

何かよい実装案などありましたら提案頂きたいです。
よろしくお願いします。

discordrbにRateLimiterが実装されているようです。
https://github.com/VxJasonxV/discordrb/blob/master/lib/discordrb/commands/rate_limiter.rb

bot.command rate_limit_message: "連続してコマンドは使用できません!ちょっと待ってから試してね", bucket: 何かbucket渡す
でいけそうに見えるのですが…動くのかな

とりあえずRateLimiter動きましたー。
一回コマンド叩いたら、一定時間同じコマンド叩けないようにできます。
やりたいことってこういうことで合ってますか?

あー、状況を理解しました。XpFiat-BotじゃなくてXp-Bot(本家)の方なのですね。
本家は勝手に,コマンド回収して動いてしまうのか…うーむ
本家のBot開発者はどなたなのでしょうか?プルリクとかコード片送ってRateLimiter使って欲しいですね

現時点では本家はクローズドソースで、ソースコードの開示には難色を示されているそうです。
本家の開発者さんの発言を拾ってみると下記の状況のようです。

  • ,balance コマンドに対しレート制限を実装
  • ,rain コマンドの削除

次回本家BOTが正常に動いて負荷に耐えてくれるなら負荷軽減が不要になるかもしれないのですが…

やはり XPJP-Bot の気運が高まりますね...こちらでコントロールできないことには根本解決しなさそうです。

そうですねー、どんどん重要度が増していく…

機能が未実装でも先にXPJP-Botを動かして置いておくだけで多少は本家への集中回避できるかな?
混乱招くと思って躊躇してるんですがご意見伺いたく。

ss 2017-12-18 14 06 50

このサーバでは、参加してから10分以上経過したメンバーのみメッセージを送信できます。

ってdiscordこんなこともできるんですね。
輪番停電するならこれ使えるかもしれませんね。

すみません、 XPJP-Botxpfiat-bot とは別のものを指してます?

本家がいい感じに対応するまでは、すべての ,command を禁止して、 _command 経由で叩くことで制限かけるとかは無理ですかね?(文化から変えないといけないので、できたとしても正直あまりいい方法ではないのですが)

@mc-chinju 全く別物ですー XPJP-Botは本家のXp-Botみたいな動作balance,tip,rain等の機能を予定していると思います。

@p-suke ふむふむ。XPJP-BOT はここのコミュニティとは別のところで開発しているんでしょうか?

@p-suke ただいま私が開発中でして、ある程度形になったらリポジトリを作ろうと思ってます。
ウォレットのほうで手が埋まってしまってたのでもー少しお待ちください orz

@foo87b チャットのやりとり拝見させていただいてましたが、ふーさんすごいですね...!何か手伝えることがあればやりますので言ってください 😄