Discord RSS Bot
RSSフィードを監視し、Webhookを介してDiscordチャンネルに更新を投稿する自動ボット。カスタムフィードやカテゴリで完全に設定可能。遅いRSSフィードによるハングアップを防ぐためのタイムアウト処理機能を備えています。

Discord RSS Bot について
Discord RSS Bot は、RSS フィードを監視し、Webhook を介して Discord チャンネルに更新を投稿する自動化ボットです。カスタムフィードやカテゴリを完全に設定可能で、遅い RSS フィードでのハングアップを防ぐためのタイムアウト処理機能を備えています。
主な機能
- 自動 RSS モニタリング - 設定可能な間隔
- エレガントな Discord フォーマット - カテゴリエモジ付き
- スマートキャッシング - 重複投稿を防ぐ
- タイムアウト処理 - 遅いフィードでのハングアップを防ぐ
- 堅牢なエラーハンドリング - ネットワーク問題に対応
- 完全コンテナ化 - Docker サポート付き
- 事前構築済みイメージ - Docker Hub & GHCR で利用可能
- マルチプラットフォーム (AMD64、ARM64)
- 柔軟な設定 - ユニバーサルまたはカテゴリベースのフィード
- 複数のデプロイオプション (Docker、システムサービス)
- 包括的なロギング とヘルスチェック
- セキュリティ重視 - 非ルートコンテナ
クイックスタート
事前構築済みコンテナの使用 (推奨)
コンテナイメージ
事前構築済みイメージは複数のレジストリから利用可能です:
- Docker Hub:
isyuricunha/discord-news-rss-bot:latest|isyuricunha/discord-news-rss-bot:2.0.8 - GitHub Container Registry:
ghcr.io/isyuricunha/discord-news-rss-bot:latest|ghcr.io/isyuricunha/discord-news-rss-bot:2.0.8
サポートされているアーキテクチャ
linux/amd64(x86_64)linux/arm64(ARM64/AArch64)
自動バージョニング
このプロジェクトは自動化された CI/CD を使用しており、以下の機能を備えています:
mainブランチへのプッシュごとに Git タグを自動作成 (例:v2.0.8)- 各タグに対して GitHub Release を作成
- トリガーコミットメッセージ をリリースタイトルおよび本文として使用
- 両レジストリに同時に公開
- Docker Hub と GHCR でバージョンの一貫性を維持
latestおよび特定のバージョンタグを 両方更新
デプロイオプション
1. 標準的な Docker Compose (.env ファイル付き)
2. インライン環境変数
3. 事前構築済みイメージ (.env ファイルから)
4. すべてのデフォルトフィードでのテスト
システムサービスのインストール
本番環境でのデプロイメントでは、ボットをシステムサービスとしてインストールできます:
Debian/Ubuntu
Fedora/RHEL/CentOS
Alpine Linux
Windows
設定
必須変数
| 変数 | 説明 |
|---|---|
DISCORD_WEBHOOK_URL | 必須: Discord Webhook URL |
パス (推奨)
| 変数 | デフォルト (Docker イメージ) | 説明 |
|---|---|---|
RSS_BOT_DATA | /app/data | SQLite データベースが保存されるディレクトリ |
RSS_BOT_LOGS | /app/logs | ログファイルが書き込まれるディレクトリ |
RSS_BOT_PID | /tmp/discord-news-rss-bot.pid | PID ファイルパス (非ルートコンテナでは /var/run を避ける) |
高度なオーバーライド (オプション)
| 変数 | 説明 |
|---|---|
DB_FILE | 明示的な SQLite DB ファイルパス (RSS_BOT_DATA をオーバーライド) |
LOG_FILE | 明示的なログファイルパス (RSS_BOT_LOGS をオーバーライド) |
DATA_DIR | RSS_BOT_DATA のレガシアlias |
オプションのボット設定| 変数 | デフォルト | 説明 |
|-----------------------|------------|-------------------------------|
| CHECK_INTERVAL | 300 | チェック間隔 (秒) |
| POST_DELAY | 3 | 投稿間の遅延 (秒) |
| COOLDOWN_DELAY | 60 | レート制限後の遅延 (秒) |
| MAX_POST_LENGTH | 1900 | メッセージの最大長 |
| MAX_CONTENT_LENGTH | 800 | コンテンツの最大長 |
| FEED_TIMEOUT | 30 | RSS フィード要求のタイムアウト (秒) |
RSS フィードの設定
ボットは、2つの設定方法をサポートし、自動的に優先順位を処理します。
オプション 1: 統合フィード (シンプル)
すべてのRSSフィードに単一の変数を使用します:
オプション 2: カテゴリ別フィード (整理済み)
異なるカテゴリに別々の変数を使用します:
優先順位システム
- RSS_FEEDS (統合) - 設定されている場合、優先されます
- RSS_FEEDS_CATEGORY (カテゴリ別) - 統合フィードがない場合に使用されます
- デフォルトフィード - カスタム設定がない場合、ブラジルのニュースフィードが使用されます
自動カテゴリ絵文字
- News/Noticias/General → 📰
- Technology/Tecnologia → 💻
- Politics/Politica → 🏛️
- Sports/Esportes → ⚽
- Business/Economia → 💼
- その他のカテゴリ → 📢
監視対象フィード
📰 一般ニュース
- G1
- UOL
- Band
- CNN Brasil
- Folha de S.Paulo
🏛️ 政治 & コンサーバティブ
- Gazeta do Povo
- Jovem Pan
- Diário do Poder
- Pragmatismo Político
- Conexão Política
- Poder 360
- Revista Crusoé
- Veja
- Metrópoles
- O Antagonista
- Terra Politics
💻 テクノロジー
- Canaltech
- Olhar Digital
- Tecnoblog
- Meio Bit
- ShowMeTech
- TecMundo
- Adrenaline
- Hardware.com.br
- Tudo Celular
- Oficina da Net
開発
Dockerなしでローカル実行
フィードのカスタマイズ
フィードをカスタマイズする方法は2つあります:
-
環境変数 (推奨) 設定セクションで説明されている
RSS_FEEDS_CATEGORY_NAMEの形式を使用します。 -
コードの変更
bot_service.pyのparse_feeds_from_env()関数を編集して、デフォルトのフィードを変更します。
技術スタック
- Python - メインのボットロジック
- Discord ウェブフック - アップデートの投稿
- Docker - コンテナ化とデプロイメント
- SQLite - データの永続化とキャッシュ
- RSS パース - フィードの監視
- Systemd - Linux サービスの管理
Discord RSS Bot は、RSSフィードの更新をDiscordチャンネルに自動的に投稿するための完全なソリューションであり、堅牢なエラーハンドリング、柔軟な設定、および複数のデプロイメントオプションを備えています。