Files
swingmusic-extended/app/db/sqlite/settings.py
T
cwilvx 4a9f804e70 combine userdata and swing db into one
+ 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 😅
2024-06-30 15:06:33 +03:00

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])