Merge branch 'experimental' of github.com:HeIIow2/music-downloader into experimental

This commit is contained in:
Hellow 2023-04-18 14:57:53 +02:00
commit 3cf9b042da
5 changed files with 25 additions and 5 deletions

View File

@ -7,11 +7,12 @@ import gc
import musicbrainzngs import musicbrainzngs
from . import objects, pages from . import objects, pages
from .utils import exception, shared from .utils import exception, shared, path_manager
from .utils.config import config, read, write, PATHS_SECTION from .utils.config import config, read, write, PATHS_SECTION
from .utils.shared import MUSIC_DIR, MODIFY_GC, NOT_A_GENRE_REGEX, get_random_message from .utils.shared import MUSIC_DIR, MODIFY_GC, NOT_A_GENRE_REGEX, get_random_message
from .utils.string_processing import fit_to_file_system from .utils.string_processing import fit_to_file_system
if MODIFY_GC: if MODIFY_GC:
""" """
At the start I modify the garbage collector to run a bit fewer times. At the start I modify the garbage collector to run a bit fewer times.

View File

@ -59,6 +59,12 @@ if __name__ == "__main__":
help="Prints an overview over all music-kraken paths.", help="Prints an overview over all music-kraken paths.",
action="store_true" action="store_true"
) )
parser.add_argument(
"-r",
help="Resets the config file to the default one.",
action="store_true"
)
arguments = parser.parse_args() arguments = parser.parse_args()
@ -83,6 +89,12 @@ if __name__ == "__main__":
music_kraken.paths() music_kraken.paths()
exit() exit()
if arguments.r:
import os
if os.path.exists(music_kraken.shared.CONFIG_FILE):
os.remove(music_kraken.shared.CONFIG_FILE)
music_kraken.read()
# getting the genre # getting the genre
genre: str = arguments.genre genre: str = arguments.genre
if arguments.test: if arguments.test:

View File

@ -1,4 +1,5 @@
from typing import Union, Tuple, Dict, Iterable, List from typing import Union, Tuple, Dict, Iterable, List
from datetime import datetime
import logging import logging
import os import os
@ -21,6 +22,7 @@ class Config:
Description("IMPORTANT: If you modify this file, the changes for the actual setting, will be kept as is.\n" Description("IMPORTANT: If you modify this file, the changes for the actual setting, will be kept as is.\n"
"The changes you make to the comments, will be discarded, next time you run music-kraken. " "The changes you make to the comments, will be discarded, next time you run music-kraken. "
"Have fun!"), "Have fun!"),
Description(f"Latest reset: {datetime.now()}"),
Description("Those are all Settings for the audio codec.\n" Description("Those are all Settings for the audio codec.\n"
"If you, for some reason wanna fill your drive real quickly, I mean enjoy HIFI music,\n" "If you, for some reason wanna fill your drive real quickly, I mean enjoy HIFI music,\n"
"feel free to tinker with the Bitrate or smth. :)"), "feel free to tinker with the Bitrate or smth. :)"),
@ -105,7 +107,7 @@ class Config:
self.set_name_to_value(name, value) self.set_name_to_value(name, value)
def read_from_config_file(self, path: os.PathLike): def read_from_config_file(self, path: os.PathLike):
with open(path, "r") as conf_file: with open(path, "r", encoding=LOCATIONS.FILE_ENCODING) as conf_file:
for section in self._section_list: for section in self._section_list:
section.reset_list_attribute() section.reset_list_attribute()
@ -113,7 +115,7 @@ class Config:
self._parse_conf_line(line, i+1) self._parse_conf_line(line, i+1)
def write_to_config_file(self, path: os.PathLike): def write_to_config_file(self, path: os.PathLike):
with open(path, "w") as conf_file: with open(path, "w", encoding=LOCATIONS.FILE_ENCODING) as conf_file:
conf_file.write(self.config_string) conf_file.write(self.config_string)
def __iter__(self) -> Iterable[Attribute]: def __iter__(self) -> Iterable[Attribute]:

View File

@ -9,13 +9,15 @@ from .config_directory import get_config_directory
class Locations: class Locations:
def __init__(self, application_name: os.PathLike = "music-kraken"): def __init__(self, application_name: os.PathLike = "music-kraken"):
self.FILE_ENCODING: str = "utf-8"
self.TEMP_DIRECTORY = Path(tempfile.gettempdir(), application_name) self.TEMP_DIRECTORY = Path(tempfile.gettempdir(), application_name)
self.TEMP_DIRECTORY.mkdir(exist_ok=True) self.TEMP_DIRECTORY.mkdir(exist_ok=True, parents=True)
self.MUSIC_DIRECTORY = get_music_directory() self.MUSIC_DIRECTORY = get_music_directory()
self.CONFIG_DIRECTORY = get_config_directory(str(application_name)) self.CONFIG_DIRECTORY = get_config_directory(str(application_name))
self.CONFIG_DIRECTORY.mkdir(exist_ok=True) self.CONFIG_DIRECTORY.mkdir(exist_ok=True, parents=True)
self.CONFIG_FILE = Path(self.CONFIG_DIRECTORY, f"{application_name}.conf") self.CONFIG_FILE = Path(self.CONFIG_DIRECTORY, f"{application_name}.conf")
def get_log_file(self, file_name: os.PathLike) -> Path: def get_log_file(self, file_name: os.PathLike) -> Path:

View File

@ -6,6 +6,9 @@ from typing import List, Tuple
from .path_manager import LOCATIONS from .path_manager import LOCATIONS
from .config import LOGGING_SECTION, AUDIO_SECTION, CONNECTION_SECTION, MISC_SECTION, PATHS_SECTION from .config import LOGGING_SECTION, AUDIO_SECTION, CONNECTION_SECTION, MISC_SECTION, PATHS_SECTION
CONFIG_FILE = LOCATIONS.CONFIG_FILE
# modifies the garbage collector to speed up the program # modifies the garbage collector to speed up the program
# https://mkennedy.codes/posts/python-gc-settings-change-this-and-make-your-app-go-20pc-faster/ # 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/ # https://web.archive.org/web/20221124122222/https://mkennedy.codes/posts/python-gc-settings-change-this-and-make-your-app-go-20pc-faster/