summaryrefslogtreecommitdiff
path: root/sphinx/web/feed.py
diff options
context:
space:
mode:
Diffstat (limited to 'sphinx/web/feed.py')
-rw-r--r--sphinx/web/feed.py78
1 files changed, 0 insertions, 78 deletions
diff --git a/sphinx/web/feed.py b/sphinx/web/feed.py
deleted file mode 100644
index 4a3bf3896..000000000
--- a/sphinx/web/feed.py
+++ /dev/null
@@ -1,78 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
- sphinx.web.feed
- ~~~~~~~~~~~~~~~
-
- Nifty module that generates RSS feeds.
-
- :copyright: 2007-2008 by Armin Ronacher.
- :license: BSD.
-"""
-import time
-from datetime import datetime
-from xml.dom.minidom import Document
-from email.Utils import formatdate
-
-
-def format_rss_date(date):
- """
- Pass it a datetime object to receive the string representation
- for RSS date fields.
- """
- return formatdate(time.mktime(date.timetuple()) + date.microsecond / 1e6)
-
-
-class Feed(object):
- """
- Abstract feed creation class. To generate feeds use one of
- the subclasses `RssFeed` or `AtomFeed`.
- """
-
- def __init__(self, req, title, description, link):
- self.req = req
- self.title = title
- self.description = description
- self.link = req.make_external_url(link)
- self.items = []
- self._last_update = None
-
- def add_item(self, title, author, link, description, pub_date):
- if self._last_update is None or pub_date > self._last_update:
- self._last_update = pub_date
- date = pub_date or datetime.utcnow()
- self.items.append({
- 'title': title,
- 'author': author,
- 'link': self.req.make_external_url(link),
- 'description': description,
- 'pub_date': date
- })
-
- def generate(self):
- return self.generate_document().toxml('utf-8')
-
- def generate_document(self):
- doc = Document()
- Element = doc.createElement
- Text = doc.createTextNode
-
- rss = doc.appendChild(Element('rss'))
- rss.setAttribute('version', '2.0')
-
- channel = rss.appendChild(Element('channel'))
- for key in ('title', 'description', 'link'):
- value = getattr(self, key)
- channel.appendChild(Element(key)).appendChild(Text(value))
- date = format_rss_date(self._last_update or datetime.utcnow())
- channel.appendChild(Element('pubDate')).appendChild(Text(date))
-
- for item in self.items:
- d = Element('item')
- for key in ('title', 'author', 'link', 'description'):
- d.appendChild(Element(key)).appendChild(Text(item[key]))
- pub_date = format_rss_date(item['pub_date'])
- d.appendChild(Element('pubDate')).appendChild(Text(pub_date))
- d.appendChild(Element('guid')).appendChild(Text(item['link']))
- channel.appendChild(d)
-
- return doc