Create preset.py
This commit is contained in:
parent
4a776afa76
commit
8aa7e89d8d
75
src/music_kraken/pages/preset.py
Normal file
75
src/music_kraken/pages/preset.py
Normal file
@ -0,0 +1,75 @@
|
||||
from collections import defaultdict
|
||||
from dataclasses import dataclass
|
||||
from enum import Enum
|
||||
from typing import List, Optional, Type, Union
|
||||
from urllib.parse import urlparse
|
||||
|
||||
import pycountry
|
||||
import requests
|
||||
from bs4 import BeautifulSoup
|
||||
|
||||
from .abstract import Page
|
||||
from ..objects import (
|
||||
Artist,
|
||||
Source,
|
||||
SourcePages,
|
||||
Song,
|
||||
Album,
|
||||
ID3Timestamp,
|
||||
FormattedText,
|
||||
Label,
|
||||
Options,
|
||||
AlbumType,
|
||||
AlbumStatus,
|
||||
Target
|
||||
)
|
||||
from ..utils import string_processing, shared
|
||||
from .support_classes.download_result import DownloadResult
|
||||
|
||||
|
||||
class YouTube(Page):
|
||||
API_SESSION: requests.Session = requests.Session()
|
||||
API_SESSION.headers = {
|
||||
"User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:106.0) Gecko/20100101 Firefox/106.0",
|
||||
"Connection": "keep-alive",
|
||||
"Referer": "https://www.youtube.com/"
|
||||
}
|
||||
API_SESSION.proxies = shared.proxies
|
||||
TIMEOUT = 7
|
||||
POST_TIMEOUT = 15
|
||||
TRIES = 5
|
||||
HOST = "https://www.youtube.com"
|
||||
|
||||
SOURCE_TYPE = SourcePages.YOUTUBE
|
||||
|
||||
LOGGER = shared.YOUTUBE_LOGGER
|
||||
|
||||
|
||||
@classmethod
|
||||
def search_by_query(cls, query: str) -> Options:
|
||||
return Options()
|
||||
|
||||
@classmethod
|
||||
def plaintext_search(cls, query: str) -> Options:
|
||||
search_results = []
|
||||
|
||||
return Options(search_results)
|
||||
|
||||
@classmethod
|
||||
def _fetch_artist_from_source(cls, source: Source, stop_at_level: int = 1) -> Artist:
|
||||
artist: Artist = Artist(source_list=[source])
|
||||
|
||||
return artist
|
||||
|
||||
@classmethod
|
||||
def _fetch_album_from_source(cls, source: Source, stop_at_level: int = 1) -> Album:
|
||||
album: Album = Album(source_list=[source])
|
||||
return album
|
||||
|
||||
@classmethod
|
||||
def _get_type_of_url(cls, url: str) -> Optional[Union[Type[Song], Type[Album], Type[Artist], Type[Label]]]:
|
||||
return None
|
||||
|
||||
@classmethod
|
||||
def _download_song_to_targets(cls, source: Source, target: Target, desc: str = None) -> DownloadResult:
|
||||
return DownloadResult()
|
Loading…
Reference in New Issue
Block a user