lapis

lapis

理解以真实为本,但真实本身不会自动呈现

二号機-KiviBot:軽量で効率的なクロスプラットフォームのQQボット

二号機 - KiviBot:軽量高効率、クロスプラットフォームの QQ ボット#

date: 2023 年 1 月 27 日
slug: 18
status: 公開
tags: 技術
type: 投稿

Bot 紹介#

KiviBot はTypeScript言語で書かれた軽量優雅クロスプラットフォーム開発者フレンドリー動けば良い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

を送信すると、すべてのフレームワークコマンドを確認できます。

管理者のみ使用可能

で、プライベートチャットでもグループチャットでも有効です。フレームワークのすべてのメッセージコマンドのリスト:

https://blog-1302893975.cos.ap-shanghai.myqcloud.com/pic/202301272325564.png

KiviBot CLI コマンド#

KiviBot CLI はフレームワークのスキャフォールド、またはコマンドラインツールであり、フレームワークを起動するための

kivi

コマンドです。これを使用して設定ファイルの生成、プラグインや依存関係のインストール、フレームワークの起動などを支援できます。入力して

kivi

コマンドを実行すると、CLI の詳細な使い方が表示されます。以下の表には CLI のすべてのコマンドとその説明が示されています。

https://blog-1302893975.cos.ap-shanghai.myqcloud.com/pic/20230127232727.png

設定ファイル#

フレームワークディレクトリ内の

kivi.json

KiviBot

の設定ファイルであり、一連のフレームワーク設定が含まれており、手動で変更可能で、再起動後に有効になります。

kivi start

kivi.json
app.js
{
// ボット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",
// ボットアカウントパスワード、パスワードログインを選択した場合、CLIによって生成される、QRコードログインを選択した場合はデフォルトで空"password": "",
// フレームワークログ出力レベル、デフォルトはinfo、ログを出力しない場合はoffに設定、プラグインのデバッグにはdebugに設定可能"log_level": "info",
// 管理者リスト、CLIによって生成される、最初の一人は主管理者(必須)、残りは副管理者(オプション)"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 はあまりにも堅苦しいです。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。