diff --git a/.vscode/launch.json b/.vscode/launch.json index 1e9f7c07..892e5664 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -43,6 +43,19 @@ "YTP_ACCESS_LOG": "true", } }, + { + "name": "Node: Generate UI", + "request": "launch", + "runtimeArgs": [ + "run", + "generate" + ], + "runtimeExecutable": "yarn", + "type": "node", + "cwd": "${workspaceFolder}/ui", + "console": "internalConsole", + "outputCapture": "std", + }, { "name": "Python: main.py (Deep)", "type": "debugpy", diff --git a/Pipfile.lock b/Pipfile.lock index a9288fc6..7a290fa8 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -27,11 +27,11 @@ }, "aiohappyeyeballs": { "hashes": [ - "sha256:0850b580748c7071db98bffff6d4c94028d0d3035acc20fd721a0ce7e8cac35d", - "sha256:18fde6204a76deeabc97c48bdd01d5801cfda5d6b9c8bbeb1aaaee9d648ca191" + "sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558", + "sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8" ], "markers": "python_version >= '3.9'", - "version": "==2.5.0" + "version": "==2.6.1" }, "aiohttp": { "hashes": [ @@ -149,11 +149,11 @@ }, "attrs": { "hashes": [ - "sha256:1c97078a80c814273a76b2a298a932eb681c87415c11dee0a6921de7f1b02c3e", - "sha256:c75a69e28a550a7e93789579c22aa26b0f5b83b75dc4e08fe092980051e1090a" + "sha256:427318ce031701fea540783410126f03899a97ffc6f61596ad581ac2e40e3bc3", + "sha256:75d7cefc7fb576747b2c81b4442d4d4a1ce0900973527c011d1030fd3bf4af1b" ], "markers": "python_version >= '3.8'", - "version": "==25.1.0" + "version": "==25.3.0" }, "bidict": { "hashes": [ @@ -436,20 +436,20 @@ }, "curl-cffi": { "hashes": [ - "sha256:202145686c5ebc00635b9b15cc8afa82523f14197a640b618bb09d59e74889ba", - "sha256:26d61c5b5c59e9c4a006cba35feccd73c75ce981db0da89a3da88dd280ead7a0", - "sha256:429a14e724898b7001be2776caa87c294e8062f0ac652619df5854eeae6e156c", - "sha256:4818e074b61cb209bd8d4d0d03783313d4773e6b51f8b815e25aad9cc146a7b7", - "sha256:752a4686c062a8bd6e25961845ea812704ba089a0e6863957deb2a30590105bb", - "sha256:7968c3ea37bec96bbe4b623c0fa59c09d3cdaf173da2e0a516b19db52f05caa4", - "sha256:7b1177203e47d3248ccb250e63983eaddf39fce5332f91cc2993ea54cae5aa21", - "sha256:7f41bd0a5dafe3fe19319da1c31302a40634ec4779769ca3d954d8673eb2b4f2", - "sha256:81ba09622e68f8392236212dd0afd75dcd18cbe1be16467deb4d441d62cfc8a3", - "sha256:ea8f0511bc6882d30a985ddc53fa26d109f2977715d4851aef162bfa308cd2a8" + "sha256:04b1d23f0f54f94b8298ed417e6bece85a635d674723cde2b155da686efbf78f", + "sha256:15053d01c6a3e3c4c5331ce9e07e1dc31ca5aa063babca05d18b1b5aad369fac", + "sha256:1e60b8ecc80bfb0da4ff73ac9d194e80482b50ecbb8aefec1b0edaf45fafd80e", + "sha256:3969e4260ad4dab638fb6dbe349623f9f5f022435c7fd21daf760231380367fa", + "sha256:3e37b35268ca58492f54ed020ae4b50c33ee0debad4145db9f746f04ed466eb0", + "sha256:458f53c41bd76d90d8974d60c3a8a0dd902a1af1f9056215cf24f454bcedc6fd", + "sha256:59389773a1556e087120e91eac1e33f84f1599d853e1bc168b153e4cdf360002", + "sha256:cfc74f09e44d2d8d61b8e8fda3a7004b5bc0217a703fbbe9e16ef8caa1f3d4e4", + "sha256:f03f4b17dc679c82bd3c946feb1ad38749b2ad731d7c26daefaac857d1c72fd9", + "sha256:f1b0c7b7b81afca15a0e56c593d3c2bdcd4fd4c9ca49b9ded5b9d8076ba78ff9" ], "index": "pypi", - "markers": "python_version >= '3.8'", - "version": "==0.9.0" + "markers": "python_version >= '3.9'", + "version": "==0.10.0" }, "debugpy": { "hashes": [ diff --git a/app/library/Notifications.py b/app/library/Notifications.py index d8922c7b..f5d0304e 100644 --- a/app/library/Notifications.py +++ b/app/library/Notifications.py @@ -360,7 +360,10 @@ class Notification(metaclass=Singleton): method=target.get("request", {}).get("method", "POST"), url=target.get("request", {}).get("url"), headers=[ - TargetRequestHeader(key=h.get("key"), value=h.get("value")) + TargetRequestHeader( + key=str(h.get("key", "")).strip(), + value=str(h.get("value", "")).strip(), + ) for h in target.get("request", {}).get("headers", []) ], ), diff --git a/app/library/YTDLPOpts.py b/app/library/YTDLPOpts.py index b989f062..d853e5bd 100644 --- a/app/library/YTDLPOpts.py +++ b/app/library/YTDLPOpts.py @@ -129,7 +129,7 @@ class YTDLPOpts(metaclass=Singleton): self.presets_opts = {} self._item_opts = {} - if "format" in data and "not_set" == data["format"]: + if "format" in data and data["format"] in ["not_set", "default"]: data["format"] = None return data diff --git a/ui/components/NotificationForm.vue b/ui/components/NotificationForm.vue index 79dfced1..112e54d4 100644 --- a/ui/components/NotificationForm.vue +++ b/ui/components/NotificationForm.vue @@ -1,202 +1,243 @@ diff --git a/ui/components/PresetForm.vue b/ui/components/PresetForm.vue index b30699e6..3ac968ad 100644 --- a/ui/components/PresetForm.vue +++ b/ui/components/PresetForm.vue @@ -1,38 +1,5 @@ diff --git a/ui/components/TaskForm.vue b/ui/components/TaskForm.vue index 7b439f39..63580dd7 100644 --- a/ui/components/TaskForm.vue +++ b/ui/components/TaskForm.vue @@ -1,188 +1,232 @@