Filter entries prior to processing any entry.
This saves processing time, esp. since for most installation there should not be so many changes and most times, there will be zero entries to be posted, thus there is not need to process them.
This commit is contained in:
@ -58,12 +58,15 @@ def read_config(config_file):
|
|||||||
def get_feed(feed_url, last_update):
|
def get_feed(feed_url, last_update):
|
||||||
new_entries = 0
|
new_entries = 0
|
||||||
feed = feedparser.parse(feed_url)
|
feed = feedparser.parse(feed_url)
|
||||||
feed.entries.sort(key=lambda e: e.published_parsed)
|
if last_update:
|
||||||
for entry in feed.entries:
|
entries = [e for e in feed.entries
|
||||||
e = get_entry(entry)
|
if dateutil.parser.parse(e['updated']) > last_update]
|
||||||
if last_update is None or e['updated'] > last_update:
|
else:
|
||||||
|
entries = feed.entries
|
||||||
|
entries.sort(key=lambda e: e.published_parsed)
|
||||||
|
for entry in entries:
|
||||||
new_entries += 1
|
new_entries += 1
|
||||||
yield e
|
yield get_entry(entry)
|
||||||
return new_entries
|
return new_entries
|
||||||
|
|
||||||
def get_entry(entry):
|
def get_entry(entry):
|
||||||
|
|||||||
Reference in New Issue
Block a user