aboutsummaryrefslogtreecommitdiff
path: root/serve.py
diff options
context:
space:
mode:
authorArjun Satarkar <me@arjunsatarkar.net>2023-07-30 19:16:48 +0000
committerArjun Satarkar <me@arjunsatarkar.net>2023-07-30 19:57:22 +0000
commit4e6d02e4ae9a9718e15e6b5c1328f28eea444e75 (patch)
treef296475160d0187fa8fbc00d6a2a4f109a4058c7 /serve.py
parent88db0f45477f2278edd7877161942a215aaace3f (diff)
downloadtagrss-4e6d02e4ae9a9718e15e6b5c1328f28eea444e75.tar
tagrss-4e6d02e4ae9a9718e15e6b5c1328f28eea444e75.tar.gz
tagrss-4e6d02e4ae9a9718e15e6b5c1328f28eea444e75.zip
Get tags for all shown feeds in one query for /list_feeds
This also avoids the need to pass `core` to the template, which I never liked since it is basically giving up on encapsulation and passing the whole world (as far as the application is concerned) to the template - not only the values it needs. But that could be avoided in other ways too without reducing the number of queries from 1 + (number of feeds shown) - eg. 51 - to just 2, which this does. The next place something like this needs to be done is with the / (index.tpl) view. Currently, that is also passed `core` and actually does 2 * (number of entries shown) + 1 queries, which could be eg. 101, since we fetch both the feed title and feed tags for every entry separately. With some improvements, it should be possible to do that too in 2 queries.
Diffstat (limited to 'serve.py')
-rwxr-xr-xserve.py3
1 files changed, 1 insertions, 2 deletions
diff --git a/serve.py b/serve.py
index 63aea53..92c79ff 100755
--- a/serve.py
+++ b/serve.py
@@ -126,7 +126,7 @@ def list_feeds():
offset = (page_num - 1) * per_page
with core_lock:
total_pages: int = max(1, math.ceil(core.get_feed_count() / per_page))
- feeds = core.get_feeds(limit=per_page, offset=offset)
+ feeds = core.get_feeds(limit=per_page, offset=offset, get_tags=True)
return bottle.template(
"list_feeds",
feeds=feeds,
@@ -135,7 +135,6 @@ def list_feeds():
total_pages=total_pages,
per_page=per_page,
max_per_page=MAX_PER_PAGE_ENTRIES,
- core=core,
)