log_formatter_rss.py
author Tero Marttila <terom@fixme.fi>
Wed, 11 Feb 2009 03:46:59 +0200
changeset 99 8719ac564b22
parent 80 a0662cff1d9d
permissions -rw-r--r--
implement non-blocking locking for the estdb, and our own locking for the autoload statetmpfile... it should work well now
"""
    Uses PyRSS2Gen to generate XML RSS documents
"""

import PyRSS2Gen as RSS2Gen
import datetime, pytz

class RSSFormatter (object) :
    """
        Mixin for LogFormatter that implements the basic RSS-rendering stuff on top of format_html
    """

    def format_rss (self, lines, **kwargs) :
        """
            Process using format_html
        """
        
        # build the RSS2 object and return the XML
        return RSS2Gen.RSS2(
            title           = "IRC RSS feed",
            link            = "http://irclogs.qmsk.net/",
            description     = "A stupid RSS feed that nobody sane would ever use",
            
            # XXX: GMT
            lastBuildDate   = datetime.datetime.utcnow(),

            items           = [
                RSS2Gen.RSSItem(
                    # use the formatted HTML data as the title
                    title       = html_data,

                    # timestamp
                    pubDate     = line.timestamp.astimezone(pytz.utc),

                    # link
                    link        = "http://xxx/",

                ) for line, html_data in self.format_html(lines, **kwargs)
            ]
        ).to_xml('utf8')