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 Picón 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).
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!
* A little sample project.
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.