qqBot 搭建#
この数日間、qqBot の構築に取り組んでいます。メモを残します。
全体の技術#
リスク制御の問題に遭遇した場合、unidbg-fetch-qsignを使用しました。
過程#
-
構築に取り組む前に想像していたよりも困難なプロセスで、多くの問題に直面しました。しかし、素晴らしいことは、これらの 3 つのプロジェクトの issue が非常に活発であることです。私が直面した問題は、ほとんど issue で見つけることができました。私はあまり多くのオープンソースプロジェクトを使用したことはありませんが、これらの 3 つのプロジェクトは私に良い印象を与えました。将来的には自分自身の貢献をすることを願っています。
-
最も難しい点は、ロボットプログラムの作成ではなく、ログインであることに気づきませんでした。私が使用しているアカウントは新しいアカウントであり(約 1 週間前に作成)、リスクレベルが比較的高いです。
私の要件は次のとおりです:ボットを自分のいる場所とは異なる場所のサーバーにデプロイすることで、リスクの可能性をさらに高めることです。
さまざまな方法を試した後、最終的な解決策は次のとおりです:
- ローカルで手動プロトコルを使用して QR コードでログインします(
"sort_version_name":8.9.73
,protocol:2
)。 - ログインに成功したら、取得したファイルをサーバーに移動し、
signsever
を設定して再度ログインします。
-
しかし、最終的にボットはリスク制御によって制限され、グループメッセージを送信することができません。
短時間でさらにいじくり回すのはやめたいです。
-
今日、自分が作成したプラグインEuDs63/nonebot-plugin-yesman: nonebot2 プラグインをプラグインストア | NoneBotに公開しました。プラグインの公開手順を一通り経験しましたが、面白かったです。いくつかのポイントを挙げると:
- Create an account · PyPIのユーザー名の要件は、私が見た中で最も厳しいものでした。しかし、理解できます。
Choose a strong password that contains letters (uppercase and lowercase), numbers and special characters. Avoid common words or repetition.
- About NoneFlowは非常に強力です。機会があれば、自分で同様のものを作成したり、どのように実現されているのかを理解したりしたいと思います。
- Create an account · PyPIのユーザー名の要件は、私が見た中で最も厳しいものでした。しかし、理解できます。
感想#
- Telegram ボットを作成するときには、トークンを申請するだけで、公式のチュートリアルもあります。しかし、ここでは猫とネズミのような高度なゲームのようなものです。いろいろな感情が交錯します。
- nonebot のようなプラグインシステムは素晴らしいと思います。多くの手間を省くことができます。
- qqBot は非常に遊び心があり、他のグループでも面白いボットをよく見かけます。ただし、残念なことに、腾讯の姿勢があります。
収穫#
nohup
- 使用例:
nphup nb run
- 終了例:
ps aux | grep `nb` #対応するプロセスIDを見つける kill $プロセスID
デーモンプロセス(Systemd)
注:以下は使用 NoneBot2 和 go-cqhttp 打造自己的 FF14 QQ 机器人からの引用です- 作成
# vim /lib/systemd/system/go-cqhttp.service [Unit] Description=GO-CQHTTP Wants=network-online.target After=network-online.target [Service] Type=simple User=root WorkingDirectory= GO-CQHTTPの実行ディレクトリ ExecStart= nohup go-cqhttp KillMode=process [Install] WantedBy=multi-user.target
- 使用
systemctl status go-cqhttp #ステータスを確認 systemctl enable go-cqhttp #起動時に自動起動するように設定 systemctl restart go-cqhttp #プロセスを再起動 systemctl stop go-cqhttp #プロセスを停止 systemctl start go-cqhttp #プロセスを開始
- Python 仮想環境
- 作成
python -m venv myenv # myenvという名前の仮想環境を作成
- アクティベート
source ./qqVenv/bin/activate # bash source ./qqVenv/bin/activate.fish # fish