{"id":49575515,"url":"https://github.com/void2610/game-promo-hub","last_synced_at":"2026-05-03T16:34:35.859Z","repository":{"id":350119525,"uuid":"1205393012","full_name":"void2610/game-promo-hub","owner":"void2610","description":null,"archived":false,"fork":false,"pushed_at":"2026-04-08T23:58:18.000Z","size":105,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-09T01:24:05.538Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/void2610.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-08T23:29:54.000Z","updated_at":"2026-04-08T23:58:22.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/void2610/game-promo-hub","commit_stats":null,"previous_names":["void2610/game-promo-hub"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/void2610/game-promo-hub","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/void2610%2Fgame-promo-hub","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/void2610%2Fgame-promo-hub/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/void2610%2Fgame-promo-hub/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/void2610%2Fgame-promo-hub/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/void2610","download_url":"https://codeload.github.com/void2610/game-promo-hub/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/void2610%2Fgame-promo-hub/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32577124,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T06:36:36.687Z","status":"ssl_error","status_checked_at":"2026-05-03T06:36:09.306Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-05-03T16:34:34.404Z","updated_at":"2026-05-03T16:34:35.853Z","avatar_url":"https://github.com/void2610.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# game-promo-hub\n\nDiscord Bot を使ってインディーゲームのプロモーション下書きを管理し、承認済みの投稿をスケジューリングして X/Twitter に自動投稿します。パフォーマンス分析には SQLite と Claude CLI を活用します。\n\n## セットアップ\n\nDiscord Developer Portal の操作手順・Twitter/X アカウント認証の設定方法を含む詳細なセットアップ手順は **[SETUP.md](SETUP.md)** を参照してください。\n\n1. `.env.example` を `.env` にコピーし、必要な認証情報を入力します。  \n   各項目の取得方法は [SETUP.md](SETUP.md) で詳しく説明しています。\n2. `uv` を使って仮想環境を作成し、依存ライブラリをインストールします。\n   ```bash\n   uv sync\n   ```\n3. Claude CLI が正常に動作することを確認します。\n   ```bash\n   echo \"Translate テスト to English. Respond with English only.\" | claude --print\n   ```\n4. Bot を起動します。\n   ```bash\n   uv run python bot.py\n   ```\n\n## よく使うコマンド\n\n```bash\n# 依存ライブラリのインストール・更新\nuv sync\n\n# Bot の起動\nuv run python bot.py\n\n# テストの実行\nuv run python -m unittest discover -s tests -v\n\n# 構文チェック（コンパイル確認）\nuv run python -m compileall bot.py cogs services tests\n```\n\n## Discord スラッシュコマンド一覧\n\n| コマンド | 説明 |\n|---|---|\n| `/game_add` | ゲームを登録する |\n| `/game_list` | 登録済みゲームの一覧を表示する |\n| `/progress_add` | 進捗ログを追加する |\n| `/appeal_add` | アピールポイントを追加する |\n| `/asset_add` | 添付ファイルを素材として登録する |\n| `/promo_draft` | ツイート下書きを AI で生成する |\n| `/draft_list` | 既存の下書き（承認待ち・承認済み）を一覧表示する |\n| `/analytics_fetch` | X/Twitter のメトリクスを取得する |\n| `/analytics_report` | 宣伝分析レポートを生成する |\n| `/analytics_top` | エンゲージメント上位投稿を表示する |\n| `/schedule_slot_add` | 定期投稿スロットを追加する |\n| `/schedule_slot_list` | 定期投稿スロット一覧を表示する |\n| `/schedule_slot_remove` | 定期投稿スロットを削除する |\n| `/schedule_queue_list` | 承認済みキューを表示する |\n| `/schedule_queue_cancel` | 承認済みキューを取り消す |\n\n## システム概要\n\n```\nDiscord\n  └─ スラッシュコマンド\n       ├─ /game_add・/progress_add・/appeal_add・/asset_add\n       │    ゲーム情報・進捗・アピール・素材を SQLite に登録\n       ├─ /promo_draft・/draft_list\n       │    Claude CLI でツイート下書きを生成 → 承認ボタンで承認キューへ追加\n       │    /draft_list で承認待ち・承認済み下書きを確認\n       ├─ /analytics_fetch・/analytics_report・/analytics_top\n       │    Playwright でメトリクスをスクレイピング → Claude CLI で分析レポートを生成\n       └─ /schedule_slot_add・/schedule_queue_*\n            JST の時刻スロットを管理し、スケジューラが自動投稿を実行\n```\n\n## 環境変数\n\n| 変数名 | 必須 | 説明 |\n|---|---|---|\n| `DISCORD_TOKEN` | ✅ | Discord Bot トークン |\n| `DISCORD_GUILD_ID` | ✅ | コマンドを同期するギルド ID |\n| `ALLOWED_USER_IDS` | ✅ | Bot の操作を許可するユーザー ID（カンマ区切り） |\n| `TWITTER_USERNAME` | ✅ | X/Twitter アカウントのユーザー名またはメールアドレス |\n| `TWITTER_PASSWORD` | ✅ | X/Twitter アカウントのパスワード |\n| `TWITTER_SESSION_PATH` | | Playwright セッションキャッシュのパス（デフォルト: `twitter_session.json`） |\n| `PROMO_DB_PATH` | | SQLite DB のパス（デフォルト: `promo.db`） |\n| `ASSETS_DIR` | | 素材ファイルの保存先（デフォルト: `assets/`） |\n| `PROMPTS_DIR` | | プロンプトファイルの格納先（デフォルト: `prompts/`） |\n| `CLAUDE_TIMEOUT` | | Claude CLI のタイムアウト秒数（デフォルト: `120`） |\n| `SCHEDULER_POLL_SECONDS` | | スケジューラのポーリング間隔秒数（デフォルト: `30`） |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoid2610%2Fgame-promo-hub","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvoid2610%2Fgame-promo-hub","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoid2610%2Fgame-promo-hub/lists"}