All Projects → proshunsuke → colmsg

proshunsuke / colmsg

Licence: MIT License
A CLI tool for 櫻坂46メッセージ, 日向坂46メッセージ and 乃木坂46メッセージ app.

Programming Languages

rust
11053 projects
Makefile
30231 projects

Projects that are alternatives of or similar to colmsg

KeyakiMsgAssistant-Xposed
Xposed module for "欅坂46/日向坂46 メッセージ" app
Stars: ✭ 15 (-50%)
Mutual labels:  keyakizaka46, hinatazaka46
onemoretime
Nogizaka46 graduated members' blog archive
Stars: ✭ 42 (+40%)
Mutual labels:  nogizaka46

colmsg

櫻坂46メッセージのロゴ日向坂46メッセージのロゴ乃木坂46メッセージのロゴ

「櫻坂46メッセージ」「日向坂46メッセージ」「乃木坂46メッセージ」アプリのメッセージをPCに保存します。

demo

概要

colmsg のインストール方法はこちらを参照してください。

まず初めにrefresh_tokenを取得してください。取得方法はこちらを参照してください。

取得出来たら以下を実行してください。
<s_refresh_token> , <h_refresh_token> , <n_refresh_token> に「櫻坂46メッセージ」「日向坂46メッセージ」「乃木坂46メッセージ」それぞれで取得してきたrefresh_tokenを入れてください。
※ 指定するのは購読しているアプリのみで問題ありません。

購読しているメンバー全員の全期間のメッセージが保存されます。

colmsg --s_refresh_token <s_refresh_token> --h_refresh_token <h_refresh_token> --n_refresh_token <n_refresh_token>

Windowsの場合は実行ファイル名を colmsg.exe に読み替えてください。

特徴

  • 端末のroot化の必要がありません
  • Android, iosアプリどちらにも対応しています
  • Windows, macos, Linuxで実行できます
  • 様々な保存方法が選べます
  • 以下のアプリのバージョンに対応しています
    • 「櫻坂46メッセージ」: バージョン1.3.00.120
    • 「日向坂46メッセージ」: バージョン2.4.00.120
    • 「乃木坂46メッセージ」: バージョン1.0.02.121

使い方

概要で基本的な使い方を説明しました。
しかし、refresh_tokenは機微情報なため、ターミナル上で直接入力するのはあまり良くないでしょう。
そこで、configファイルにデフォルトのオプションを設定しておくことをおすすめします。
configファイルについてはこちらを参照してください。
以降はconfigファイルでrefresh_tokenが設定されているものとします。

colmsg にはいくつかのオプションがあり、様々な保存方法を選べます。

特定のメンバーのメッセージを保存したい場合

colmsg -n 菅井友香 -n 佐々木久美

特定のグループのメッセージを保存したい場合

colmsg -g sakurazaka

特定の種類のメッセージを保存したい場合

colmsg -k picture -k video

特定の日時以降のメッセージを保存したい場合

colmsg -F '2020/01/01 00:00:00'

オプションは組み合わせて使用することが出来ます。より詳細な説明は以下を実行して確認してください。

colmsg --help

詳細な仕様

  • 既にいくつかメッセージが保存されている場合にコマンドを実行すると、最後に保存したメッセージ以降のメッセージを取得して保存します
  • 保存されるメッセージは次のディレクトリ構造で保存されます
    • colmsg/
      ├── 日向坂46 一期生
      │   └── 佐々木久美
      │       └── 1_0_20191231235959.txt
      ├── 乃木坂46
      │   └── 秋元真夏
      │       └── 2_1_20200101000000.jpg
      └── 櫻坂46 一期生
          └── 菅井友香
              ├── 3_2_20200101000001.mp4
              └── 4_3_20200101000002.mp4
  • ファイル名の形式は <シーケンス番号>_<種類>_<日付>.<拡張子> となっています
    • シーケンス番号はメッセージの時系列を表す番号になっています。若い数字程昔のメッセージです。ファイルブラウザで辞書順に並べると保存したメッセージが時系列通りに並びます
    • 種類の数字は以下のように対応しています
      • 0: テキストメッセージ
      • 1: 画像
      • 2: 動画
      • 3: ボイス
  • 各環境毎のデフォルトの保存先は以下を実行することで確認することが出来ます
    • colmsg --download-dir
  • 既に保存済のメッセージは上書き保存されません

configファイル

colmsg は設定ファイルで予めオプションを指定することが出来ます。
デフォルトのパスは以下を実行することで確認することが出来ます。

colmsg --config-dir

また、環境変数 COLMSG_CONFIG_PATH に設定ファイルの場所を明記することもできます。

export COLMSG_CONFIG_PATH="/path/to/colmsg.conf"

フォーマット

この設定ファイルはコマンドライン引数の単純なリストです。colmsg --help を利用すると、利用可能なオプションとその値を閲覧することが出来ます。さらに、# でコメント文を加えることができます。

設定ファイルの例:

# s_refresh_tokenを指定
--s_refresh_token s_refresh_token

# h_refresh_tokenを指定
--h_refresh_token h_refresh_token

# n_refresh_tokenを指定
--n_refresh_token n_refresh_token

# メディアファイルだけ保存するように設定
-k picture -k video -k voice

インストール

Windows

Windows用のビルド済実行ファイルをzipに圧縮してリリースページに配置しています。
ダウンロードして7-Zipなどの解凍ソフトで解凍してください。
解凍後に実行ファイル colmsg.exe が取得出来ます。
PowerShell上などで実行してください。

macOS

Homebrewでインストールすることが出来ます。

brew tap proshunsuke/colmsg
brew install colmsg

Arch Linux

AURからインストールできます。

yay -S colmsg

バイナリ

異なるアーキテクチャのためのビルド済実行ファイルをリリースページに配置しました。

開発

colmsg は外部APIを叩きます。開発時はOpenApiを利用したモックサーバーを建てることが出来ます。

make server/kh
make server/n46

環境変数 S_BASE_URL , H_BASE_URL , N_BASE_URL を指定することでモックサーバーへリクエストすることが出来ます。

S_BASE_URL=http://localhost:8003 H_BASE_URL=http://localhost:8003 N_BASE_URL=http://localhost:8006 cargo run -- -d ~/Downloads/temp/ --help

TODO

  • CIによる自動テスト
  • examplesの用意
  • メッセージ保存処理の並列化
  • api clientのcrate化

ライセンス

colmsg は MIT License の条件の下で配布されています。

ライセンスの詳細については LICENSE ファイルを参照して下さい。

注意事項

アプリの利用規約 第8条(禁止事項)に以下の項目があるため注意してください。

  • (16) 当社が指定するアクセス方法以外の手段で本サービスにアクセスし、またはアクセスを試みる行為
  • (17) 自動化された手段(クローラおよび類似の技術を含む)を用いて本サービスにアクセスし、またはアクセスを試みる行為
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].