R

reader

536 stars·开发工具·已提供 SHA-256 校验码,下载后可自行核对文件完整性

一个 Python feed 阅读器库,用于存储、管理和搜索订阅源与文章,附带可选 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 提供了完整的后端,不绑定任何框架。

常见问题与排障 (2)

故障排除
如何修复 reader 3.24 在启动迁移期间出现的 sqlite3.OperationalError:'user-defined function raised exception' 错误?

升级到 reader 3.25 或更新版本,该版本修复了 schema v43 到 v44 的迁移问题:

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 之前,清除包含两个括号组的 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,而不是手动修改数据库。

来源 Issue #405
故障排除
当项目ID发生变化且基于内容的去重失败时,如何对订阅源条目进行去重?

在验证以下两点后使用.dedupe.once.title插件功能:1) 旧条目没有重复标题,2) 大多数新条目与旧条目标题完全相同。应用.dedupe.once.title基于标题匹配进行去重。注意:该插件尚未自动执行这些检查,需要手动验证。

来源 Issue #322

标签

feed-readerrssatompythonlibraryopmlfull-text-search

快速上手

1

下载安装包

点击上方按钮下载对应系统的安装包

2

安装软件

双击下载的安装程序,按提示完成安装

3

步骤1:使用 pip 安装 reader:pip install reader

4

步骤2:在 Python 中导入并创建阅读器:from reader import make_reader; reader = make_reader('feeds.db')

5

步骤3:添加订阅源并更新:reader.add_feed('https://example.com/feed'); reader.update_feeds()

安装指引
  1. 步骤1:使用 pip 安装 reader:pip install reader
  2. 步骤2:在 Python 中导入并创建阅读器:from reader import make_reader; reader = make_reader('feeds.db')
  3. 步骤3:添加订阅源并更新:reader.add_feed('https://example.com/feed'); reader.update_feeds()
文件完整性

暂未获取到校验码

该项目暂未在 GitHub Release 页面提供 SHA-256 校验码

SHA256 校验码

暂无校验码

建议从 GitHub Releases 页面直接下载,并自行核对文件完整性

本平台所有 SHA-256 校验码均提取自项目在 GitHub 官方 Release 页面发布的文件,未做任何修改。你可以通过 GitHub Releases 页面自行验证。

运维指引

卸载说明

直接运行 pip uninstall reader 即可卸载,数据库文件(如 feeds.db)需手动删除。

无额外依赖

下载后即可直接使用,无需安装其他运行环境

项目信息
开源协议BSD-3-Clause
最后更新2026-10-15 08:52:22
GitHub 仓库官方网站

遇到问题?查看下方 FAQ

2 FAQs

相似推荐