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
# 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()
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,
@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)