fixed linting errors
This commit is contained in:
parent
319ed9329d
commit
97c5e4c8e5
|
|
@ -30,11 +30,12 @@ class ExtractorArgsParser:
|
|||
Example:
|
||||
>>> parser = ExtractorArgsParser()
|
||||
>>> result = parser.parse("youtube:key1=val1,val2;key2=val3")
|
||||
>>> # Returns: {"youtube": {"key1": ["val1", "val2"], "key2": ["val3"]}}
|
||||
>>> # Returns: {"youtube": {"key1": ["val1", "val2"],
|
||||
>>> # "key2": ["val3"]}}
|
||||
"""
|
||||
|
||||
@staticmethod
|
||||
def _parse_key_values(key, vals=''):
|
||||
def _parse_key_values(key, vals=""):
|
||||
"""
|
||||
Parse a single key=values pair following yt-dlp logic.
|
||||
|
||||
|
|
@ -46,7 +47,7 @@ class ExtractorArgsParser:
|
|||
tuple: (normalized_key, list_of_values)
|
||||
"""
|
||||
# Normalize key: strip, lowercase, replace hyphens with underscores
|
||||
normalized_key = key.strip().lower().replace('-', '_')
|
||||
normalized_key = key.strip().lower().replace("-", "_")
|
||||
|
||||
# Split values by comma, but preserve escaped commas
|
||||
# yt-dlp uses: re.split(r'(?<!\\),', vals)
|
||||
|
|
@ -54,8 +55,8 @@ class ExtractorArgsParser:
|
|||
return normalized_key, []
|
||||
|
||||
value_list = [
|
||||
val.replace(r'\,', ',').strip()
|
||||
for val in re.split(r'(?<!\\),', vals)
|
||||
val.replace(r"\,", ",").strip()
|
||||
for val in re.split(r"(?<!\\),", vals)
|
||||
]
|
||||
|
||||
return normalized_key, value_list
|
||||
|
|
@ -86,15 +87,21 @@ class ExtractorArgsParser:
|
|||
|
||||
for spec in extractor_specs:
|
||||
# Split by first colon to separate extractor from args
|
||||
if ':' not in spec:
|
||||
print(f"[extractor_args] Warning: Invalid format (missing colon): {spec}")
|
||||
if ":" not in spec:
|
||||
print(
|
||||
"[extractor_args] Warning: Invalid format "
|
||||
f"(missing colon): {spec}"
|
||||
)
|
||||
continue
|
||||
|
||||
extractor_name, args_part = spec.split(':', 1)
|
||||
extractor_name, args_part = spec.split(":", 1)
|
||||
extractor_name = extractor_name.strip()
|
||||
|
||||
if not extractor_name:
|
||||
print(f"[extractor_args] Warning: Empty extractor name in: {spec}")
|
||||
print(
|
||||
"[extractor_args] Warning: Empty extractor name "
|
||||
f"in: {spec}"
|
||||
)
|
||||
continue
|
||||
|
||||
# Initialize extractor dict if not exists
|
||||
|
|
@ -102,18 +109,21 @@ class ExtractorArgsParser:
|
|||
result[extractor_name] = {}
|
||||
|
||||
# Split args by semicolon to get individual key=value pairs
|
||||
key_value_pairs = args_part.split(';')
|
||||
key_value_pairs = args_part.split(";")
|
||||
|
||||
for pair in key_value_pairs:
|
||||
if not pair.strip():
|
||||
continue
|
||||
|
||||
# Split by first equals sign
|
||||
if '=' not in pair:
|
||||
print(f"[extractor_args] Warning: Invalid pair (missing =): {pair}")
|
||||
if "=" not in pair:
|
||||
print(
|
||||
"[extractor_args] Warning: Invalid pair "
|
||||
f"(missing =): {pair}"
|
||||
)
|
||||
continue
|
||||
|
||||
key_part, value_part = pair.split('=', 1)
|
||||
key_part, value_part = pair.split("=", 1)
|
||||
normalized_key, value_list = self._parse_key_values(
|
||||
key_part, value_part
|
||||
)
|
||||
|
|
|
|||
|
|
@ -39,7 +39,10 @@ class Migration(migrations.Migration):
|
|||
"is_superuser",
|
||||
models.BooleanField(
|
||||
default=False,
|
||||
help_text="Designates that this user has all permissions without explicitly assigning them.",
|
||||
help_text=(
|
||||
"Designates that this user has all permissions "
|
||||
"without explicitly assigning them."
|
||||
),
|
||||
verbose_name="superuser status",
|
||||
),
|
||||
),
|
||||
|
|
@ -49,7 +52,11 @@ class Migration(migrations.Migration):
|
|||
"groups",
|
||||
models.ManyToManyField(
|
||||
blank=True,
|
||||
help_text="The groups this user belongs to. A user will get all permissions granted to each of their groups.",
|
||||
help_text=(
|
||||
"The groups this user belongs to. A user will "
|
||||
"get all permissions granted to each of their "
|
||||
"groups."
|
||||
),
|
||||
related_name="user_set",
|
||||
related_query_name="user",
|
||||
to="auth.group",
|
||||
|
|
|
|||
|
|
@ -1352,7 +1352,6 @@
|
|||
"integrity": "sha512-keKxkZMqnDicuvFoJbzrhbtdLSPhj/rZThDlKWCDbgXmUg0rEUFtRssDXKYmtXluZlIqiC5VqkCgRwzuyLHKHw==",
|
||||
"devOptional": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"csstype": "^3.0.2"
|
||||
}
|
||||
|
|
@ -1410,7 +1409,6 @@
|
|||
"integrity": "sha512-tK3GPFWbirvNgsNKto+UmB/cRtn6TZfyw0D6IKrW55n6Vbs7KJoZtI//kpTKzE/DUmmnAFD8/Ca46s7Obs92/w==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@typescript-eslint/scope-manager": "8.46.4",
|
||||
"@typescript-eslint/types": "8.46.4",
|
||||
|
|
@ -1633,7 +1631,6 @@
|
|||
"integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"bin": {
|
||||
"acorn": "bin/acorn"
|
||||
},
|
||||
|
|
@ -1930,7 +1927,6 @@
|
|||
"integrity": "sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@eslint-community/eslint-utils": "^4.8.0",
|
||||
"@eslint-community/regexpp": "^4.12.1",
|
||||
|
|
@ -2823,7 +2819,6 @@
|
|||
"resolved": "https://registry.npmjs.org/react/-/react-19.2.0.tgz",
|
||||
"integrity": "sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
|
|
@ -2833,7 +2828,6 @@
|
|||
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.0.tgz",
|
||||
"integrity": "sha512-UlbRu4cAiGaIewkPyiRGJk0imDN2T3JjieT6spoL2UeSf5od4n5LB/mQ4ejmxhCFT1tYe8IvaFulzynWovsEFQ==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"scheduler": "^0.27.0"
|
||||
},
|
||||
|
|
@ -3128,7 +3122,6 @@
|
|||
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
|
|
@ -3181,7 +3174,6 @@
|
|||
"integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"peer": true,
|
||||
"bin": {
|
||||
"tsc": "bin/tsc",
|
||||
"tsserver": "bin/tsserver"
|
||||
|
|
@ -3243,7 +3235,6 @@
|
|||
"integrity": "sha512-BxAKBWmIbrDgrokdGZH1IgkIk/5mMHDreLDmCJ0qpyJaAteP8NvMhkwr/ZCQNqNH97bw/dANTE9PDzqwJghfMQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"esbuild": "^0.25.0",
|
||||
"fdir": "^6.5.0",
|
||||
|
|
@ -3412,7 +3403,6 @@
|
|||
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -465,7 +465,10 @@ const SettingsApplication = () => {
|
|||
<li>Format: EXTRACTOR:ARG1=VAL1,VAL2;ARG2=VAL3;ARG3=VAL4</li>
|
||||
<li>
|
||||
More details{' '}
|
||||
<a target="_blank" href="https://github.com/yt-dlp/yt-dlp#extractor-arguments">
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/yt-dlp/yt-dlp#extractor-arguments"
|
||||
>
|
||||
here
|
||||
</a>
|
||||
.
|
||||
|
|
|
|||
Loading…
Reference in New Issue