aboutsummaryrefslogtreecommitdiff
path: root/serve.py
diff options
context:
space:
mode:
Diffstat (limited to 'serve.py')
-rwxr-xr-xserve.py19
1 files changed, 17 insertions, 2 deletions
diff --git a/serve.py b/serve.py
index f1061b1..be650a7 100755
--- a/serve.py
+++ b/serve.py
@@ -71,9 +71,20 @@ def index():
per_page: int = min(MAX_PER_PAGE_ENTRIES, int(bottle.request.query.get("per_page", DEFAULT_PER_PAGE_ENTRIES))) # type: ignore
page_num = int(bottle.request.query.get("page_num", 1)) # type: ignore
offset = (page_num - 1) * per_page
+ included_feeds_str: typing.Optional[str] = bottle.request.query.get("included_feeds", None) # type: ignore
+ included_feeds: typing.Optional[list[int]] = None
+ if included_feeds_str:
+ try:
+ included_feeds = [int(feed_id) for feed_id in included_feeds_str.split(" ")]
+ except ValueError:
+ pass
+ included_tags_str: typing.Optional[str] = bottle.request.query.get("included_tags", None) # type: ignore
+ included_tags: typing.Optional[list[str]] = None
+ if included_tags_str:
+ included_tags = parse_space_separated_tags(included_tags_str)
with core_lock:
- total_pages: int = max(1, math.ceil(core.get_entry_count() / per_page))
- entries = core.get_entries(limit=per_page, offset=offset)
+ total_pages: int = max(1, math.ceil(core.get_entry_count(included_feeds=included_feeds) / per_page))
+ entries = core.get_entries(limit=per_page, offset=offset, included_feeds=included_feeds, included_tags=included_tags)
return bottle.template(
"index",
entries=entries,
@@ -82,6 +93,10 @@ def index():
total_pages=total_pages,
per_page=per_page,
max_per_page=MAX_PER_PAGE_ENTRIES,
+ included_feeds=included_feeds,
+ included_tags=included_tags,
+ included_feeds_str=included_feeds_str,
+ included_tags_str=included_tags_str,
core=core,
)