前置き
ブログを構築したからには、ここに書いた雑多な簡単なコードを載せてもいいかなと思いました。どれも簡単なので、Githubでそれぞれにリポジトリを作るつもりはありません。 まずは「ビリビリ漫画のチェックインと福利券交換」を更新します。将来的に時間があれば、また何か書くかもしれません。
動機
ビリビリ漫画で毎日チェックインすると一定のポイントがもらえ、ポイントは漫画購入に使える福利券に交換できます。 ただし、最もお得な100ポイントは毎日0時に一定数のみ配布されます。
そのために、NoneBot2とbilibili-apiをベースにし、SocialSisterYi/bilibili-API-collectを参考にして2つのプラグインを書きました。それぞれ毎日のチェックインでポイントを受け取る用と、毎日0時に福利券を購入する用で、現在使ってみて安定性が非常に高いです。
NoneBot2は比較的簡単に使えて、私もその上でいくつかのプラグインを開発しました。時間があれば共有できるかもしれません。
実現した効果は以下の通りです:

成功率が高すぎてプッシュ通知が全く必要ないようです
念のためプッシュ通知しておきましょう
コード
get_sessdata.py
ログイン情報を取得・更新するために使用
cookie_pathは以下の5つのキーを含むjsonファイルです:
- sessdata
- buvid3
- bili_jct
- actimevalue
- dedeuserid
ブラウザのInPrivateモードでログインした後、cookieから取得できます。詳細はbilibili-apiドキュメントを参照してください
checkin.py
シンプルなNoneBot2プラグインで、QQボットに/漫画签到を送信して手動で実行することも、毎日指定した時間に定期的に実行して結果をフィードバックすることもできます。
ここでは汎用的な形式にはせず、すべてのQQボットの友達に使わせるのではなく、QQボットの管理者に送信することのみサポートしています。
もちろん、使う場合はcronで直接定期的に実行するように変更し、別の方法でメッセージをプッシュするか、プッシュしないことを検討してもいいです。
exchange.py
毎日0時に交換するためのNoneBot2プラグインです。実際には23時59分から実行を開始して前処理を行い、その後システム時刻を検出して0時に正確に交換するため、システム時刻が正確であることを確認し、定期的に時刻を同期してください:
NoneBot2のロジックは上記のチェックインプラグインと同様です。exchange_func関数を確認して交換ロジックを理解すれば十分です。コードは以下の通りです: