Magren

Magren

Idealist & Garbage maker 🛞
twitter
jike

Yuan-bot🀖に぀いお

oicqは、Node.js を䜿甚しお QQAndroidプロトコルを実装し、QQ 内でよく䜿甚される機胜操䜜を提䟛したす。
yuan-botは、oicqを基にしお TS で曞かれ、MongoDB をデヌタベヌスずしお䜿甚する QQ ボットです。珟圚、プロゞェクトは創蚭されたばかりで、Q グルヌプの゚ッセンスメッセヌゞにのみ察応しおおり、今埌の内容は埐々に充実しおいきたす。

GitHub アドレスyuan-bot

この蚘事は、このプロゞェクトの非公匏な開発日誌の経過蚘録です。

背景#

私の QQ には、私が高校や倧孊の時に剣䞉をプレむしおいたゲヌムグルヌプがありたす。
メンバヌ党員が䞊手に遊び、話すこずができたす。それぞれの蚀葉を蚘憶するために、私たちは QQ の゚ッセンスメッセヌゞ機胜を掻甚し、すべおの おしゃべり クラシックな名蚀をこの゚ッセンスメッセヌゞリストに食りたした。
この時点で、゚ッセンスメッセヌゞの内容はもはや゚ッセンスではなく、私たちは黙っおそれを「糟粕ざお」ず呌んでいたす
message.png

私たちがリストに食ったメンバヌは、苊情を蚀っおいたすもちろん、楜しんでいる人もいたすが、私は蚀いたせん、みんながわかっおいたす。
しかし、道は高く、悪は高く、卑劣なグルヌプ管理者はメンバヌの苊情を無芖し、さらには 8 呚幎蚘念日に糟粕の呚蟺商品を発売し、糟粕の数が最も倚いメンバヌにトロフィヌを授䞎するなど、糟粕文化を掚進しおいたす。メンバヌの心は乱れ、反察の声が次第に消え、みんなが笑い者になっおいたす。

ここたで、糟粕文化はグルヌプの蚭立以来のハむラむトに達したした。
bag.jpg
medal.jpg

糟粕文化が広たるに぀れ、糟粕の数も増え続け、グルヌプ管理者はいく぀かの問題に気付きたした。

  • 糟粕の数が最倧で 1000 に達し、远加するために䞀郚の糟粕メッセヌゞを削陀する必芁がありたす。これにより、䞀郚のグルヌプの歎史的な糟粕が倱われたす。
  • このような膚倧な数の䞭で、QQ グルヌプの゚ッセンスメッセヌゞは統蚈や時間での衚瀺などの機胜がなく、毎回手動で統蚈する必芁がありたす。
  • ......

Yuan-Bot は、䞊蚘の問題を解決するために生たれたした。

起動#

git clone https://github.com/Magren0321/yuan-bot.git

pnpm install

pnpm run serve

過繋#

フロント゚ンド゚ンゞニアずしお、技術の遞択は自然ず Node.js になりたした。oicqずいうラむブラリを芋぀けたした。これは Node.js をベヌスにした Android QQ で、機胜が比范的充実しおいるず感じたした。具䜓的な䜿甚方法は、私の説明よりもApi referenceを参照しおください。

゚ッセンスデヌタ#

oicq 自䜓がグルヌプオブゞェクトに゚ッセンスデヌタをカプセル化しおいないためおそらくただこの機胜を実装しおいないオヌプン゜ヌスのラむブラリがあるかもしれたせん、自分で手を動かす必芁がありたした。
Fiddler で PC 版 QQ をキャプチャし、゚ッセンスデヌタの API をキャプチャしたした。そしお、oicq が提䟛するログむン API を䜿甚しお Cookie を取埗し、リク゚ストヘッダヌに远加しお゚ッセンスメッセヌゞのデヌタを取埗したした。
぀いでに oicq に PR を提出したしたたた PR を氎増ししたした

そしお、さらに問題が発生したした。グルヌプに新しい゚ッセンスメッセヌゞが远加された堎合、oicq ではグルヌプの tips をリッスンできないこずに気付きたした。昚幎 8 月にすでに誰かが問題を提起しおいたすが、ただ解決されおいないようです。
元々の蚈画は、゚ッセンスメッセヌゞが远加された埌、サヌバヌのデヌタベヌスにリアルタむムで新しい゚ッセンスメッセヌゞを保存するこずでしたが、珟圚は別の方法に倉曎し、定期的なタむマヌに倉曎したした。䞀定の時間ごずにデヌタをリク゚ストし、最新メッセヌゞのタむムスタンプを蚘録し、叀いコンテンツをフィルタリングするようにしたした。
この方法は私にずっおは愚かな方法だず思いたすが、珟状ではこの機胜を実珟する他の方法が思い぀きたせん。

コマンド#

これは比范的簡単に解決できたす。指定されたグルヌプのメッセヌゞをリッスンし、クラスをラップしお、文字列をクラスのキヌずし、察応するメ゜ッドを倀ずしお、メッセヌゞを受け取ったらキヌを枡しお察応するメ゜ッドを実行するだけです。
image.jpg

倧たかな実装はこんな感じで、特に目立぀点はありたせん🀡

最埌ただ最埌ではないかもしれたせん#

yuan-bot の機胜は今埌も充実し、改善される予定ですただし、珟圚は仕事があるため、進捗は遅くなるかもしれたせん
🙏oicqが提䟛するむンタヌフェヌスずドキュメントに感謝したす。
🛞Power by Magren and made with love

To Be Continued.

読み蟌み䞭...
文章は、創䜜者によっお眲名され、ブロックチェヌンに安党に保存されおいたす。