lapis

lapis

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

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

二号機 - 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

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

管理者のみ使用可能

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

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
{
// 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 はあまりにも堅苦しいです。

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