Skip to content

kkj333/investor-antenna

Repository files navigation

個人投資家アンテナ

個人投資家向けブログなど複数ソースから 新着を定期収集し、ひとつのタイムラインで一覧します。購読アプリ向けに 集約フィード /rss(RSS 2.0) も配信します(画面には /rss への目立ったリンクは置かず、HTML の head に alternate 指定で検出可能。各エントリは元記事へのリンク)。

機能

  • RSS 収集は Cloud Run Job(本番)またはローカルで services/collector/run.py を実行。Web から収集 API は公開しない
  • 記事一覧の新着順表示(htmx)。初回は先頭 50 件、「もっと見る」で 50 件ずつ最大 200 件まで拡張(GET /articles?limit=… を htmx で差し替え)
  • フッターの 問い合わせ(Google フォーム。URLはテンプレートに固定)
  • GET /rss(集約フィード。画面からの目立ったリンクはなし)
  • URL をキーにした重複記事の除外
  • feeds.json はリクエストごとに読み直す(詳細は feeds と環境変数
  • ローカルは SQLite、Cloud Run では Firestore に切り替え可能

クイックスタート

ブラウザは http://127.0.0.1:8000 を開きます。

Docker(推奨)

cd investor-antenna
docker compose up --build

Docker でテスト(pytest)

docker compose --profile test run --rm tests

services/webservices/collector のテストをまとめて実行します(イメージ初回は --build が必要なことがあります)。

uv

cd investor-antenna
uv sync --dev
uv run uvicorn web.main:app --reload

初回は feeds.json を確認してから Web を起動し、収集を一度走らせます(例: uv run python services/collector/run.py)。手順の詳細は ローカル開発 を参照してください。

ドキュメント

詳細は docs/README.md の目次からどうぞ(Docker の注意、環境変数、Terraform・CD、API、トラブルシュートなど)。

About

個人投資家向けブログ等の RSS/Atom を定期収集し、新着をひとつのタイムラインで表示。

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors