diff options
Diffstat (limited to 'site_builder/feeds.py')
-rw-r--r-- | site_builder/feeds.py | 67 |
1 files changed, 33 insertions, 34 deletions
diff --git a/site_builder/feeds.py b/site_builder/feeds.py index 3279afb..dd343b5 100644 --- a/site_builder/feeds.py +++ b/site_builder/feeds.py | |||
@@ -6,14 +6,13 @@ Atom Feed Writer | |||
6 | @date: June 04, 2010 | 6 | @date: June 04, 2010 |
7 | """ | 7 | """ |
8 | 8 | ||
9 | #from io import StringIO | 9 | from io import StringIO |
10 | from StringIO import StringIO | ||
11 | from xml.sax.saxutils import XMLGenerator | 10 | from xml.sax.saxutils import XMLGenerator |
12 | 11 | ||
13 | 12 | ||
14 | class SimpleXMLGenerator(XMLGenerator): | 13 | class SimpleXMLGenerator(XMLGenerator): |
15 | 14 | ||
16 | def __init__(self, encoding='utf-8'): | 15 | def __init__(self, encoding="utf-8"): |
17 | self.output = StringIO() | 16 | self.output = StringIO() |
18 | XMLGenerator.__init__(self, out=self.output, encoding=encoding) | 17 | XMLGenerator.__init__(self, out=self.output, encoding=encoding) |
19 | 18 | ||
@@ -53,8 +52,8 @@ class Atom1Feed(object): | |||
53 | 52 | ||
54 | def get_feed(self): | 53 | def get_feed(self): |
55 | self.handler.startDocument() | 54 | self.handler.startDocument() |
56 | self.handler.startElement('feed', { | 55 | self.handler.startElement("feed", { |
57 | 'xmlns': 'http://www.w3.org/2005/Atom' }) | 56 | "xmlns": "http://www.w3.org/2005/Atom" }) |
58 | 57 | ||
59 | self.add_root_elements() | 58 | self.add_root_elements() |
60 | 59 | ||
@@ -64,47 +63,47 @@ class Atom1Feed(object): | |||
64 | 63 | ||
65 | self.add_post(post) | 64 | self.add_post(post) |
66 | 65 | ||
67 | self.handler.endElement('feed') | 66 | self.handler.endElement("feed") |
68 | 67 | ||
69 | return self.handler.get_contents() | 68 | return self.handler.get_contents() |
70 | 69 | ||
71 | def add_root_elements(self): | 70 | def add_root_elements(self): |
72 | self.handler.addElement('title', self.title) | 71 | self.handler.addElement("title", self.title) |
73 | self.handler.addElement('updated', self._format_time(self.updated)) | 72 | self.handler.addElement("updated", self._format_time(self.updated)) |
74 | self.handler.addElement('id', self.feed_url) | 73 | self.handler.addElement("id", self.feed_url) |
75 | self.handler.addElement('link', attrs={ | 74 | self.handler.addElement("link", attrs={ |
76 | 'rel': 'alternate', | 75 | "rel": "alternate", |
77 | 'type': 'text/html', | 76 | "type": "text/html", |
78 | 'href': self.blog_url }) | 77 | "href": self.blog_url }) |
79 | self.handler.addElement('link', attrs={ | 78 | self.handler.addElement("link", attrs={ |
80 | 'rel': 'self', | 79 | "rel": "self", |
81 | 'type': 'application/atom+xml', | 80 | "type": "application/atom+xml", |
82 | 'href': self.feed_url }) | 81 | "href": self.feed_url }) |
83 | 82 | ||
84 | def add_post(self, post): | 83 | def add_post(self, post): |
85 | handler = self.handler | 84 | handler = self.handler |
86 | 85 | ||
87 | handler.startElement('entry') | 86 | handler.startElement("entry") |
88 | 87 | ||
89 | handler.startElement('author') | 88 | handler.startElement("author") |
90 | handler.addElement('name', post.author.name) | 89 | handler.addElement("name", post.author.name) |
91 | handler.addElement('email', post.author.email) | 90 | handler.addElement("email", post.author.email) |
92 | handler.endElement('author') | 91 | handler.endElement("author") |
93 | 92 | ||
94 | post_href = '{0}/{1}'.format(self.blog_url, post.filename) | 93 | post_href = "{0}/{1}".format(self.blog_url, post.filename) |
95 | 94 | ||
96 | handler.addElement('title', post.title) | 95 | handler.addElement("title", post.title) |
97 | handler.addElement('link', attrs={ | 96 | handler.addElement("link", attrs={ |
98 | 'rel': 'alternate', | 97 | "rel": "alternate", |
99 | 'type': 'text/html', | 98 | "type": "text/html", |
100 | 'href': post_href }) | 99 | "href": post_href }) |
101 | handler.addElement('id', post_href) | 100 | handler.addElement("id", post_href) |
102 | handler.addElement('updated', self._format_time(post.post_date)) | 101 | handler.addElement("updated", self._format_time(post.post_date)) |
103 | handler.addElement('published', self._format_time(post.post_date)) | 102 | handler.addElement("published", self._format_time(post.post_date)) |
104 | 103 | ||
105 | for tag in post.tags: | 104 | for tag in post.tags: |
106 | handler.addElement('category', attrs={ 'term': tag }) | 105 | handler.addElement("category", attrs={ "term": tag }) |
107 | 106 | ||
108 | handler.addElement('content', post.contents, attrs={ 'type': 'html' }) | 107 | handler.addElement("content", post.contents, attrs={ "type": "html" }) |
109 | 108 | ||
110 | handler.endElement('entry') | 109 | handler.endElement("entry") |