EuDs

EuDs

EuDs's Blog
twitter
github

qqBotの構築

qqBot 搭建#

この数日間、qqBot の構築に取り組んでいます。メモを残します。

全体の技術#

私はgo-cqhttpnonebot2を使用しています。

リスク制御の問題に遭遇した場合、unidbg-fetch-qsignを使用しました。

過程#

  • 構築に取り組む前に想像していたよりも困難なプロセスで、多くの問題に直面しました。しかし、素晴らしいことは、これらの 3 つのプロジェクトの issue が非常に活発であることです。私が直面した問題は、ほとんど issue で見つけることができました。私はあまり多くのオープンソースプロジェクトを使用したことはありませんが、これらの 3 つのプロジェクトは私に良い印象を与えました。将来的には自分自身の貢献をすることを願っています。

  • 最も難しい点は、ロボットプログラムの作成ではなく、ログインであることに気づきませんでした。私が使用しているアカウントは新しいアカウントであり(約 1 週間前に作成)、リスクレベルが比較的高いです。

私の要件は次のとおりです:ボットを自分のいる場所とは異なる場所のサーバーにデプロイすることで、リスクの可能性をさらに高めることです。

さまざまな方法を試した後、最終的な解決策は次のとおりです:

  1. ローカルで手動プロトコルを使用して QR コードでログインします( "sort_version_name":8.9.73,protocol:2)。
  2. ログインに成功したら、取得したファイルをサーバーに移動し、signseverを設定して再度ログインします。
  • しかし、最終的にボットはリスク制御によって制限され、グループメッセージを送信することができません。

    短時間でさらにいじくり回すのはやめたいです。

  • 今日、自分が作成したプラグインEuDs63/nonebot-plugin-yesman: nonebot2 プラグインプラグインストア | NoneBotに公開しました。プラグインの公開手順を一通り経験しましたが、面白かったです。いくつかのポイントを挙げると:

    1. Create an account · PyPIのユーザー名の要件は、私が見た中で最も厳しいものでした。しかし、理解できます。

      Choose a strong password that contains letters (uppercase and lowercase), numbers and special characters. Avoid common words or repetition.

    2. About NoneFlowは非常に強力です。機会があれば、自分で同様のものを作成したり、どのように実現されているのかを理解したりしたいと思います。

感想#

  1. Telegram ボットを作成するときには、トークンを申請するだけで、公式のチュートリアルもあります。しかし、ここでは猫とネズミのような高度なゲームのようなものです。いろいろな感情が交錯します。
  2. nonebot のようなプラグインシステムは素晴らしいと思います。多くの手間を省くことができます。
  3. qqBot は非常に遊び心があり、他のグループでも面白いボットをよく見かけます。ただし、残念なことに、腾讯の姿勢があります。

収穫#

  1. nohup
  • 使用例: nphup nb run
  • 終了例:
    ps aux | grep `nb` #対応するプロセスIDを見つける
    kill $プロセスID
    
  1. デーモンプロセス(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 #プロセスを開始
    
  2. Python 仮想環境
    • 作成
    python -m venv myenv # myenvという名前の仮想環境を作成
    
    • アクティベート
    source ./qqVenv/bin/activate # bash
    
    source ./qqVenv/bin/activate.fish # fish
    
    

参考#

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