Skip to main content

Django app to build a planet, RSS/Atom feeds aggregator.

Project description

django-planet
=============

This is a generic application for Django projects aiming to provide a planet
feed aggregator app.

Django-planet is heavily based on Feedjack's [1] models by Gustavo Picon and my
django app that extends it: feedjack-extension [2]. Changes and addings to
models were inspired by Mark Pilgrim's Feedparser [3].

[1] http://www.feedjack.org/
[2] http://code.google.com/p/feedjack-extension/
[3] http://www.feedparser.org/


Screenshots:
------------

The following screenshots are just for demonstration purposes:

* http://cloud.github.com/downloads/matagus/django-planet/post_list-my_planet.png
* http://cloud.github.com/downloads/matagus/django-planet/tag_view-my_planet.png
* http://cloud.github.com/downloads/matagus/django-planet/author_view-my_planet.png


Summary of changes:
-------------------

* Link model was dropped.
* Site models replaced by django.contrib.sites.Site model :)
* Tag model replaced by tagging.Tag model.
* Added Blog model (a Blog may have several related Feed objects).
* Subscriber model renamed to Author, and was modifyed since a Blog may
have several authors. Authors may be of two types: author or contributor.
* Feed model was changed. New attributes added to store info provided by
Feedparser.
* Added FeedLink, PostLink, Enclosure and Generator models to store info
provided by Feedparser.

* Custom managers for each model.
* New urls and detail and list views for each new model.
* CSS theme based on the minimal and beautiful Mounty Lounge Industries
blog's design (http://blog.montylounge.com/)

* Full template tags set: tags cloud for a blog, a feed, an author and a
global one; related tags list, authors list related to a tag and feeds list
related to a tag.

* Added indexed to models according to expected use.
* Content cleaned (css styles and some duplicated/useless spaces).

* simple demo project at sample_project: just follow sample_project/INSTALL
instrucctions :)

TODO:
-----
First:

* Feeds (RSS and Atom): for all posts, for posts filtered by tag, author,
blog, feed or any of its combinations.
* setup.py, pack it into and egg and upload it to Python Python Package Index.
* Get the first image of a post (from enclosure link or from content),
download it, generate a thumbnail and asociate it to that post. Then show it
in list-views!

Second:

* Make a sample project showing how to integrate it into Pinax
http://www.pinaxproject.com/
* Date-based views: by month and year
* SEO improvement: custom META tags for each view, use SlugField fields for
any model that has a detail view (blog, feed, post, author) and use it in
its url. Like /planet/blogs/Experimetal_Etc
* Use django-atomformat: http://github.com/pinax/atom-format/tree/master
* Build a template tag to show a block of latest photos (ie post enclosures
of type "image/*")
* Improve add_feed and update_feed commands with multi processing,
make them more clear and atomic, etc.
* Optimized content clean & compression of each feed entry (remove
duplicated/useless tags, bad spaces, and the like).

Maybe:

* Allow users import an OPML file with their favourite feeds.
* Use django-foaf to generate foaf xml? http://code.google.com/p/django-foaf/
* Some other features inspired by semantic attributes of RSS and Atom feeds :P

INSTALLATION
------------

* For installation instructions, see the file INSTALL in this directory.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-planet-0.1.tar.gz (185.3 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page