X-Git-Url: https://oss.titaniummirror.com/gitweb?a=blobdiff_plain;f=plugins%2Frss_feed.py;h=6104bf51139da3f5b8aced75c0f81f3ef93dbfad;hb=4890d5778a6e64d9b9ce39b9ef542b014871079c;hp=6810e947ce5a89bacd6960d28591f847bae19a74;hpb=0b1d5d542cb8e0deb3e515be21078eb33b457be9;p=webber.git diff --git a/plugins/rss_feed.py b/plugins/rss_feed.py index 6810e94..6104bf5 100644 --- a/plugins/rss_feed.py +++ b/plugins/rss_feed.py @@ -16,6 +16,8 @@ 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 @@ -25,16 +27,16 @@ def checkconfig(params): # 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() @@ -43,17 +45,22 @@ def sitemap_scan(params): global items file = params.file + # Only consider new stuff if max_age and file["mtime"] < max_age: return + # Ignore non-pages if not file.has_key("linktitle"): return + # Ignore hidden pages + if file.has_key("hide") and file.hide: + return + if file.has_key("change"): change = file["change"] 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, @@ -66,9 +73,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)