EbiseLutica / botbone-next

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

BotBone Next

TypeScript による Xeltica/BotBone の再実装。

Node.js v17.5.0が必要。

システム アーキテクチャー

本システムは、

  • コア
  • アダプター
  • コマンド
  • プラグイン からなります。

コア

コアは、プラグイン、アダプター、コマンドを読み込み管理します。

アダプター

アダプターは、BotBoneとサービスをつなぐインターフェイスの役割を持ちます。サービスを操作するAPIを実装し、リプライなどのイベントが起こるたびにコアにイベントをemitします。

コマンド

コマンドは、/ から始まる特定のフォーマットの文字列を受け取ったときに動作し、必ず結果を返します。

プラグイン

プラグインは、コアのイベントを購読したり、アダプターを介してサービスを操作したりと、実際のBotの挙動を提供します。

なぜ再実装?

元々BotBoneはC#で書かれていました。リポジトリ

以下の理由で、TypeScriptで、フルスクラッチで開発を開始することとなりました。

  • Misskeyアダプターに使用していたライブラリ「OrionDevelop/Disboard」が長らくメンテナンスされていない
    • misskey-jsというMisskey開発元が提供する公式ライブラリが開発開始した
  • 開発者が、C#よりTypeScriptのほうが個人的に書きやすいなと感じ始めた
  • 旧BotBoneの設計自体にいくつか課題が見え始めた

方針

本プロジェクトの目標は、C#で書かれた旧BotBoneと同等の機能を備えつつ、旧BotBoneにおいて煩雑な設計を取っ払い、なるべくシンプルに設計したBotフレームワークを開発することです。

旧BotBoneが持っていたパワフルな機能はほぼすべて実装するつもりですが、いくつかは旧BotBoneとは異なる形での実装・あるいは廃止します。

  • Rating APIは実装しません。 代わりにビルトインのプラグインとして作り直します。好感度はUserStorage APIを介して取得できるようにします。
  • UserStorage キーの仕様を変更します。

ライセンス

MIT LICENSE

About

License:MIT License


Languages

Language:TypeScript 97.3%Language:JavaScript 2.7%