Skip to content

Repository files navigation

xool

前日のポストの成績を毎日まとめて自動ポストします。https://x.doany.io

LGTMは https://github.com/danything/lgtm に分離しました。

𝕏 に投稿した1日を集計して、通信簿として自分のアカウントにポストするツール。

𝕏 でログインして自動ポストを ON にすると、JST で日付が変わったあとに前日分をポストします。

数えるのはその日の自分のポスト (リポストは除く) で、件数と前日比、うちリプライの数、 いいね・リポスト・返信・ブックマーク、インプレッション (合計・平均・最高)、 プロフィールクリックとリンククリック、連続してポストした日数。反応の行だけは常に出ますが (ゼロもひとつの答えなので)、ほかは数字が出なければ行ごと落ちるので、書くことがなければ 短くなります。末尾に #ポスト通信簿 が付きます。

一度もポストしなかった日は投稿しません。読み取りは1件 $0.005、投稿は1件 $0.015 の課金対象で、 言うことのない日に払う理由がないためです。

自動ポストが報告するのは必ず終わった日なので、ON にした直後と「今すぐ」を押したときだけは その日のここまでを即座にポストします。こちらは0件でも投稿します。

/admin で x.com に何を請求されているか (読み取り数・投稿数・インプレッション数) を 確認できます。開けるのは ADMIN_X_IDS に載っている人と、そこから権限を渡された人だけで、 それ以外には 403 ではなく 404 を返します。ADMIN_X_IDS の管理者は画面からは剥がせないので、 渡した相手が間違いだったときの戻り道になります。

開発環境

リバースプロキシ (genkan) を先に立ち上げておく
https://github.com/danything/genkan
下記コマンドで立ち上げ

./s.sh i

各自の設定

compose.yml は全員共通で、直接編集しません。手元だけの設定は compose.override.yml に書きます。Docker Compose が自動で読み込んで compose.yml に重ねるため、起動コマンドは変わりません。このファイルは gitignore してあります。

# compose.override.yml
services:
  xool:
    environment:
      # 𝕏 のOAuthアプリ。コールバックは https://x.localhost/api/cb
      - CLIENT_ID=xxxxx
      - CLIENT_SECRET=xxxxx
      # OAuth の state に使う任意の文字列
      - HASH=xxxxx
      # /admin を開ける人。空なら誰も開けません
      - ADMIN_X_IDS=xxxxx
      # 開発者ポータルの Bearer Token。GET /2/usage/tweets 専用で、
      # 管理画面に 𝕏 の実測値を並べるためだけに使います。無くても動きます
      - X_BEARER_TOKEN=xxxxx

重ねた結果は下記で確認できます。

docker compose config

About

x.doany.io — 𝕏 の1日のポストを集計して通信簿として自動ポストするツールと、LGTM 画像の生成・ホスティング

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages