crunk-columns/column.py

36 lines
946 B
Python
Raw Normal View History

import random
from parse_rss_feeds import parse_rss_feeds
2023-06-03 18:12:55 +02:00
class Column:
def __init__(self, title, urls):
2023-06-03 18:12:55 +02:00
self.title = title
self.urls = urls
self.entries = None
2023-06-03 18:12:55 +02:00
self.sort_order = None
self.limit = None
def set_sort_order(self, sort_order):
self.sort_order = sort_order
def set_limit(self, limit):
self.limit = limit
def _sort_by_order(self):
if self.sort_order.lower() == "random":
entrylist = list(self.entries.items())
random.shuffle(entrylist)
self.entries = dict(entrylist)
def _enforce_limit(self):
while len(self.entries) > self.limit:
self.entries.popitem()
def load_content_from_feeds(self):
entries = parse_rss_feeds(self.urls)
self.entries = entries
if self.sort_order:
self._sort_by_order()
if self.limit:
self._enforce_limit()