mirror of
https://github.com/tcsenpai/swingmusic.git
synced 2025-06-06 19:25:34 +00:00

+ move code to handle args and print startup info to other files + update app version number
125 lines
2.9 KiB
Python
125 lines
2.9 KiB
Python
"""
|
|
Contains default configs
|
|
"""
|
|
import os
|
|
|
|
|
|
# ------- HELPER METHODS --------
|
|
def get_xdg_config_dir():
|
|
"""
|
|
Returns the XDG_CONFIG_HOME environment variable if it exists, otherwise
|
|
returns the default config directory. If none of those exist, returns the
|
|
user's home directory.
|
|
"""
|
|
xdg_config_home = os.environ.get("XDG_CONFIG_HOME")
|
|
|
|
if xdg_config_home:
|
|
return xdg_config_home
|
|
|
|
try:
|
|
alt_dir = os.path.join(os.environ.get("HOME"), ".config")
|
|
|
|
if os.path.exists(alt_dir):
|
|
return alt_dir
|
|
except TypeError:
|
|
return os.path.expanduser("~")
|
|
|
|
|
|
# ------- HELPER METHODS --------
|
|
|
|
|
|
APP_VERSION = "v1.1.0"
|
|
|
|
# paths
|
|
XDG_CONFIG_DIR = get_xdg_config_dir()
|
|
USER_HOME_DIR = os.path.expanduser("~")
|
|
|
|
CONFIG_FOLDER = "swingmusic" if XDG_CONFIG_DIR != USER_HOME_DIR else ".swingmusic"
|
|
|
|
APP_DIR = os.path.join(XDG_CONFIG_DIR, CONFIG_FOLDER)
|
|
IMG_PATH = os.path.join(APP_DIR, "images")
|
|
|
|
ARTIST_IMG_PATH = os.path.join(IMG_PATH, "artists")
|
|
ARTIST_IMG_SM_PATH = os.path.join(ARTIST_IMG_PATH, "small")
|
|
ARTIST_IMG_LG_PATH = os.path.join(ARTIST_IMG_PATH, "large")
|
|
|
|
THUMBS_PATH = os.path.join(IMG_PATH, "thumbnails")
|
|
SM_THUMB_PATH = os.path.join(THUMBS_PATH, "small")
|
|
LG_THUMBS_PATH = os.path.join(THUMBS_PATH, "large")
|
|
MUSIC_DIR = os.path.join(USER_HOME_DIR, "Music")
|
|
|
|
# TEST_DIR = "/home/cwilvx/Downloads/Telegram Desktop"
|
|
# TEST_DIR = "/mnt/dfc48e0f-103b-426e-9bf9-f25d3743bc96/Music/Chill/Wolftyla Radio"
|
|
# HOME_DIR = TEST_DIR
|
|
|
|
# URLS
|
|
IMG_BASE_URI = "http://127.0.0.1:8900/images/"
|
|
IMG_ARTIST_URI = IMG_BASE_URI + "artists/"
|
|
IMG_THUMB_URI = IMG_BASE_URI + "thumbnails/"
|
|
IMG_PLAYLIST_URI = IMG_BASE_URI + "playlists/"
|
|
|
|
# defaults
|
|
DEFAULT_ARTIST_IMG = IMG_ARTIST_URI + "0.webp"
|
|
THUMB_SIZE = 400
|
|
SM_THUMB_SIZE = 64
|
|
SM_ARTIST_IMG_SIZE = 64
|
|
"""
|
|
The size of extracted images in pixels
|
|
"""
|
|
|
|
FILES = ["flac", "mp3", "wav", "m4a", "ogg", "wma", "opus", "alac", "aiff"]
|
|
SUPPORTED_FILES = tuple(f".{file}" for file in FILES)
|
|
|
|
# ===== SQLite =====
|
|
APP_DB_NAME = "swing.db"
|
|
USER_DATA_DB_NAME = "userdata.db"
|
|
APP_DB_PATH = os.path.join(APP_DIR, APP_DB_NAME)
|
|
USERDATA_DB_PATH = os.path.join(APP_DIR, USER_DATA_DB_NAME)
|
|
|
|
|
|
class FLASKVARS:
|
|
FLASK_PORT = 1970
|
|
FLASK_HOST = "localhost"
|
|
|
|
|
|
class ALLARGS:
|
|
"""
|
|
Enumerates the possible app arguments.
|
|
"""
|
|
|
|
build = "--build"
|
|
port = "--port"
|
|
host = "--host"
|
|
show_feat = ["--show-feat", "-sf"]
|
|
show_prod = ["--show-prod", "-sp"]
|
|
help = ["--help", "-h"]
|
|
version = ["--version", "-v"]
|
|
|
|
|
|
EXTRACT_FEAT = True
|
|
"""
|
|
Whether to extract the featured artists from the song title.
|
|
"""
|
|
|
|
REMOVE_PROD = True
|
|
"""
|
|
Whether to remove the producers from the song title.
|
|
"""
|
|
|
|
|
|
class TCOLOR:
|
|
"""
|
|
Terminal colors
|
|
"""
|
|
|
|
HEADER = "\033[95m"
|
|
OKBLUE = "\033[94m"
|
|
OKCYAN = "\033[96m"
|
|
OKGREEN = "\033[92m"
|
|
YELLOW = "\033[93m"
|
|
FAIL = "\033[91m"
|
|
ENDC = "\033[0m"
|
|
BOLD = "\033[1m"
|
|
UNDERLINE = "\033[4m"
|
|
# credits: https://stackoverflow.com/a/287944
|