fixed setting invidious and piped instances
This commit is contained in:
parent
263b1f203b
commit
8397c61a50
@ -1,11 +1,13 @@
|
|||||||
from typing import Dict, List
|
from typing import Dict, List
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
|
from urllib.parse import urlparse
|
||||||
|
|
||||||
from ..utils import cli_function
|
from ..utils import cli_function
|
||||||
|
|
||||||
from ...objects import Country
|
from ...objects import Country
|
||||||
from ...utils import config, write_config
|
from ...utils import config, write_config
|
||||||
|
from ...utils.config import youtube_settings
|
||||||
from ...connection import Connection
|
from ...connection import Connection
|
||||||
|
|
||||||
|
|
||||||
@ -35,7 +37,15 @@ class FrontendInstance:
|
|||||||
def add_instance(self, instance: Instance):
|
def add_instance(self, instance: Instance):
|
||||||
self.all_instances.append(instance)
|
self.all_instances.append(instance)
|
||||||
|
|
||||||
config.set_name_to_value("youtube_url", instance.uri)
|
youtube_lists = youtube_settings["youtube_url"]
|
||||||
|
existing_netlocs = set(tuple(url.netloc for url in youtube_lists))
|
||||||
|
|
||||||
|
parsed_instance = urlparse(instance.uri)
|
||||||
|
instance_netloc = parsed_instance.netloc
|
||||||
|
|
||||||
|
if instance_netloc not in existing_netlocs:
|
||||||
|
youtube_lists.append(parsed_instance)
|
||||||
|
youtube_settings.__setitem__("youtube_url", youtube_lists, is_parsed=True)
|
||||||
|
|
||||||
for region in instance.regions:
|
for region in instance.regions:
|
||||||
self.region_instances[region].append(instance)
|
self.region_instances[region].append(instance)
|
||||||
@ -45,8 +55,7 @@ class FrontendInstance:
|
|||||||
print(f"Downloading {type(self).__name__} instances...")
|
print(f"Downloading {type(self).__name__} instances...")
|
||||||
|
|
||||||
def set_instance(self, instance: Instance):
|
def set_instance(self, instance: Instance):
|
||||||
config.set_name_to_value(self.SETTING_NAME, instance.uri)
|
youtube_settings.__setitem__(self.SETTING_NAME, instance.uri)
|
||||||
write_config()
|
|
||||||
|
|
||||||
def _choose_country(self) -> List[Instance]:
|
def _choose_country(self) -> List[Instance]:
|
||||||
print("Input the country code, an example would be \"US\"")
|
print("Input the country code, an example would be \"US\"")
|
||||||
|
@ -28,6 +28,8 @@ class PageType(Enum):
|
|||||||
SONG = "MUSIC_VIDEO_TYPE_ATV"
|
SONG = "MUSIC_VIDEO_TYPE_ATV"
|
||||||
VIDEO = "MUSIC_VIDEO_TYPE_UGC"
|
VIDEO = "MUSIC_VIDEO_TYPE_UGC"
|
||||||
OFFICIAL_MUSIC_VIDEO = "MUSIC_VIDEO_TYPE_OMV"
|
OFFICIAL_MUSIC_VIDEO = "MUSIC_VIDEO_TYPE_OMV"
|
||||||
|
# returns this type if you search for the band Queen
|
||||||
|
# S = "MUSIC_VIDEO_TYPE_OFFICIAL_SOURCE_MUSIC"
|
||||||
|
|
||||||
|
|
||||||
def parse_run_element(run_element: dict) -> Optional[DatabaseObject]:
|
def parse_run_element(run_element: dict) -> Optional[DatabaseObject]:
|
||||||
@ -43,7 +45,10 @@ def parse_run_element(run_element: dict) -> Optional[DatabaseObject]:
|
|||||||
page_type_string = navigation_endpoint.get("watchEndpointMusicSupportedConfigs", {}).get("watchEndpointMusicConfig", {}).get("musicVideoType", "")
|
page_type_string = navigation_endpoint.get("watchEndpointMusicSupportedConfigs", {}).get("watchEndpointMusicConfig", {}).get("musicVideoType", "")
|
||||||
if not is_video:
|
if not is_video:
|
||||||
page_type_string = navigation_endpoint.get("browseEndpointContextSupportedConfigs", {}).get("browseEndpointContextMusicConfig", {}).get("pageType", "")
|
page_type_string = navigation_endpoint.get("browseEndpointContextSupportedConfigs", {}).get("browseEndpointContextMusicConfig", {}).get("pageType", "")
|
||||||
|
try:
|
||||||
element_type = PageType(page_type_string)
|
element_type = PageType(page_type_string)
|
||||||
|
except ValueError:
|
||||||
|
return
|
||||||
|
|
||||||
element_id = navigation_endpoint.get("videoId" if is_video else "browseId")
|
element_id = navigation_endpoint.get("videoId" if is_video else "browseId")
|
||||||
element_text = run_element.get("text")
|
element_text = run_element.get("text")
|
||||||
|
@ -13,8 +13,8 @@ class ConfigDict(dict):
|
|||||||
|
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
|
|
||||||
def __getattribute__(self, __name: str) -> Any:
|
def __getitem__(self, __name: str) -> Any:
|
||||||
return super().__getattribute__(__name)
|
return super().__getitem__(__name)
|
||||||
|
|
||||||
def __setitem__(self, __key: Any, __value: Any, from_attribute: bool = False, is_parsed: bool = False) -> None:
|
def __setitem__(self, __key: Any, __value: Any, from_attribute: bool = False, is_parsed: bool = False) -> None:
|
||||||
if not from_attribute:
|
if not from_attribute:
|
||||||
|
@ -1,61 +0,0 @@
|
|||||||
from typing import TypedDict, List
|
|
||||||
|
|
||||||
from urllib.parse import ParseResult
|
|
||||||
from logging import Logger
|
|
||||||
from pathlib import Path
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class SettingsStructure(TypedDict):
|
|
||||||
hasnt_yet_started: bool
|
|
||||||
result_history: bool
|
|
||||||
history_length: int
|
|
||||||
happy_messages: List[str]
|
|
||||||
modify_gc: bool
|
|
||||||
id_bits: int
|
|
||||||
|
|
||||||
# audio
|
|
||||||
bitrate: int
|
|
||||||
audio_format: str
|
|
||||||
sort_by_date: bool
|
|
||||||
sort_album_by_type: bool
|
|
||||||
download_path: str
|
|
||||||
download_file: str
|
|
||||||
album_type_blacklist: List[str]
|
|
||||||
|
|
||||||
# connection
|
|
||||||
proxies: List[str]
|
|
||||||
tor: bool
|
|
||||||
tor_port: int
|
|
||||||
chunk_size: int
|
|
||||||
show_download_errors_threshold: float
|
|
||||||
|
|
||||||
# youtube
|
|
||||||
invidious_instance: ParseResult
|
|
||||||
piped_instance: ParseResult
|
|
||||||
sleep_after_youtube_403: float
|
|
||||||
youtube_music_api_key: str
|
|
||||||
youtube_music_clean_data: bool
|
|
||||||
youtube_url: List[ParseResult]
|
|
||||||
use_sponsor_block: bool
|
|
||||||
|
|
||||||
# logging
|
|
||||||
logging_format: str
|
|
||||||
log_level: int
|
|
||||||
download_logger: Logger
|
|
||||||
tagging_logger: Logger
|
|
||||||
codex_logger: Logger
|
|
||||||
object_logger: Logger
|
|
||||||
database_logger: Logger
|
|
||||||
musify_logger: Logger
|
|
||||||
youtube_logger: Logger
|
|
||||||
youtube_music_logger: Logger
|
|
||||||
metal_archives_logger: Logger
|
|
||||||
genius_logger: Logger
|
|
||||||
|
|
||||||
# paths
|
|
||||||
music_directory: Path
|
|
||||||
temp_directory: Path
|
|
||||||
log_file: Path
|
|
||||||
not_a_genre_regex: List[str]
|
|
||||||
ffmpeg_binary: Path
|
|
Loading…
Reference in New Issue
Block a user