https://github.com/void2610/game-promo-hub
https://github.com/void2610/game-promo-hub
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/void2610/game-promo-hub
- Owner: void2610
- License: mit
- Created: 2026-04-08T23:29:54.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-04-08T23:58:18.000Z (3 months ago)
- Last Synced: 2026-04-09T01:24:05.538Z (3 months ago)
- Language: Python
- Size: 103 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# game-promo-hub
Discord Bot を使ってインディーゲームのプロモーション下書きを管理し、承認済みの投稿をスケジューリングして X/Twitter に自動投稿します。パフォーマンス分析には SQLite と Claude CLI を活用します。
## セットアップ
Discord Developer Portal の操作手順・Twitter/X アカウント認証の設定方法を含む詳細なセットアップ手順は **[SETUP.md](SETUP.md)** を参照してください。
1. `.env.example` を `.env` にコピーし、必要な認証情報を入力します。
各項目の取得方法は [SETUP.md](SETUP.md) で詳しく説明しています。
2. `uv` を使って仮想環境を作成し、依存ライブラリをインストールします。
```bash
uv sync
```
3. Claude CLI が正常に動作することを確認します。
```bash
echo "Translate テスト to English. Respond with English only." | claude --print
```
4. Bot を起動します。
```bash
uv run python bot.py
```
## よく使うコマンド
```bash
# 依存ライブラリのインストール・更新
uv sync
# Bot の起動
uv run python bot.py
# テストの実行
uv run python -m unittest discover -s tests -v
# 構文チェック(コンパイル確認)
uv run python -m compileall bot.py cogs services tests
```
## Discord スラッシュコマンド一覧
| コマンド | 説明 |
|---|---|
| `/game_add` | ゲームを登録する |
| `/game_list` | 登録済みゲームの一覧を表示する |
| `/progress_add` | 進捗ログを追加する |
| `/appeal_add` | アピールポイントを追加する |
| `/asset_add` | 添付ファイルを素材として登録する |
| `/promo_draft` | ツイート下書きを AI で生成する |
| `/draft_list` | 既存の下書き(承認待ち・承認済み)を一覧表示する |
| `/analytics_fetch` | X/Twitter のメトリクスを取得する |
| `/analytics_report` | 宣伝分析レポートを生成する |
| `/analytics_top` | エンゲージメント上位投稿を表示する |
| `/schedule_slot_add` | 定期投稿スロットを追加する |
| `/schedule_slot_list` | 定期投稿スロット一覧を表示する |
| `/schedule_slot_remove` | 定期投稿スロットを削除する |
| `/schedule_queue_list` | 承認済みキューを表示する |
| `/schedule_queue_cancel` | 承認済みキューを取り消す |
## システム概要
```
Discord
└─ スラッシュコマンド
├─ /game_add・/progress_add・/appeal_add・/asset_add
│ ゲーム情報・進捗・アピール・素材を SQLite に登録
├─ /promo_draft・/draft_list
│ Claude CLI でツイート下書きを生成 → 承認ボタンで承認キューへ追加
│ /draft_list で承認待ち・承認済み下書きを確認
├─ /analytics_fetch・/analytics_report・/analytics_top
│ Playwright でメトリクスをスクレイピング → Claude CLI で分析レポートを生成
└─ /schedule_slot_add・/schedule_queue_*
JST の時刻スロットを管理し、スケジューラが自動投稿を実行
```
## 環境変数
| 変数名 | 必須 | 説明 |
|---|---|---|
| `DISCORD_TOKEN` | ✅ | Discord Bot トークン |
| `DISCORD_GUILD_ID` | ✅ | コマンドを同期するギルド ID |
| `ALLOWED_USER_IDS` | ✅ | Bot の操作を許可するユーザー ID(カンマ区切り) |
| `TWITTER_USERNAME` | ✅ | X/Twitter アカウントのユーザー名またはメールアドレス |
| `TWITTER_PASSWORD` | ✅ | X/Twitter アカウントのパスワード |
| `TWITTER_SESSION_PATH` | | Playwright セッションキャッシュのパス(デフォルト: `twitter_session.json`) |
| `PROMO_DB_PATH` | | SQLite DB のパス(デフォルト: `promo.db`) |
| `ASSETS_DIR` | | 素材ファイルの保存先(デフォルト: `assets/`) |
| `PROMPTS_DIR` | | プロンプトファイルの格納先(デフォルト: `prompts/`) |
| `CLAUDE_TIMEOUT` | | Claude CLI のタイムアウト秒数(デフォルト: `120`) |
| `SCHEDULER_POLL_SECONDS` | | スケジューラのポーリング間隔秒数(デフォルト: `30`) |