RSS Filter:轻松创建自定义过滤的RSS订阅源

RSS订阅是获取信息的重要方式,但面对大量内容时,如何只保留自己感兴趣的部分?django-rss-filter 是一个开源的 Django 应用程序,可以帮助你通过关键词或分类过滤现有 RSS 订阅源,生成一个全新的、经过筛选的 RSS Feed。以下是如何使用它的详细指南。

什么是 django-rss-filter

django-rss-filter 是一个基于 Django 的工具,用于创建过滤后的 RSS 订阅源。它通过移除包含特定关键词或类别的文章,帮助用户专注于自己感兴趣的内容。它是 RSSfilter.com 的核心组件,支持自托管,适合需要个性化 RSS 订阅的用户。

该应用提供了一个返回过滤后 RSS Feed 的视图,并可以通过 Django 管理后台进行配置。需要注意的是,它不提供前端界面,所有操作需通过管理后台完成。

RSS Filter:轻松创建自定义过滤的RSS订阅源插图

快速开始

在现有 Django 项目中添加 django-rss-filter

如果你已经有一个 Django 项目,可以按照以下步骤集成 django-rss-filter

  1. 安装依赖
    使用 uv(或其他工具如 pip 或 Poetry)安装 django-rss-filteruv add django-rss-filter
  2. 添加到 INSTALLED_APPS
    在项目的 settings.py 文件中,将 rssfilter 添加到 INSTALLED_APPSINSTALLED_APPS = [ ... 'rssfilter',]
  3. 运行数据库迁移
    执行以下命令以应用 django-rss-filter 的数据库迁移:uv run ./manage.py migrate
  4. 包含 URL 配置
    在项目的 urls.py 文件中,添加 rssfilter 的 URL 配置:from django.urls import path, include
    urlpatterns = [ ... path("", include("rssfilter.urls")),]

创建新的 Django 项目

如果没有现成的 Django 项目,可以按照以下步骤创建一个新项目并集成 django-rss-filter

  1. 初始化项目目录
    创建一个新的 Django 项目目录:uv init my-django-projectcd my-django-project
  2. 安装 Django
    添加 Django 依赖:uv add django
  3. 创建 Django 项目
    初始化 Django 项目:uv run django-admin startproject my_django_app .
  4. 运行初始迁移
    应用 Django 的默认数据库迁移:uv run ./manage.py migrate
  5. 创建超级用户
    创建一个管理后台的超级用户账户:uv run ./manage.py createsuperuser
  6. 启动开发服务器
    启动开发服务器:uv run ./manage.py runserver

完成后,访问 http://127.0.0.1:8000/admin/ 登录 Django 管理后台,然后按照上述“在现有 Django 项目中添加 django-rss-filter”的步骤进行集成。

示例项目

django-rss-filter 提供了一个示例项目,位于 example/ 目录下。你可以按照以下步骤运行它:

  1. 进入示例项目目录cd example
  2. 运行数据库迁移uv run ./manage.py migrate
  3. 创建超级用户uv run ./manage.py createsuperuser
  4. 启动开发服务器uv run ./manage.py runserver

完成后,访问 http://127.0.0.1:8000/admin/ 登录管理后台,创建一个过滤后的 RSS 订阅源。创建完成后,你可以通过 http://127.0.0.1:8000/[feed_uuid]/ 访问该订阅源,其中 [feed_uuid] 是订阅源的唯一标识符。

配置选项

django-rss-filter 提供了一个可配置的设置项:RSS_FILTER_CACHE_SECONDS。此设置控制 RSS 订阅源的缓存时间,默认值为 300 秒(即 5 分钟)。你可以在 settings.py 中自定义该值,例如:

RSS_FILTER_CACHE_SECONDS = 600  # 缓存 10 分钟

评论