status2rss.py 1.08 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
import datetime
import uuid
import PyRSS2Gen
import sys
from email.utils import parsedate_tz, mktime_tz
import base64

# Based on http://thehelpfulhacker.net/2011/03/27/a-rss-feed-for-your-crontabs/

# ### Defaults
TITLE = sys.argv[1]
LINK = sys.argv[2]
DESCRIPTION = TITLE

items = []

while 1:
  try:
    line = sys.stdin.readline()
  except KeyboardInterrupt:
    break

  if not line:
    break

26
  time, statistic, desc = line.split(',', 2)
27 28 29

  rss_item = PyRSS2Gen.RSSItem(
    title = desc,
30 31
    description = "<p>%s</p>" % "<br/>".join(("%s, %s\n<a href='http://www.nongnu.org/rdiff-backup/FAQ.html#statistics'>Lastest statistic</a>\n%s" % (time, desc,
      open(statistic).read())).split("\n")),
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
    link = LINK,
    pubDate = datetime.datetime.fromtimestamp(mktime_tz(parsedate_tz(time))),
    guid = PyRSS2Gen.Guid(base64.b64encode("%s, %s" % (time, desc)))
    )
  items.append(rss_item)

### Build the rss feed
rss_feed = PyRSS2Gen.RSS2 (
  title = TITLE,
  link = LINK,
  description = DESCRIPTION,
  lastBuildDate = datetime.datetime.utcnow(),
  items = items
  )

print rss_feed.to_xml()