Metadata-Version: 2.4
Name: django-rss-filter
Version: 0.9.0
Summary: Filter public RSS feeds, remove articles that contain certain keywords or categories.
Project-URL: Homepage, https://github.com/loopwerk/django-rss-filter/
Project-URL: Repository, https://github.com/loopwerk/django-rss-filter.git
Project-URL: Issues, https://github.com/loopwerk/django-rss-filter/issues
Author-email: Kevin Renskers <kevin@loopwerk.io>
License-Expression: MIT
License-File: LICENSE
Keywords: atom,django,feed,filter,mute,rss
Requires-Python: >=3.9
Requires-Dist: django>=3.2.0
Requires-Dist: feedgen>=1.0.0
Requires-Dist: feedparser>=6.0.11
Requires-Dist: httpx>=0.28.1
Description-Content-Type: text/markdown

# django-rss-filter

This is a Django app that creates filtered RSS feeds. It does this by filtering exsiting RSS feeds, removing articles that match filtered words and/or filtered categories. It's what powers https://www.rssfilter.com.

It comes with one view that returns the filtered feed XML, as well as Django Admin configuration to make it possible and easy to self-host your own instance of django-rss-filter. It does not come with views to create or edit filtered feeds; this can be done using the Django Admin.

## Getting started

All instructions use [uv](https://docs.astral.sh/uv/), but should work just as well with pip or Poetry for example.

In an existing Django project:

1. Install: `uv add django-rss-filter`
2. Add `rssfilter` to `INSTALLED_APPS`
3. `uv run ./manage.py migrate`
4. Include the URL config: `path("", include("rssfilter.urls"))`

If you don't have a Django project yet, these are the steps to get started:

1. `uv init my-django-project`
2. `cd my-django-project`
3. `uv add django`
4. `uv run django-admin startproject my_django_app .`
5. `uv run ./manage.py migrate`
6. `uv run ./manage.py createsuperuser`
7. `uv run ./manage.py runserver`

This will get you up and running with a working Admin site at http://127.0.0.1:8000/admin/.

Then follow the first four steps to add django-rss-filter to your Django project.

## Example project

There's an example Django project using django-rss-filter under `example/`.

1. `cd example`
2. `uv run ./manage.py migrate`
3. `uv run ./manage.py createsuperuser`
4. `uv run ./manage.py runserver`

You can then go to http://127.0.0.1:8000/admin/ to create a feed, which you can then access at http://127.0.0.1:8000/[feed_uuid]/.

## Settings

There is one setting that can be configured: `RSS_FILTER_CACHE_SECONDS`. The default value is 300 (5 minutes).

This setting controls how long a feed will be cached before it's fetched, filtered, and stored again.

## Tests

Unit tests can be run with `uv run pytest`.
