Factor things out into functions.
This commit is contained in:
parent
d578fdfc99
commit
236d8a9cd0
39
capcom.py
39
capcom.py
|
@ -4,28 +4,23 @@ import time
|
|||
import feedparser
|
||||
import gusmobile
|
||||
|
||||
feeds = [
|
||||
def load_feed_urls():
|
||||
return (
|
||||
"gemini://carcosa.net:1965/send-the-nukes/atom.xml",
|
||||
"gemini://gemini.circumlunar.space:1965/users/solderpunk/hitenheroes/posts/atom.xml",
|
||||
]
|
||||
)
|
||||
|
||||
def main():
|
||||
items = []
|
||||
for feed_url in feeds:
|
||||
print("Fetching ", feed_url)
|
||||
resp = gusmobile.fetch(feed_url)
|
||||
if resp.status == "20":
|
||||
feed_text = resp.content
|
||||
feed = feedparser.parse(feed_text)
|
||||
for entry in feed.entries:
|
||||
items.append((entry.updated_parsed, entry.link, entry.title, feed.feed.title))
|
||||
items.sort(reverse=True)
|
||||
def items_from_feed_string(feed_str):
|
||||
feed_obj = feedparser.parse(feed_str)
|
||||
feed = feed_obj.feed
|
||||
return [(entry.updated_parsed, entry.link, entry.title, feed.title) for entry in feed_obj.entries]
|
||||
|
||||
def format_aggregated(items, n_feeds):
|
||||
current_day = (0,0)
|
||||
print("# CAPCOM Gemini feed aggregator")
|
||||
print("")
|
||||
print("Aggregating {} Atom feeds from Geminispace.".format(len(feeds)))
|
||||
for item in items[0:64]:
|
||||
updated, link, entry_title, feed_title = item
|
||||
print("Aggregating {} Atom feeds from Geminispace.".format(n_feeds))
|
||||
for updated, link, entry_title, feed_title in items:
|
||||
item_day = (updated.tm_year, updated.tm_yday)
|
||||
if item_day != current_day:
|
||||
current_day = item_day
|
||||
|
@ -34,5 +29,17 @@ def main():
|
|||
print("")
|
||||
print("=> {} {} - {}".format(link, feed_title, entry_title))
|
||||
|
||||
def main():
|
||||
feed_urls = load_feed_urls()
|
||||
items = []
|
||||
for feed_url in feed_urls:
|
||||
print("Fetching ", feed_url)
|
||||
resp = gusmobile.fetch(feed_url)
|
||||
if resp.status == "20":
|
||||
items.extend(items_from_feed_string(resp.content))
|
||||
items.sort(reverse=True)
|
||||
items = items[0:64]
|
||||
format_aggregated(items, len(feed_urls))
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
|
Loading…
Reference in New Issue