BASE = "http://rss.netflix.com/QueueRSS?id=" import urllib, elementtree.ElementTree, textwrap, cgi, os, time import __main__ __all__ = ['context_netflix', 'markup_netflix'] def untrack(s): try: i = s.index("&trkid=") except ValueError: return s return s[:i] def validate_cache(c, a): return os.path.exists(c) and time.time() < os.stat(c).st_mtime + a def parse_netflix_queue(rss_id, cachedir, max_age = 86400): result = [] url = BASE + rss_id if not os.path.isdir(cachedir): os.makedirs(cachedir) cache = os.path.join(cachedir, "_netflix_" + rss_id) if validate_cache(cache, max_age): u = open(cache).read() else: u = urllib.urlopen(url).read() open(cache, "w").write(u) t = elementtree.ElementTree.fromstring(u) v = t.findall("channel/item") for i in v: result.append((i.findtext("title"), untrack(i.findtext("link")), i.findtext("description"))) return result context_netflix = ['count'] def markup_netflix(text, meta, count=10): result = [] for title,url,text in parse_netflix_queue(text, __main__.file_dir)[:count]: title = title.split("-", 1)[1] result.append("%s\n" % (url,text,title)) return "".join(result) # vim:sw=4:sts=4:et