summaryrefslogtreecommitdiff
path: root/Biz
diff options
context:
space:
mode:
Diffstat (limited to 'Biz')
-rw-r--r--Biz/PodcastItLater/Core.py25
-rw-r--r--Biz/PodcastItLater/Web.py10
2 files changed, 30 insertions, 5 deletions
diff --git a/Biz/PodcastItLater/Core.py b/Biz/PodcastItLater/Core.py
index 2f05db3..3a88f22 100644
--- a/Biz/PodcastItLater/Core.py
+++ b/Biz/PodcastItLater/Core.py
@@ -879,6 +879,31 @@ class Database: # noqa: PLR0904
return dict(row) if row is not None else None
@staticmethod
+ def get_queue_position(job_id: int) -> int | None:
+ """Get position of job in pending queue."""
+ with Database.get_connection() as conn:
+ cursor = conn.cursor()
+ # Get created_at of this job
+ cursor.execute(
+ "SELECT created_at FROM queue WHERE id = ?",
+ (job_id,),
+ )
+ row = cursor.fetchone()
+ if not row:
+ return None
+ created_at = row[0]
+
+ # Count pending items created before or at same time
+ cursor.execute(
+ """
+ SELECT COUNT(*) FROM queue
+ WHERE status = 'pending' AND created_at <= ?
+ """,
+ (created_at,),
+ )
+ return int(cursor.fetchone()[0])
+
+ @staticmethod
def get_user_queue_status(
user_id: int,
) -> list[dict[str, Any]]:
diff --git a/Biz/PodcastItLater/Web.py b/Biz/PodcastItLater/Web.py
index 06145d9..3e5892b 100644
--- a/Biz/PodcastItLater/Web.py
+++ b/Biz/PodcastItLater/Web.py
@@ -1220,7 +1220,7 @@ def verify_magic_link(request: Request) -> Response:
@app.get("/settings/email/edit")
-def edit_email_form(request: Request) -> Response:
+def edit_email_form(request: Request) -> typing.Any:
"""Return form to edit email."""
user_id = request.session.get("user_id")
if not user_id:
@@ -1268,7 +1268,7 @@ def edit_email_form(request: Request) -> Response:
@app.get("/settings/email/cancel")
-def cancel_edit_email(request: Request) -> Response:
+def cancel_edit_email(request: Request) -> typing.Any:
"""Cancel email editing and show original view."""
user_id = request.session.get("user_id")
if not user_id:
@@ -1299,7 +1299,7 @@ def cancel_edit_email(request: Request) -> Response:
@app.post("/settings/email")
-def update_email(request: Request, data: FormData) -> Response:
+def update_email(request: Request, data: FormData) -> typing.Any:
"""Update user email."""
user_id = request.session.get("user_id")
if not user_id:
@@ -1361,7 +1361,7 @@ def update_email(request: Request, data: FormData) -> Response:
@app.get("/account")
-def account_page(request: Request) -> UI.AccountPage | RedirectResponse:
+def account_page(request: Request) -> typing.Any:
"""Account management page."""
user_id = request.session.get("user_id")
if not user_id:
@@ -1407,7 +1407,7 @@ def delete_account(request: Request) -> Response:
def submit_article( # noqa: PLR0911, PLR0914
request: Request,
data: FormData,
-) -> html.div:
+) -> typing.Any:
"""Handle manual form submission."""
try:
# Check if user is logged in