二号機 - KiviBot:軽量高効率、クロスプラットフォームの QQ ボット#
date: 2023 年 1 月 27 日
slug: 18
status: Published
tags: 技術
type: Post
Bot 紹介#
KiviBot は、TypeScript言語で書かれた軽量、優雅、クロスプラットフォーム、開発者フレンドリー、動けば OKの QQ ボットフレームワークです。
フレームワークは、完備された状態監視、プラグイン管理(ホットアップデートをサポート)、主副管理者メカニズム、メッセージ通知、リクエスト処理機能、そしてフレンドリーなスキャフォールドを提供し、すぐに使えます。フレームワークは完全にオープンソースで、拡張性が高く、プラグイン開発が簡単で、コアの底層プロトコルは oicq v2 を使用し、API が多数あり、機能が強力です。また、フレームワークは node を使用して駆動されており、node とその効率的な v8 エンジンのおかげで、KiviBot の性能は素晴らしいです。
インストール#
1.Linux プラットフォームでの使用#
i.node.js のインストール#
対応するパッケージマネージャーを使用するか、公式サイトからインストールできます(私は宝塔を選びました)。18 バージョンの使用をお勧めし、最低でも 14 バージョンを下回らないようにし、環境変数(
NODE_HOME
変数)を適切に設定して、コマンドラインが正常に
node
および
npm
コマンドにアクセスできるようにしてください。
環境変数を設定した後もボットを起動できない場合、以下のコードを実行すると効果的です:
echo -e "export PATH=(npmprefix−g)/bin:(npm prefix -g)/bin:(npmprefix−g)/bin:PATH" >> ~/.bashrc && source ~/.bashrc
(私が下手なだけかもしれません)
ii.KiviBot CLI のグローバルインストール#
CLI(Command Line Interface)は、コマンドラインインターフェースの略で、ターミナルやコマンドラインにテキストコマンドを入力してコンピュータシステムを操作する方法を指します。CLI では、ユーザーがキーボードでコマンドを入力し、コンピュータがそのコマンドに基づいて対応する操作を実行します。CLI は、グラフィカルインターフェース(GUI)に比べて柔軟性が高く、機能が強力であり、プログラマーやシステム管理者の選択肢となります。
npmi -g kivibot@latest
もちろん、グローバルにインストールしない選択もでき、その場合は npm kivi を使用して CLI コマンドを実行できます。
iii.CLI を通じて設定ファイルを生成する#
# フレームワークディレクトリとして空のディレクトリを作成し、このディレクトリに切り替えますmkdir ~/bot && cd ~/bot
# CLIを通じて現在のディレクトリに設定ファイルを生成します
kivi init
iv.KiviBot を起動する#
kivistart
v. バックグラウンドデプロイ(オプション)#
kivi deploy
# CLIはpm2を使用してフレームワークプロセスをバックグラウンドにデプロイします
2.Windows プラットフォームでの使用#
デプロイ方法は上記と同様です。
3.Android プラットフォームで KiviBot を使用する#
i.Termux のダウンロードとインストール#
このステップは教える必要はないでしょう?
ii.Termux の国内ミラーソースを設定する#
sed -i 's@^\(deb.*stable main\)$@#\1\ndeb https://mirrors.aliyun.com/termux/termux-packages-24 stable main@' $PREFIX/etc/apt/sources.list
sed -i 's@^\(deb.*games stable\)$@#\1\ndeb https://mirrors.aliyun.com/termux/game-packages-24 games stable@' $PREFIX/etc/apt/sources.list.d/game.list
sed -i 's@^\(deb.*science stable\)$@#\1\ndeb https://mirrors.aliyun.com/termux/science-packages-24 science stable@' $PREFIX/etc/apt/sources.list.d/science.list
pkgupdate
iii.Node.js のインストール#
pkg install nodejs
残りのステップは Linux インストールと完全に同じです#
実際、すべてのインストール方法は Linux 環境を模倣 / インストールして node を実行し、フレームワークを実行するためのものであるため、理論的には今持っている電子時計でも KiviBot を実行できる可能性があります。性能が本当に十分かもしれません。
設定#
手順に従ってインストールが完了すると、ボットのオンライン通知を受け取るはずです。今、ボットに
/help
コマンドを送信して、フレームワークがサポートするコマンドのリストを確認できます。
メッセージコマンド#
KiviBot
UI インターフェースはなく、プラグイン管理、管理変更、状態監視などの操作はすべて
QQ メッセージコマンド
を通じて実現されます。ボットに
/help
を送信すると、すべてのフレームワークコマンドを確認できます。
管理者のみ使用可能
で、プライベートチャットでもグループチャットでも有効です。フレームワークのすべてのメッセージコマンドのリスト:
KiviBot CLI コマンド#
KiviBot CLI はフレームワークのスキャフォールド、またはコマンドラインツールであり、フレームワークを起動するための
kivi
コマンドです。これを使用して設定ファイルの生成、プラグインや依存関係のインストール、フレームワークの起動などを支援できます。入力して
kivi
コマンドを実行すると、CLI の詳細な使い方が表示されます。以下の表は CLI のすべてのコマンドとその説明を示しています。
設定ファイル#
フレームワークディレクトリ内の
kivi.json
は
KiviBot
の設定ファイルであり、一連のフレームワーク設定が含まれており、手動で変更することができ、再起動後に有効になります。
kivi start
kivi.json
app.js
{
// Bot QQ アカウント、CLIによって生成される"account": 114514,
// ログイン方式、CLIによって生成される、選択肢はpassword(パスワードログイン)とqrcode(QRコードログイン)"login_mode": "password",
// デバイスロック認証方式、パスワードログインを選択した場合、CLIによって生成される、QRコードを選択した場合はデフォルトで認証コードログイン// 選択肢はsms(SMS認証コード認証)とqrcode(QRコード認証)"device_mode": "sms",
// フレームワークのログメッセージ表示モード、デフォルトはshort(簡略モード、CQコードを無視し、リソース消費が少ない)// detail(詳細モード、CQコードの具体的内容が表示され、プラグインのデバッグに役立つ)に設定することもできます。"message_mode": "short",
// Botアカウントのパスワード、パスワードログインを選択した場合、CLIによって生成される、QRコードを選択した場合はデフォルトで空"password": "",
// フレームワークのログ出力レベル、デフォルトはinfo、ログを出力しない場合はoffに設定、プラグインのデバッグにはdebugに設定できます"log_level": "info",
// 管理者リスト、CLIによって生成される、最初の1人は主管理者(必須)、残りは副管理者(オプション)"admins": [1141284758],
// 有効なプラグインリスト、npmプラグイン(kivibot-plugin-で始まる)とpluginsディレクトリ内のプラグイン// npmプラグイン(kivibot-plugin-で始まる)はkivibot-plugin-プレフィックスを無視します"plugins": ["demo"],
// ボットイベント通知"notice": {
// 有効化、メッセージコマンド/config notice onおよび/config notice offを通じてリアルタイムで切り替え可能"enable":true,
// 友達リスト関連設定"friend": {
// 友達申請"request": {
// 友達申請通知を有効にするかどうか、デフォルトは有効(true)、無効にする場合はfalseに設定"enable":true,
// 友達申請の処理、選択肢:ignore(無視、デフォルト)、accept(同意)、refuse(拒否)"action": "ignore"
},
// 新しい友達通知、デフォルトは有効(true)、無効にする場合はfalseに設定"increase":true,
// 友達減少通知、デフォルトは有効(true)、無効にする場合はfalseに設定"decrease":true,
// 友達のプライベートメッセージ通知、デフォルトは無効(false)、有効にする場合はtrueに設定"message":false},
// グループチャット関連設定"group": {
// ボットをグループに招待する"request": {
// 通知を有効にするかどうか、デフォルトは有効(true)、無効にする場合はfalseに設定"enable":true,
// グループ招待の処理、選択肢:ignore(無視、デフォルト)、accept(同意)、refuse(拒否)"action": "ignore"
},
// 新しいグループチャット通知、デフォルトは有効(true)、無効にする場合はfalseに設定"increase":true,
// 新しいグループチャット通知、デフォルトは有効(true)、無効にする場合はfalseに設定"decrease":true,
// ボットが禁止された通知、デフォルトは有効(true)、無効にする場合はfalseに設定"ban":true,
// グループ管理者の変更通知、デフォルトは有効(true)、無効にする場合はfalseに設定"admin":true,
// グループ譲渡通知、デフォルトは有効(true)、無効にする場合はfalseに設定"transfer":true}
},
// oicqプロトコル設定、oicqドキュメントを参照、dataディレクトリはdata/oicqに制限され、手動で変更できません"oicq_config": {
// ログインプロトコル:1はAndroidスマートフォン、2はAndroidタブレット、3はAndroidスマートウォッチ、4はMacOS、5はiPad"platform": 5,
// oicqのログレベル、oicqのログはフレームワークディレクトリのlogsフォルダに出力されます"log_level": "info",
// グループチャット内で、ボット自身のメッセージを無視するかどうか、デフォルトは無視、無視しない場合はfalseに変更"ignore_self":true,
// 最適なサーバーを自動的に選択するかどうか、デフォルトは有効、無効にする場合はfalseに変更// 無効にすると常にmsfwifi.3g.qq.com:8080を使用して接続します"auto_server":true,
// グループメンバーリストをキャッシュするかどうか、デフォルトはキャッシュして効率を向上させ、無効にするとメモリ使用量が大幅に減少します"cache_group_member":true,
// ネットワークの問題で切断された場合の再接続間隔、デフォルトは5(秒)、0に設定すると自動再接続しません"reconn_interval": 5,
// 風控時に分割送信を試みるかどうか、デフォルトはtrue、分割送信しない場合はfalseに設定"resend":true,
// ffmpegのパスを指定"ffmpeg_path": "ffmpeg",
// ffprobeのパスを指定"ffprobe_path": "ffprobe"
}
}
よくある質問#
多くのよくある質問がありますが、私は見るのが面倒なので、適当に使ってください。
プラグイン#
KiviBot
のプラグインは以下の 2 種類に分かれます:
-
npmプラグイン
-
ローカルプラグイン
npm プラグインでもローカルプラグインでも、彼らはすべてCommonJS
規範に準拠した node モジュールであるべきです。プラグイン設定ファイルは統一してフレームワークディレクトリ/data/plugins/<name>
に配置されており(一般的にはconfig.json
ファイル)、特別な説明がない限り、大部分の公式プラグインの設定はここで変更してください。ソースコードを直接変更すると、更新時に上書きされて設定が無効になる可能性があります。node モジュール、つまり:モジュールディレクトリ内に存在する
index.js
package.json
package.json
main
npm プラグイン#
いわゆる npm プラグインとは、以下のように使用できるプラグインです。
/plugin add
メッセージコマンドを使用して npm から直接ダウンロードしてインストールすることができます(または
npm
または
kivi
コマンドを使用してターミナルでインストールすることもできます)。通常、この種のプラグインの命名は
kivibot-plugin-
で始まる約束に従います。公式プラグインはこの形式で npm に公開され、ユーザー体験を向上させます。npm プラグインは先にインストールする必要があり、インストールが完了すると、フレームワークディレクトリ内の
node_modules
ディレクトリに保存され、プラグインのソースコードを見つけることができます。
メッセージコマンドを使用してプラグインをインストールまたは有効にする際には、kivibot-plugin-
プレフィックスを付ける必要はありません。
ローカルプラグイン#
言うまでもなく、ローカルプラグインとは npm に公開されていないローカルプラグイン(ユーザーが独自に開発したプラグインや一部のプライベートプラグイン)を指し、ダウンロードする必要はありません。フレームワークディレクトリ内の
plugins
ディレクトリに保存されます。npm プラグインと同様に、各プラグインはすべて CommonJS
規範に準拠した node モジュールであるべきです。
使用体験#
このボットは設定が簡単で、プラグインが多く、開発者に優しいですが、残念ながら作者が逃げてしまいました。 彼の対話機能は一号機よりもバグが多く、性格調教設定をサポートしていませんが、多くの華やかな機能が追加されています(私にとっては実用性が一般的です)。
ChatGPT の API がオープンになるのを待ちましょう。今の 3.0 はあまりにも堅苦しいです。