buttfeed: De-duplicate updates by link.
All checks were successful
Build Tilde Friends / Build-All (push) Successful in 29m14s

This commit is contained in:
Cory McWilliams 2025-02-24 12:16:31 -05:00
parent 0a6f0ed3f7
commit 2ff689aab0

View File

@ -25,6 +25,7 @@ def fix_title(entry):
return entry.title.split('\n')[0] return entry.title.split('\n')[0]
def get_entries(): def get_entries():
seen = set()
results = [] results = []
for name, url in k_feeds.items(): for name, url in k_feeds.items():
feed = feedparser.parse(url) feed = feedparser.parse(url)
@ -41,8 +42,12 @@ def get_entries():
continue continue
if entry.summary.startswith('<a href='): if entry.summary.startswith('<a href='):
for m in re.findall(r'<a href="(.*?)">.*?</a>$\s*^([^\n]+)$', entry.summary, re.S | re.M): for m in re.findall(r'<a href="(.*?)">.*?</a>$\s*^([^\n]+)$', entry.summary, re.S | re.M):
if not m[0] in seen:
seen.add(m[0])
results.append((time.mktime(entry.get('updated_parsed')), name, m[0], m[1])) results.append((time.mktime(entry.get('updated_parsed')), name, m[0], m[1]))
else: else:
if not entry.link in seen:
seen.add(entry.link)
results.append((time.mktime(entry.get('updated_parsed')), name, entry.link, entry.title.split('\n')[0])) results.append((time.mktime(entry.get('updated_parsed')), name, entry.link, entry.title.split('\n')[0]))
results.sort() results.sort()
results.reverse() results.reverse()