mirror of
https://github.com/Dvorinka/swingmusic-extended.git
synced 2026-06-03 20:13:02 +00:00
4a9f804e70
+ port populate to new db interface
+ add genrehashes and hash info to tracks
+ properly structure new db table files
+ move helpers to dedicated utils file
+ move settings from db to config file
+ move artists, albums, auth and favorites endpoint to new db interface
+ use folder store to index filepaths
+ paginate favorite pages
+ 56 moretiny changes 😅
152 lines
4.2 KiB
Python
152 lines
4.2 KiB
Python
from pprint import pprint
|
|
from typing import Any
|
|
|
|
from app.config import UserConfig
|
|
from app.db.sqlite.utils import SQLiteManager
|
|
from app.utils.wintools import win_replace_slash
|
|
|
|
|
|
# class SettingsSQLMethods:
|
|
# """
|
|
# Methods for interacting with the settings table.
|
|
# """
|
|
|
|
# @staticmethod
|
|
# def get_all_settings():
|
|
# """
|
|
# Gets all settings from the database.
|
|
# """
|
|
|
|
# sql = "SELECT * FROM settings WHERE id = 1"
|
|
|
|
# with SQLiteManager(userdata_db=True) as cur:
|
|
# cur.execute(sql)
|
|
# settings = cur.fetchone()
|
|
# cur.close()
|
|
|
|
# # if root_dirs not set
|
|
# if settings is None:
|
|
# return []
|
|
|
|
# # omit id, root_dirs, and exclude_dirs
|
|
# return settings[3:]
|
|
|
|
# @staticmethod
|
|
# def get_root_dirs() -> list[str]:
|
|
# """
|
|
# Gets custom root directories from the database.
|
|
# """
|
|
|
|
# sql = "SELECT root_dirs FROM settings"
|
|
|
|
# with SQLiteManager(userdata_db=True) as cur:
|
|
# cur.execute(sql)
|
|
# dirs = cur.fetchall()
|
|
# cur.close()
|
|
|
|
# dirs = [_dir[0] for _dir in dirs]
|
|
# return [win_replace_slash(d) for d in dirs]
|
|
|
|
# @staticmethod
|
|
# def add_root_dirs(dirs: list[str]):
|
|
# """
|
|
# Add custom root directories to the database.
|
|
# """
|
|
|
|
# sql = "INSERT INTO settings (root_dirs) VALUES (?)"
|
|
# existing_dirs = SettingsSQLMethods.get_root_dirs()
|
|
|
|
# dirs = [_dir for _dir in dirs if _dir not in existing_dirs]
|
|
|
|
# if len(dirs) == 0:
|
|
# return
|
|
|
|
# with SQLiteManager(userdata_db=True) as cur:
|
|
# for _dir in dirs:
|
|
# cur.execute(sql, (_dir,))
|
|
|
|
# @staticmethod
|
|
# def remove_root_dirs(dirs: list[str]):
|
|
# """
|
|
# Remove custom root directories from the database.
|
|
# """
|
|
|
|
# sql = "DELETE FROM settings WHERE root_dirs = ?"
|
|
|
|
# with SQLiteManager(userdata_db=True) as cur:
|
|
# for _dir in dirs:
|
|
# cur.execute(sql, (_dir,))
|
|
|
|
# # Not currently used anywhere, to be used later
|
|
# @staticmethod
|
|
# def add_excluded_dirs(dirs: list[str]):
|
|
# """
|
|
# Add custom exclude directories to the database.
|
|
# """
|
|
|
|
# sql = "INSERT INTO settings (exclude_dirs) VALUES (?)"
|
|
|
|
# with SQLiteManager(userdata_db=True) as cur:
|
|
# cur.executemany(sql, dirs)
|
|
|
|
# @staticmethod
|
|
# def remove_excluded_dirs(dirs: list[str]):
|
|
# """
|
|
# Remove custom exclude directories from the database.
|
|
# """
|
|
|
|
# sql = "DELETE FROM settings WHERE exclude_dirs = ?"
|
|
|
|
# with SQLiteManager(userdata_db=True) as cur:
|
|
# cur.executemany(sql, dirs)
|
|
|
|
# @staticmethod
|
|
# def get_excluded_dirs() -> list[str]:
|
|
# """
|
|
# Gets custom exclude directories from the database.
|
|
# """
|
|
|
|
# sql = "SELECT exclude_dirs FROM settings"
|
|
|
|
# with SQLiteManager(userdata_db=True) as cur:
|
|
# cur.execute(sql)
|
|
# dirs = cur.fetchall()
|
|
# return [_dir[0] for _dir in dirs]
|
|
|
|
# @staticmethod
|
|
# def get_settings() -> dict[str, Any]:
|
|
# pass
|
|
|
|
# @staticmethod
|
|
# def set_setting(key: str, value: Any):
|
|
# sql = f"UPDATE settings SET {key} = :value WHERE id = 1"
|
|
|
|
# if type(value) == bool:
|
|
# value = str(int(value))
|
|
|
|
# with SQLiteManager(userdata_db=True) as cur:
|
|
# cur.execute(sql, {"value": value})
|
|
|
|
|
|
# def load_settings():
|
|
# # s = SettingsSQLMethods.get_all_settings()
|
|
# config = UserConfig()
|
|
|
|
# try:
|
|
# db_separators: str = s[0]
|
|
# db_separators = db_separators.replace(" ", "")
|
|
# separators = db_separators.split(",")
|
|
# separators = set(separators)
|
|
# except IndexError:
|
|
# separators = {";", "/"}
|
|
|
|
# SessionVars.ARTIST_SEPARATORS = config.artistSeparators
|
|
|
|
# # boolean settings
|
|
# SessionVars.EXTRACT_FEAT = bool(s[1])
|
|
# SessionVars.REMOVE_PROD = bool(s[2])
|
|
# SessionVars.CLEAN_ALBUM_TITLE = bool(s[3])
|
|
# SessionVars.REMOVE_REMASTER_FROM_TRACK = bool(s[4])
|
|
# SessionVars.MERGE_ALBUM_VERSIONS = bool(s[5])
|
|
# SessionVars.SHOW_ALBUMS_AS_SINGLES = bool(s[6])
|