update
This commit is contained in:
parent
73411726f5
commit
2c858ffadb
2 changed files with 10 additions and 34 deletions
|
|
@ -1,9 +1,7 @@
|
||||||
from typing import Dict
|
|
||||||
from typing import List
|
|
||||||
|
|
||||||
from ytdl_sub.downloaders.url.validators import MultiUrlValidator
|
from ytdl_sub.downloaders.url.validators import MultiUrlValidator
|
||||||
|
|
||||||
|
|
||||||
|
# TODO: Remove later - keep for docstring
|
||||||
class MultiUrlDownloadOptions(MultiUrlValidator):
|
class MultiUrlDownloadOptions(MultiUrlValidator):
|
||||||
"""
|
"""
|
||||||
Downloads from multiple URLs. If an entry is returned from more than one URL, it will
|
Downloads from multiple URLs. If an entry is returned from more than one URL, it will
|
||||||
|
|
@ -38,25 +36,3 @@ class MultiUrlDownloadOptions(MultiUrlValidator):
|
||||||
- name: "season{season_index}-poster.jpg"
|
- name: "season{season_index}-poster.jpg"
|
||||||
uid: "latest_entry"
|
uid: "latest_entry"
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@property
|
|
||||||
def collection_validator(self) -> MultiUrlValidator:
|
|
||||||
"""Returns itself!"""
|
|
||||||
return self
|
|
||||||
|
|
||||||
def validate_with_variables(
|
|
||||||
self, source_variables: List[str], override_variables: Dict[str, str]
|
|
||||||
) -> None:
|
|
||||||
"""
|
|
||||||
Validates any source variables added by the collection
|
|
||||||
"""
|
|
||||||
super().validate_with_variables(
|
|
||||||
source_variables=source_variables, override_variables=override_variables
|
|
||||||
)
|
|
||||||
|
|
||||||
has_non_empty_url = False
|
|
||||||
for url_validator in self.urls.list:
|
|
||||||
has_non_empty_url |= bool(url_validator.url.apply_formatter(override_variables))
|
|
||||||
|
|
||||||
if not has_non_empty_url:
|
|
||||||
raise self._validation_exception("Must contain at least one url that is non-empty")
|
|
||||||
|
|
|
||||||
|
|
@ -179,6 +179,15 @@ class MultiUrlValidator(OptionsValidator):
|
||||||
resolve to the bottom-most URL settings.
|
resolve to the bottom-most URL settings.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def partial_validate(cls, name: str, value: Any) -> None:
|
||||||
|
"""
|
||||||
|
Partially validate a collection
|
||||||
|
"""
|
||||||
|
if isinstance(value, dict):
|
||||||
|
value["urls"] = value.get("urls", [{"url": "placeholder"}])
|
||||||
|
_ = cls(name, value)
|
||||||
|
|
||||||
def __init__(self, name, value):
|
def __init__(self, name, value):
|
||||||
super().__init__(name, value)
|
super().__init__(name, value)
|
||||||
|
|
||||||
|
|
@ -198,15 +207,6 @@ class MultiUrlValidator(OptionsValidator):
|
||||||
name=name, value=UrlValidator(name=name, value=value_copy)
|
name=name, value=UrlValidator(name=name, value=value_copy)
|
||||||
)
|
)
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def partial_validate(cls, name: str, value: Any) -> None:
|
|
||||||
"""
|
|
||||||
Partially validate a collection
|
|
||||||
"""
|
|
||||||
if isinstance(value, dict):
|
|
||||||
value["urls"] = value.get("urls", [{"url": "placeholder"}])
|
|
||||||
_ = cls(name, value)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def urls(self) -> UrlListValidator:
|
def urls(self) -> UrlListValidator:
|
||||||
"""
|
"""
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue