finished audio config
This commit is contained in:
parent
d8c0cc288f
commit
b07ea4aff0
@ -47,8 +47,8 @@ class AudioSection(Section):
|
|||||||
|
|
||||||
self.AUDIO_FORMAT = AudioFormatAttribute(name="audio_format", value="mp3", description=f"""
|
self.AUDIO_FORMAT = AudioFormatAttribute(name="audio_format", value="mp3", description=f"""
|
||||||
Music Kraken will stream the audio into this format.
|
Music Kraken will stream the audio into this format.
|
||||||
You can use Audio formats which support ID3.2 and ID3.1,\n
|
You can use Audio formats which support ID3.2 and ID3.1,
|
||||||
but you will have cleaner Metadata using ID3.2.\n
|
but you will have cleaner Metadata using ID3.2.
|
||||||
ID3.2: {', '.join(_sorted_id3_2_formats)}
|
ID3.2: {', '.join(_sorted_id3_2_formats)}
|
||||||
ID3.1: {', '.join(_sorted_id3_1_formats)}
|
ID3.1: {', '.join(_sorted_id3_1_formats)}
|
||||||
""".strip())
|
""".strip())
|
||||||
@ -65,9 +65,62 @@ ID3.1: {', '.join(_sorted_id3_1_formats)}
|
|||||||
description="The filename of the audio file."
|
description="The filename of the audio file."
|
||||||
)
|
)
|
||||||
|
|
||||||
|
self.DEFAULT_GENRE = StringAttribute(
|
||||||
|
name="default_genre",
|
||||||
|
value="Various Genre",
|
||||||
|
description="The default value for the genre field."
|
||||||
|
)
|
||||||
|
|
||||||
|
self.DEFAULT_LABEL = StringAttribute(
|
||||||
|
name="default_label",
|
||||||
|
value="Various Labels",
|
||||||
|
description="The Label refers to a lable that signs artists."
|
||||||
|
)
|
||||||
|
|
||||||
|
self.DEFAULT_ARTIST = StringAttribute(
|
||||||
|
name="default_artist",
|
||||||
|
value="Various Artists",
|
||||||
|
description="You know Various Artist."
|
||||||
|
)
|
||||||
|
|
||||||
|
self.DEFAULT_ALBUM = StringAttribute(
|
||||||
|
name="default_album",
|
||||||
|
value="Various Album",
|
||||||
|
description="This value will hopefully not be used."
|
||||||
|
)
|
||||||
|
|
||||||
|
self.DEFAULT_SONG = StringAttribute(
|
||||||
|
name="default_song",
|
||||||
|
value="Various Song",
|
||||||
|
description="If it has to fall back to this value, something did go really wrong."
|
||||||
|
)
|
||||||
|
|
||||||
|
self.DEFAULT_ALBUM_TYPE = StringAttribute(
|
||||||
|
name="default_album_type",
|
||||||
|
value="Other",
|
||||||
|
description="Weirdly enough I barely see this used in file systems."
|
||||||
|
)
|
||||||
|
|
||||||
self.attribute_list = [
|
self.attribute_list = [
|
||||||
|
EmptyLine(),
|
||||||
self.BITRATE,
|
self.BITRATE,
|
||||||
self.AUDIO_FORMAT
|
self.AUDIO_FORMAT,
|
||||||
|
Description("""
|
||||||
|
There are multiple fields, you can use for the path and file name:
|
||||||
|
- genre
|
||||||
|
- label
|
||||||
|
- artist
|
||||||
|
- album
|
||||||
|
- song
|
||||||
|
- album_type
|
||||||
|
""".strip()),
|
||||||
|
self.DOWNLOAD_PATH,
|
||||||
|
self.DOWNLOAD_FILE,
|
||||||
|
self.DEFAULT_ALBUM_TYPE,
|
||||||
|
self.DEFAULT_ARTIST,
|
||||||
|
self.DEFAULT_GENRE,
|
||||||
|
self.DEFAULT_LABEL,
|
||||||
|
self.DEFAULT_SONG
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from typing import Optional, List, Union
|
from typing import Optional, List, Union
|
||||||
|
|
||||||
COMMENT_PREFIX = "// "
|
COMMENT_PREFIX = "# "
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
@ -31,7 +31,7 @@ class SingleAttribute(Attribute):
|
|||||||
class StringAttribute(SingleAttribute):
|
class StringAttribute(SingleAttribute):
|
||||||
@property
|
@property
|
||||||
def object_from_value(self) -> str:
|
def object_from_value(self) -> str:
|
||||||
return self.value
|
return self.value.strip()
|
||||||
|
|
||||||
|
|
||||||
class IntAttribute(SingleAttribute):
|
class IntAttribute(SingleAttribute):
|
||||||
@ -42,6 +42,7 @@ class IntAttribute(SingleAttribute):
|
|||||||
|
|
||||||
return int(self.value)
|
return int(self.value)
|
||||||
|
|
||||||
|
|
||||||
class FloatAttribute(SingleAttribute):
|
class FloatAttribute(SingleAttribute):
|
||||||
@property
|
@property
|
||||||
def object_from_value(self) -> float:
|
def object_from_value(self) -> float:
|
||||||
@ -72,6 +73,9 @@ class EmptyLine(Description):
|
|||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.description = "\n"
|
self.description = "\n"
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.description
|
||||||
|
|
||||||
|
|
||||||
class Section:
|
class Section:
|
||||||
"""
|
"""
|
||||||
|
@ -11,6 +11,9 @@ from .config import LOGGING_SECTION, AUDIO_SECTION
|
|||||||
# https://web.archive.org/web/20221124122222/https://mkennedy.codes/posts/python-gc-settings-change-this-and-make-your-app-go-20pc-faster/
|
# https://web.archive.org/web/20221124122222/https://mkennedy.codes/posts/python-gc-settings-change-this-and-make-your-app-go-20pc-faster/
|
||||||
MODIFY_GC: bool = True
|
MODIFY_GC: bool = True
|
||||||
|
|
||||||
|
ID_BITS: int = 64
|
||||||
|
ID_RANGE: Tuple[int, int] = (0, int(2**ID_BITS))
|
||||||
|
|
||||||
"""
|
"""
|
||||||
I will now and then use those messages in the programm.
|
I will now and then use those messages in the programm.
|
||||||
But I won't overuse them dw.
|
But I won't overuse them dw.
|
||||||
@ -35,13 +38,14 @@ def get_random_message() -> str:
|
|||||||
return random.choice(HAPPY_MESSAGES)
|
return random.choice(HAPPY_MESSAGES)
|
||||||
|
|
||||||
|
|
||||||
ID_BITS: int = 64
|
|
||||||
ID_RANGE: Tuple[int, int] = (0, int(2**ID_BITS))
|
|
||||||
|
|
||||||
TEMP_DIR = LOCATIONS.TEMP_DIRECTORY
|
TEMP_DIR = LOCATIONS.TEMP_DIRECTORY
|
||||||
LOG_PATH = LOCATIONS.get_log_file("download_logs.log")
|
LOG_PATH = LOCATIONS.get_log_file("download_logs.log")
|
||||||
MUSIC_DIR: Path = LOCATIONS.MUSIC_DIRECTORY
|
MUSIC_DIR: Path = LOCATIONS.MUSIC_DIRECTORY
|
||||||
|
|
||||||
|
NOT_A_GENRE_REGEX: Tuple[str] = (
|
||||||
|
r'^\.', # is hidden/starts with a "."
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
# configure logger default
|
# configure logger default
|
||||||
logging.basicConfig(
|
logging.basicConfig(
|
||||||
@ -69,9 +73,19 @@ CODEX_LOGGER = LOGGING_SECTION.CODEX_LOGGER.object_from_value
|
|||||||
BITRATE = AUDIO_SECTION.BITRATE.object_from_value
|
BITRATE = AUDIO_SECTION.BITRATE.object_from_value
|
||||||
AUDIO_FORMAT = AUDIO_SECTION.AUDIO_FORMAT.object_from_value
|
AUDIO_FORMAT = AUDIO_SECTION.AUDIO_FORMAT.object_from_value
|
||||||
|
|
||||||
NOT_A_GENRE_REGEX: Tuple[str] = (
|
|
||||||
r'^\.', # is hidden/starts with a "."
|
DOWNLOAD_PATH = AUDIO_SECTION.DOWNLOAD_PATH.object_from_value
|
||||||
)
|
DOWNLOAD_FILE = AUDIO_SECTION.DOWNLOAD_FILE.object_from_value
|
||||||
|
DEFAULT_VALUES = {
|
||||||
|
"genre": AUDIO_SECTION.DEFAULT_GENRE.object_from_value,
|
||||||
|
"label": AUDIO_SECTION.DEFAULT_LABEL.object_from_value,
|
||||||
|
"artist": AUDIO_SECTION.DEFAULT_ARTIST.object_from_value,
|
||||||
|
"album": AUDIO_SECTION.DEFAULT_ALBUM.object_from_value,
|
||||||
|
"song": AUDIO_SECTION.DEFAULT_SONG.object_from_value,
|
||||||
|
"album_type": AUDIO_SECTION.DEFAULT_ALBUM_TYPE.object_from_value,
|
||||||
|
"audio_format": AUDIO_FORMAT
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
TOR: bool = False
|
TOR: bool = False
|
||||||
proxies = {
|
proxies = {
|
||||||
@ -79,29 +93,6 @@ proxies = {
|
|||||||
'https': 'socks5h://127.0.0.1:9150'
|
'https': 'socks5h://127.0.0.1:9150'
|
||||||
} if TOR else {}
|
} if TOR else {}
|
||||||
|
|
||||||
|
|
||||||
"""
|
|
||||||
available variables:
|
|
||||||
- genre
|
|
||||||
- label
|
|
||||||
- artist
|
|
||||||
- album
|
|
||||||
- song
|
|
||||||
- album_type
|
|
||||||
"""
|
|
||||||
DOWNLOAD_PATH = AUDIO_SECTION.DOWNLOAD_PATH.object_from_value
|
|
||||||
DOWNLOAD_FILE = AUDIO_SECTION.DOWNLOAD_FILE.object_from_value
|
|
||||||
DEFAULT_VALUES = {
|
|
||||||
"genre": "Various Genre",
|
|
||||||
"label": "Various Labels",
|
|
||||||
"artist": "Various Artists",
|
|
||||||
"album": "Various Album",
|
|
||||||
"song": "Various Song",
|
|
||||||
"album_type": "Other",
|
|
||||||
"audio_format": AUDIO_FORMAT
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
# size of the chunks that are streamed
|
# size of the chunks that are streamed
|
||||||
CHUNK_SIZE = 1024
|
CHUNK_SIZE = 1024
|
||||||
# this is a percentage describing the percentage of failed downloads,
|
# this is a percentage describing the percentage of failed downloads,
|
||||||
|
Loading…
Reference in New Issue
Block a user