複数の Twitter アカウントのブックマークを収集・閲覧するアプリケーション。
- crawler: 全アカウントのブックマークを定期取得し SQLite に保存
- viewer: 収集したブックマークを Twitter 風 UI で一覧表示
- Docker / Docker Compose
data/config.json(アカウント設定ファイル)
data/config.json を作成してください:
{
"twitter": {
"accounts": [
{
"email": "[email protected]",
"username": "your_username",
"password": "your_password",
"otp_secret": null
}
]
}
}
otp_secretは 2 段階認証 (TOTP) を使用している場合に設定します。
cp .env.example .env
# .env を編集して設定をカスタマイズdocker compose up -danalyzer は形態素解析によるタグ抽出とカテゴリ自動分類を行うオプション機能です。
analyzer プロファイルを指定して起動します。
# .env に ANALYZER_URL を設定する
echo "ANALYZER_URL=http://analyzer:3002" >> .env
# analyzer プロファイルを有効にして起動
docker compose --profile analyzer up -d| サービス | URL |
|---|---|
| Web UI | http://localhost:3000 |
| Crawler API | http://localhost:3001 |
| 変数名 | デフォルト | 説明 |
|---|---|---|
CRAWL_SCHEDULE |
0 * * * * |
クロールスケジュール (cron 式、デフォルト: 1 時間毎) |
CRAWL_ON_STARTUP |
true |
起動時に即クロール実行 |
PROXY_SERVER |
- | プロキシサーバー |
PROXY_USERNAME |
- | プロキシ認証ユーザー名 |
PROXY_PASSWORD |
- | プロキシ認証パスワード |
ANALYZER_URL |
- | analyzer サービスの URL(設定時にクロール後に自動分析を実行する) |
| 変数名 | デフォルト | 説明 |
|---|---|---|
CRAWLER_URL |
http://crawler:3001 |
crawler サービスの URL |
ANALYZER_URL |
- | analyzer サービスの URL(設定時に analyzer 機能が有効になる) |
| エンドポイント | メソッド | 説明 |
|---|---|---|
/health |
GET | ヘルスチェック |
/crawl |
POST | クロール手動実行 |
/crawl/status |
GET | 最新クロールジョブの状態 |
/bookmarks |
POST | ブックマーク追加(ボディ: {"account": "<username>", "tweetId": "<id>"} ) |
/bookmarks/:tweetId |
DELETE | ブックマーク削除(クエリ: ?account=<username>)。DB からも即時削除 |
data/ ディレクトリに以下が保存されます:
| ファイル | 説明 |
|---|---|
config.json |
アカウント設定 |
db.sqlite |
ブックマーク DB |
cookies-{username}.json |
Cookie キャッシュ (7 日間有効) |