From eee3f6056a80dd810a1931213ef9ba72b4f70301 Mon Sep 17 00:00:00 2001 From: Benjamin Golub Date: Wed, 10 Mar 2010 13:39:44 -0500 Subject: [PATCH] stop using django feedgenerator --- blog.py | 33 +++++++++++++-------------------- templates/feed.html | 25 +++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 20 deletions(-) create mode 100644 templates/feed.html diff --git a/blog.py b/blog.py index d02938c..bbe3b9b 100644 --- a/blog.py +++ b/blog.py @@ -9,8 +9,6 @@ import uuid import wsgiref.handlers -from django.utils import feedgenerator - from google.appengine.ext import db from google.appengine.api import urlfetch from google.appengine.api import users @@ -63,26 +61,9 @@ def render_string(self, template_name, **kwargs): def render(self, template_name, **kwargs): format = self.get_argument("format", None) if "entries" in kwargs and format == "atom": - feed = feedgenerator.Atom1Feed( - title=self.application.settings["blog_title"], - description=self.application.settings["blog_title"], - link=self.request.path, - language="en", - ) - for entry in kwargs["entries"]: - feed.add_item( - title=entry.title, - link="http://" + self.request.host + "/e/" + entry.slug, - description=entry.body, - author_name=entry.author.nickname(), - pubdate=entry.published, - categories=entry.tags, - ) - data = feed.writeString("utf-8") self.set_header("Content-Type", "application/atom+xml") self.set_sup_header() - self.write(data) - return + template_name = "feed.html" return tornado.web.RequestHandler.render(self, template_name, **kwargs) def slugify(self, value): @@ -125,6 +106,18 @@ def ping(self): urlfetch.fetch("http://www.feedburner.com/fb/a/pingSubmit?" + args) except: pass + args = urllib.urlencode({ + "hub.mode": "publish", + "hub.url": feed, + }) + headers = { + "Content-Type": "application/x-www-form-urlencoded", + } + try: + result = urlfetch.fetch("http://pubsubhubbub.appspot.com/", + payload=args, method=urlfetch.POST, headers=headers) + except: + pass def get_error_html(self, status_code, **kwargs): if status_code == 404: diff --git a/templates/feed.html b/templates/feed.html new file mode 100644 index 0000000..83ab395 --- /dev/null +++ b/templates/feed.html @@ -0,0 +1,25 @@ + +{% set date_format = "%Y-%m-%dT%H:%M:%SZ" %} +{% set title = handler.application.settings["blog_title"] %} + + {{ escape(title) }} + {{ escape(handler.request.full_url()) }} + {{ max(e.updated for e in entries).strftime(date_format) }} + + + + {% for entry in entries %} + + tag:www.benjamingolub.com,{{ entry.published.strftime("%Y-%m-%d") }}:/e/{{ entry.slug }} + + {{ escape(entry.title) }} + {{ entry.updated.strftime(date_format) }} + {{ entry.published.strftime(date_format) }} + {{ escape(entry.author.nickname()) }} + {{ escape(entry.body) }} + {% for tag in entry.tags %} + + {% end %} + + {% end %} +