diff options
Diffstat (limited to 'Biz/PodcastItLater')
| -rw-r--r-- | Biz/PodcastItLater/Core.py | 25 | ||||
| -rw-r--r-- | Biz/PodcastItLater/Web.py | 10 |
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 |
