made condition.cli optional

This commit is contained in:
arabcoders 2025-09-08 17:48:04 +03:00
parent 2ae1f5b6ad
commit f417041f53
3 changed files with 11 additions and 7 deletions

View file

@ -71,17 +71,17 @@ async def conditions_add(request: Request, encoder: Encoder, notify: EventBus) -
if not item.get("name"): if not item.get("name"):
return web.json_response( 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"): if not item.get("filter"):
return web.json_response( 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( 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, status=web.HTTPBadRequest.status_code,
) )

View file

@ -321,6 +321,11 @@ const checkInfo = async (): Promise<void> => {
} }
} }
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()) { if (form.cli && '' !== form.cli.trim()) {
const options = await convertOptions(form.cli) const options = await convertOptions(form.cli)
if (options === null) { if (options === null) {

View file

@ -199,9 +199,8 @@ const updateItems = async (newItems: ConditionItem[]): Promise<boolean> => {
addInProgress.value = true addInProgress.value = true
const validItems = newItems.map(({ id, name, filter, cli, extras }) => { const validItems = newItems.map(({ id, name, filter, cli, extras }) => {
if (!name || !filter || !cli) { if (!name || !filter) {
toast.error('Name, filter and cli are required.') throw new Error('Name and filter are required.')
throw new Error('Missing fields')
} }
return { id, name, filter, cli, extras } return { id, name, filter, cli, extras }
}) })