From f417041f530193e2b2f773b35e1f803a448b8a99 Mon Sep 17 00:00:00 2001 From: arabcoders Date: Mon, 8 Sep 2025 17:48:04 +0300 Subject: [PATCH] made condition.cli optional --- app/routes/api/conditions.py | 8 ++++---- ui/app/components/ConditionForm.vue | 5 +++++ ui/app/pages/conditions.vue | 5 ++--- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/app/routes/api/conditions.py b/app/routes/api/conditions.py index f9550f61..5f186604 100644 --- a/app/routes/api/conditions.py +++ b/app/routes/api/conditions.py @@ -71,17 +71,17 @@ async def conditions_add(request: Request, encoder: Encoder, notify: EventBus) - if not item.get("name"): return web.json_response( - {"error": "name is required.", "data": item}, status=web.HTTPBadRequest.status_code + {"error": "Name is required.", "data": item}, status=web.HTTPBadRequest.status_code ) if not item.get("filter"): return web.json_response( - {"error": "filter is required.", "data": item}, status=web.HTTPBadRequest.status_code + {"error": "Filter is required.", "data": item}, status=web.HTTPBadRequest.status_code ) - if not item.get("cli"): + if not item.get("cli") and len(item.get("extras", {}).keys()) < 1: return web.json_response( - {"error": "command options for yt-dlp is required.", "data": item}, + {"error": "A Condition Must have cli options or extras", "data": item}, status=web.HTTPBadRequest.status_code, ) diff --git a/ui/app/components/ConditionForm.vue b/ui/app/components/ConditionForm.vue index 12f726c7..4e8d13bd 100644 --- a/ui/app/components/ConditionForm.vue +++ b/ui/app/components/ConditionForm.vue @@ -321,6 +321,11 @@ const checkInfo = async (): Promise => { } } + if ((!form.cli || '' === form.cli.trim()) && Object.keys(form.extras).length < 1) { + toast.error('Either command options for yt-dlp or at least one extra option is required.') + return + } + if (form.cli && '' !== form.cli.trim()) { const options = await convertOptions(form.cli) if (options === null) { diff --git a/ui/app/pages/conditions.vue b/ui/app/pages/conditions.vue index 3e236c9b..adbb38ce 100644 --- a/ui/app/pages/conditions.vue +++ b/ui/app/pages/conditions.vue @@ -199,9 +199,8 @@ const updateItems = async (newItems: ConditionItem[]): Promise => { addInProgress.value = true const validItems = newItems.map(({ id, name, filter, cli, extras }) => { - if (!name || !filter || !cli) { - toast.error('Name, filter and cli are required.') - throw new Error('Missing fields') + if (!name || !filter) { + throw new Error('Name and filter are required.') } return { id, name, filter, cli, extras } })