diff --git a/README.md b/README.md index 5fbc4f3..6fcddaa 100644 --- a/README.md +++ b/README.md @@ -91,6 +91,7 @@ The arguments are: - `debug`: to have some feedback from the script execution. Useful for debugging - `force`: force refetch the rss feed and articles - `silent`: don't output the final RSS (useless on its own, but can be nice when debugging) + - `first`: return the feed items in the order they initially appear in the feed (morss ohterwise shows the newest items first) - http server only - `callback=NAME`: for JSONP calls - `cors`: allow Cross-origin resource sharing (allows XHR calls from other servers) diff --git a/morss/morss.py b/morss/morss.py index 74cf39c..b045d13 100644 --- a/morss/morss.py +++ b/morss/morss.py @@ -343,8 +343,15 @@ def FeedGather(rss, url, options): if options.cache: max_time = 0 - now = datetime.now(tz.tzutc()) - sorted_items = sorted(rss.items, key=lambda x:x.updated or x.time or now, reverse=True) + if options.first: + # :first to just take the first items in the feed (in sequence) + sorted_items = rss.items + + else: + # otherwise, take the _newest_, i.e. sort by time + now = datetime.now(tz.tzutc()) + sorted_items = sorted(rss.items, key=lambda x:x.updated or x.time or now, reverse=True) + for i, item in enumerate(sorted_items): if time.time() - start_time > lim_time >= 0 or i + 1 > lim_item >= 0: log('dropped') diff --git a/www/sheet.xsl b/www/sheet.xsl index 059f102..b4204d1 100644 --- a/www/sheet.xsl +++ b/www/sheet.xsl @@ -190,7 +190,12 @@ - link and + link of the + + items and