X-Git-Url: https://oss.titaniummirror.com/gitweb?a=blobdiff_plain;f=plugins%2Frss_feed.py;h=eb61cc0308568ca1563d7591546e1d1c4bb13433;hb=c1d97754a5952745e75a0ee7a0b0477f58a84646;hp=1dbc11e25b874ffad8157b9cf3d561d7a2e22605;hpb=7e006074808e3c233ae4cbe8abfa6d4fe228d085;p=webber.git diff --git a/plugins/rss_feed.py b/plugins/rss_feed.py index 1dbc11e..eb61cc0 100644 --- a/plugins/rss_feed.py +++ b/plugins/rss_feed.py @@ -8,6 +8,7 @@ except ImportError: raise items = [] +max_age = 0 @set_hook("checkconfig") @@ -15,21 +16,27 @@ def checkconfig(params): if not cfg.has_key("rss_file"): log('no "rss_file:" configured, using "feed.rss":', 4) cfg.rss_file = "feed.rss" + if not cfg.has_key("rss_max_items"): + cfg.rss_max_items = 0 + if cfg.has_key("rss_max_age_days"): + import time + global max_age + max_age = int(time.time()) - int(cfg.rss_max_age_days)*86400 # Helper class needed for datetime.datetime to generate GMT timestamps ZERO = datetime.timedelta(0) class UTC(datetime.tzinfo): - """UTC""" + """UTC""" - def utcoffset(self, dt): - return ZERO + def utcoffset(self, dt): + return ZERO - def tzname(self, dt): - return "UTC" + def tzname(self, dt): + return "UTC" - def dst(self, dt): - return ZERO + def dst(self, dt): + return ZERO utc = UTC() @@ -38,6 +45,8 @@ def sitemap_scan(params): global items file = params.file + if max_age and file["mtime"] < max_age: + return if not file.has_key("linktitle"): return if file.has_key("change"): @@ -45,8 +54,7 @@ def sitemap_scan(params): else: change = "" - fname_out = os.path.join(cfg.out_dir, file.out_path) - full_url = "http://%s/%s" % (cfg.main_url, fname_out) + full_url = "http://%s/%s" % (cfg.main_url, file.out_path) item = PyRSS2Gen.RSSItem( title = file["title"], link = full_url, @@ -59,9 +67,15 @@ def sitemap_scan(params): @set_hook("finish") def finish(params): + global items # Sort items by pubDate, which still holds the mtime items.sort(key=lambda i: i.pubDate, reverse=True) + # Limit to requested number + count = int(cfg.rss_max_items) + if count: + items = items[:count] + # convert mtime to real pupDate for i in items: i.pubDate = datetime.datetime.fromtimestamp(i.pubDate, utc)