reader
フィードや記事の保存、管理、検索を行うための Python フィードリーダーライブラリ。オプションの Web インターフェースとコマンドラインツールが付属しています。
スマートダウンロード
プロジェクトのホームページへ
インストーラはまだありません — ソースリポジトリをご覧ください
Python フィードリーダーライブラリ。ストレージ、検索、Web 管理インターフェースを内蔵
主な機能
- Atom、RSS、JSON フィードをサポート
- 既読/重要のマーク付け、カスタムタグとメタデータの追加
- 全文検索、キーワードのハイライト表示に対応
- OPML のインポート/エクスポートで簡単に移行
- プラグインシステムで機能を拡張可能
できないこと
- •Reader はライブラリであり、独立したアプリケーションではありません。付属の Flask アプリケーションを使用するか、独自にインターフェースを作成する必要があります。データベースはデフォルトで SQLite を使用しますが、大量のデータを扱う場合はパフォーマンスに注意してください。他のバックエンドへの切り替えも可能です(現時点ではネイティブサポートはありません)。全文検索を利用するには、先に update_search() を呼び出してインデックスを作成する必要があります。一部の新しいバージョンの Python では追加の依存パッケージのインストールが必要になる場合があります。プロジェクトのドキュメントをご確認ください。
使用例
- 独自のパーソナライズされた RSS リーディングサービスを構築
- 既存の Python アプリケーションに組み込んで購読コンテンツを管理
- ニュース/ポッドキャストフィードを一括で取得・分析
詳細説明
Reader は Python の feed リーダーライブラリで、フィードや記事の保存、管理、検索に特化しています。Atom、RSS、JSON 形式をサポートし、既読/重要のマーク付け、タグの追加、フィルタリング、全文検索、OPML のインポート/エクスポートが可能です。安定した API、充実したテスト、型ヒントを提供します。オプションで Flask Web アプリケーションとコマンドラインインターフェースも利用できます。解析のみを行う feedparser とは異なり、Reader は完全なバックエンドを提供し、特定のフレームワークに依存しません。
トラブルシューティング & FAQ (2)
トラブル対応reader 3.24 の起動時マイグレーション中に発生する sqlite3.OperationalError: 'user-defined function raised exception' を修正する方法
スキーマv43からv44へのマイグレーションが修正されたreader 3.25以降にアップグレードしてください:
python -m pip install --upgrade 'reader>=3.25'
アップグレードする前に、アプリを停止し、SQLiteデータベースをバックアップしてください。バージョン3.25では、括弧で囲まれたグループを複数含むauthor文字列、author が欠落したsource JSONオブジェクト、および authors 追加後の古い author キーの削除が処理されます。
どうしても3.24を使用する必要がある場合は、バックアップを作成した後、sqlite3 your-database.db で以下の緊急回避策を適用してください:
1. 3.24を初めて起動する前に、括弧で囲まれたグループを2つ含むauthorをクリアします:UPDATE entries SET author = NULL WHERE author LIKE '%(%)%(%)%';
2. author を持たないレガシーなsource JSONにnullの author キーを追加します:UPDATE entries SET source = json_set(source, '$.author', json('null')) WHERE source IS NOT NULL AND json_type(source) = 'object' AND json_type(source, '$.author') IS NULL;
3. reader 3.24を起動し、マイグレーションを実行させます。
4. その後、エンドポイントが TypeError: EntrySource.__init__() got an unexpected keyword argument 'author' で失敗する場合は、古いキーを削除します:UPDATE entries SET source = json_remove(source, '$.author') WHERE source IS NOT NULL AND json_type(source, '$.author') IS NOT NULL;
データベースを手動で変更するよりも、3.25へのアップグレードを推奨します。
トラブル対応アイテムIDが変わり、かつコンテンツベースの重複排除が失敗した場合、フィードエントリを重複排除する方法は?
.dedupe.once.title プラグイン機能を使用する前に、以下の確認を行ってください:1) 既存のエントリに重複するタイトルがないこと、2) 新しいエントリのほとんどが既存のエントリと完全に一致するタイトルであること。タイトルマッチングに基づいて重複を排除するため、.dedupe.once.title を適用してください。注意:このプラグインはまだこれらのチェックを自動化していないため、手動での確認が必要です。
タグ
はじめ方
ソフトウェアをインストール
ダウンロードしたインストーラをダブルクリックし、指示に従ってください
ステップ1:pip を使用して reader をインストールします:pip install reader
ステップ2:Python でインポートしてリーダーを作成します:from reader import make_reader; reader = make_reader('feeds.db')
ステップ3:フィードを追加して更新します:reader.add_feed('https://example.com/feed'); reader.update_feeds()
- ステップ1:pip を使用して reader をインストールします:pip install reader
- ステップ2:Python でインポートしてリーダーを作成します:from reader import make_reader; reader = make_reader('feeds.db')
- ステップ3:フィードを追加して更新します:reader.add_feed('https://example.com/feed'); reader.update_feeds()
チェックサムがありません
このプロジェクトは GitHub Release ページに SHA-256 チェックサムを公開していません
SHA256 チェックサム
チェックサムなし
GitHub Releases から直接ダウンロードし、ファイルの整合性をご自身で確認してください
本プラットフォーム上のすべての SHA-256 チェックサムは、プロジェクトの公式 GitHub Release ページから抽出されたもので、一切の改変はありません。GitHub Releases ページで独自に検証できます。
オープンソースの透明性
GitHub ソースを見るアンインストール情報
pip uninstall reader を実行するだけでアンインストールできますが、データベースファイル(feeds.db など)は手動で削除する必要があります。
追加の依存関係なし
ダウンロード後すぐに使用可能。追加のランタイムは不要です。
問題が発生?以下のFAQを確認
2 FAQs