# Usage: <<NewsResults(portland+wifi)>>

Dependencies = ["time"]

from MoinMoin import util, wikiutil, config

class rssWiki:
    def __init__(self, macro, text):
        self.macro = macro
        self.fmt = macro.formatter
        # google news search url. 10 items, sorted by date 
	url = "http://news.google.com/news?hl=en&ned=&q=%s&ie=UTF-8&scoring=n&output=rss" % (text)
        import feedparser
        self.f = feedparser.parse(url)
        self.result = []

    def get_date(self, date):
        self.result.append(self.fmt.rawHTML(date+" - "))

    def get_link(self, link):
        self.result.append(self.fmt.url(on=1, href=link) + \
                           self.fmt.icon('www'))

    def get_entry_header(self, title):
        self.result.append(self.fmt.rawHTML(" "+title) + \
			   self.fmt.url(on=0) + \
			   self.fmt.rawHTML('<br>'))

    def get_entries(self):
        for entry in self.f.entries:
            if entry.has_key('date'):
                self.get_date(entry.date)
            if entry.has_key('link'):
                self.get_link(entry.link)
            if entry.has_key('title'):
                self.get_entry_header(entry.title)

    def get_output(self):
	self.get_entries()
        return ''.join(self.result)

def execute(macro, text):
      rss = rssWiki(macro, text)
      return rss.get_output()
