This is my version of a Tumblelog. Why, you might ask? Because I can.
- Add
newswall
toINSTALLED_APPS
- Run
./manage.py migrate newswall
(orsyncdb
, if you prefer to work without South) Add the following line to your
urls.py
:url(r'^news/', include('newswall.urls')),
- Add news providers by create a few
Source
objects through Django's admin panel - Create a cronjob running
./manage.py update_newswall
periodically (i.e. every hour)
newswall
has a few bundled providers, those being:
Adds news entries for every active entry in a elephantblog installation on the same website. No additional configuration required (or possible). Add the following JSON configuration to the Source
entry:
{"provider": "newswall.providers.elephantblog"}
This provider adds news entries for every wall post on a Facebook page. The wall posts are accessed through the Graph API; you'll need a copy of the Python Facebook SDK somewhere on your Python path. You'll need an access token with offline_access
permission for this provider. Required configuration follows:
{"provider": "newswall.providers.fb_graph_feed",
"object": "FEINHEIT", // used to construct the Graph request URL
"from_id": "239846135569", // used to filter stories created by the
// object referenced above, ignores stories
// sent by others
"access_token": "..."
}
We suggest to use App Access Tokens to query the Facebook Page feed, because they don't expire. To get an App Access Token, simply open this URL with your browser, after filling in the required fields (the all caps words):
https://graph.facebook.com/oauth/access_token?client_id=YOUR_APP_ID&client_secret=YOUR_APP_SECRET&grant_type=client_credentials
More infos according the App Access Tokens can be found on the official Facebook documentation: <https://developers.facebook.com/docs/opengraph/using-app-tokens/>
To obtain the "from_id" configuration parameter, you can query the Facebook Open Graph API Backend with your Browser:
https://graph.facebook.com/OBJECT
f.e.: <https://graph.facebook.com/FEINHEIT>
The RSS feed provider can take any RSS or Atom feed (in fact anything parseable by feedparser
and turn the stories into news entries:
{
"provider": "newswall.providers.feed",
"source": "http://twitter.com/statuses/user_timeline/unsocialrider.rss"
}
Specialized RSS feed provider which does not write anything into the story body but only fills the story title. Title and content are always the same in Twitter's RSS feed anyway:
{
"provider": "newswall.providers.twitter",
"user": "feinheit"
}