This repository is private.
All pages are served over SSL and all pushing and pulling is done over SSH.
No one may fork, clone, or view it unless they are added as a member.
Every repository with this icon (
) is private.
Every repository with this icon (
This repository is public.
Anyone may fork, clone, or view it.
Every repository with this icon (
) is public.
Every repository with this icon (
atomgen /
| name | age | message | |
|---|---|---|---|
| |
.gitignore | ||
| |
README | ||
| |
app.yaml | ||
| |
cron.yaml | ||
| |
feed.py | ||
| |
feedgen.py | ||
| |
main.py | ||
| |
settings.py.dist | ||
| |
static/ | ||
| |
templates/ |
README
atomgen ======== Infinite Atom Entries Generator Overview --------- The application providing two feeds. First one generating Atom entries every minute and the second one - every 5 minutes. The feeds can be used mostly for testing webhooks, pubsubhubbub etc. The one minute feed is protected by a secret token in the end of the URL. If your application is installed for example on URL http://example.com/ , the two feeds will be: http://example.com/feed/1/YouSecretHere (1min feed) http://example.com/feed/5 (5min feed) Usage ------ The application is currently deployed on Google AppEngine. You can use the 5 minutes feed for your tests - go to http://pubsubhubbub.appspot.com/subscribe and subscribe for the http://atomgen.appspot.com/feed/5 topic. This will send to your subscribers a new Atom entry every 5 minutes. There is also a FriendFeed group - http://friendfeed.com/atomgen , which is already subscribed to the 5 minutes feed. You can use it to gen notifications via IM etc. Implementation details ----------------------- The feeds have atom:link[@rel="hub"] element and the 5 minutes feed is pinging the hub on feed generation. By default the Google's reference implementation on URL http://pubsubhubbub.appspot.com/ is used. Your can change the hub with the HUB_URL option in the settings.py file. I tried to make the atom generator a good Internet cityzen by setting up the proper HTTP headers ('Last-Modified', 'ETag' etc.). 'Etag' header contains the ID of the last entry, cryptography signed, like suggested in http://code.google.com/p/pubsubhubbub/wiki/PublisherEfficiency The current implementation does not use Google Datastore. Feeds are kept only in the memcached object caching system. TODO ----- - Return only new entries for clients asking with 'If-None-Match' header (ETag)








