matagus/django-planet

A django planet and feeds (RSS and ATOM) aggregator application for Django

aggregator
blog-aggregator
django
feed-aggregator
feed-reader
planet
python
river-of-news
rss

django-planet

Python Compatibility Django Compatibility PyPi Version CI badge codecov License Docs Live Demo

A reusable Django app for building RSS/Atom feed aggregator websites (aka "Planet" sites).

Django-planet makes it easy to create a planet-style feed aggregator. Collect posts from multiple blogs and websites, store them in your database, and display them with built-in views and templatesβ€”or build your own custom front-end.

Live Demo: A planet for Django-related feeds

Post List

✨ Features

  • RSS and Atom feed parsing - Supports both RSS and Atom feed formats via feedparser
  • Automatic feed updates - Management commands to add feeds and update all feeds
  • Blog, Feed, Post, and Author models - Complete data model with relationships
  • Built-in views and templates - Ready-to-use views for blogs, feeds, posts, and authors
  • Django admin integration - Manage all content through Django's admin interface
  • Search functionality - Built-in search across posts, blogs, feeds, and authors
  • SEO-friendly URLs - Slugified URLs with automatic redirects
  • Custom managers - QuerySet methods for filtering by blog, feed, author
  • Template tags - Custom template tags for common operations
  • Pagination support - Uses django-pagination-py3 for easy pagination
  • Post filtering - Configurable filter backends to accept only relevant posts
  • Content archiving - Optionally fetch and store the full original content of posts

πŸ“¦ Quick Start

pip install django-planet
INSTALLED_APPS = [
    # ...
    "planet",
    "pagination",
]

MIDDLEWARE = [
    # ...
    "pagination.middleware.PaginationMiddleware",
]
python manage.py migrate

Then include the URLs in your urls.py:

path("", include("planet.urls")),

β†’ Full installation & configuration guide

πŸ“– Documentation

πŸ§ͺ Testing

hatch run test:test   # full suite
hatch run test:cov    # with coverage

See the contributing guide for the full test matrix and setup instructions.

πŸ“„ License

django-planet is released under the BSD 3-Clause License - see the LICENSE file for more information.

πŸ™ Acknowledgements

Hatch project linting - Ruff code style - black

Inspired by Feedjack and Mark Pilgrim's Feedparser.

πŸ’¬ Support

Stars
179
0.00% more than last month
Forks
53
Open Issues
4