aboutsummaryrefslogtreecommitdiff
path: root/serve.py
diff options
context:
space:
mode:
authorArjun Satarkar <me@arjunsatarkar.net>2023-07-28 16:26:49 +0000
committerArjun Satarkar <me@arjunsatarkar.net>2023-07-28 16:35:46 +0000
commit5a546a35351362a8da73fbbd1380de6a094069d9 (patch)
treee55f48b73670815ceefd71a568a54b78b44c969d /serve.py
parentd14c45978119ba150ffff8abf6c87634ecb46c52 (diff)
downloadtagrss-5a546a35351362a8da73fbbd1380de6a094069d9.tar
tagrss-5a546a35351362a8da73fbbd1380de6a094069d9.tar.gz
tagrss-5a546a35351362a8da73fbbd1380de6a094069d9.zip
Add AGPLv3 license
Diffstat (limited to 'serve.py')
-rwxr-xr-xserve.py18
1 files changed, 15 insertions, 3 deletions
diff --git a/serve.py b/serve.py
index 89b8a74..f1061b1 100755
--- a/serve.py
+++ b/serve.py
@@ -1,4 +1,9 @@
#!/usr/bin/env python3
+"""
+Copyright (c) 2023-present Arjun Satarkar <me@arjunsatarkar.net>.
+Licensed under the GNU Affero General Public License v3.0. See LICENSE.txt in
+the root of this repository for the text of the license.
+"""
import bottle
import schedule
@@ -112,11 +117,16 @@ def add_feed_effect():
tags = parse_space_separated_tags(bottle.request.forms.get("tags")) # type: ignore
already_present: bool = False
-
+
parsed, epoch_downloaded = tagrss.fetch_parsed_feed(feed_source)
with core_lock:
try:
- core.add_feed(feed_source=feed_source, parsed_feed=parsed, epoch_downloaded=epoch_downloaded, tags=tags)
+ core.add_feed(
+ feed_source=feed_source,
+ parsed_feed=parsed,
+ epoch_downloaded=epoch_downloaded,
+ tags=tags,
+ )
except tagrss.FeedAlreadyAddedError:
already_present = True
# TODO: handle FeedFetchError too
@@ -165,7 +175,7 @@ def delete_feed():
feed_id: int = int(bottle.request.forms["id"]) # type: ignore
with core_lock:
core.delete_feed(feed_id)
- return bottle.static_file("delete_feed.html", root="views")
+ return bottle.template("delete_feed")
@bottle.get("/static/<path:path>")
@@ -188,12 +198,14 @@ def update_feeds(run_event: threading.Event):
with core_lock:
core.store_feed_entries(feed["id"], parsed_feed, epoch_downloaded)
logging.info("Finished updating feeds.")
+
inner_update()
schedule.every(args.update_seconds).seconds.do(inner_update)
while run_event.is_set():
schedule.run_pending()
time.sleep(1)
+
feed_update_run_event = threading.Event()
feed_update_run_event.set()
threading.Thread(target=update_feeds, args=(feed_update_run_event,)).start()