# Standard library imports import datetime as dt import logging import os from typing import List, Optional # PyQt imports # Third party imports # App imports class Config(object): AUDACITY_TIMEOUT_TENTHS = 100 AUDIO_SEGMENT_CHUNK_SIZE = 10 BITRATE_LOW_THRESHOLD = 192 BITRATE_OK_THRESHOLD = 300 COLOUR_BITRATE_LOW = "#ffcdd2" COLOUR_BITRATE_MEDIUM = "#ffeb6f" COLOUR_BITRATE_OK = "#dcedc8" COLOUR_CURRENT_PLAYLIST = "#7eca8f" COLOUR_CURRENT_TAB = "#248f24" COLOUR_ENDING_TIMER = "#dc3545" COLOUR_EVEN_PLAYLIST = "#d9d9d9" COLOUR_LABEL_TEXT = "#000000" COLOUR_LONG_START = "#dc3545" COLOUR_NEXT_PLAYLIST = "#ffc107" COLOUR_NEXT_TAB = "#b38600" COLOUR_NORMAL_TAB = "#000000" COLOUR_NOTES_PLAYLIST = "#b8daff" COLOUR_ODD_PLAYLIST = "#f2f2f2" COLOUR_UNREADABLE = "#dc3545" COLOUR_WARNING_TIMER = "#ffc107" DBFS_SILENCE = -50 DEBUG_FUNCTIONS: List[Optional[str]] = [] DEBUG_MODULES: List[Optional[str]] = [] DEFAULT_COLUMN_WIDTH = 200 DISPLAY_SQL = False ENGINE_OPTIONS = dict(pool_pre_ping=True) EPOCH = dt.datetime(1970, 1, 1) ERRORS_FROM = ["noreply@midnighthax.com"] ERRORS_TO = ["kae@midnighthax.com"] EXTERNAL_BROWSER_PATH = "/usr/bin/vivaldi" FADE_CURVE_BACKGROUND = "lightyellow" FADE_CURVE_FOREGROUND = "blue" FADE_CURVE_MS_BEFORE_FADE = 5000 FADEOUT_DB = -10 FADEOUT_SECONDS = 5 FADEOUT_STEPS_PER_SECOND = 5 HEADER_ARTIST = "Artist" HEADER_BITRATE = "bps" HEADER_DURATION = "Length" HEADER_END_TIME = "End" HEADER_INTRO = "Intro" HEADER_LAST_PLAYED = "Last played" HEADER_NOTE = "Notes" HEADER_START_GAP = "Gap" HEADER_START_TIME = "Start" HEADER_TITLE = "Title" HIDE_AFTER_PLAYING_OFFSET = 5000 INFO_TAB_TITLE_LENGTH = 15 INTRO_SECONDS_FORMAT = ".1f" INTRO_SECONDS_WARNING_MS = 3000 LAST_PLAYED_TODAY_STRING = "Today" LAST_PLAYED_TOOLTIP_DATE_FORMAT = "%a, %d %b %Y" LOG_LEVEL_STDERR = logging.INFO LOG_LEVEL_SYSLOG = logging.DEBUG LOG_NAME = "musicmuster" MAIL_PASSWORD = os.environ.get("MAIL_PASSWORD") MAIL_PORT = int(os.environ.get("MAIL_PORT") or 25) MAIL_SERVER = os.environ.get("MAIL_SERVER") or "woodlands.midnighthax.com" MAIL_USERNAME = os.environ.get("MAIL_USERNAME") MAIL_USE_TLS = os.environ.get("MAIL_USE_TLS") is not None MAX_IMPORT_MATCHES = 5 MAX_INFO_TABS = 5 MAX_MISSING_FILES_TO_REPORT = 10 MILLISECOND_SIGFIGS = 0 MINIMUM_ROW_HEIGHT = 30 NOTE_TIME_FORMAT = "%H:%M" OBS_HOST = "localhost" OBS_PASSWORD = "auster" OBS_PORT = 4455 PLAY_NEXT_GUARD_MS = 10000 PLAY_SETTLE = 500000 PREVIEW_ADVANCE_MS = 5000 PREVIEW_BACK_MS = 5000 PREVIEW_END_BUFFER_MS = 1000 REPLACE_FILES_DEFAULT_SOURCE = "/home/kae/music/Singles/tmp" RETURN_KEY_DEBOUNCE_MS = 1000 ROOT = os.environ.get("ROOT") or "/home/kae/music" ROWS_FROM_ZERO = True SCROLL_TOP_MARGIN = 3 SONGFACTS_ON_NEXT = False START_GAP_WARNING_THRESHOLD = 300 TEXT_NO_TRACK_NO_NOTE = "[Section header]" TOD_TIME_FORMAT = "%H:%M:%S" TRACK_TIME_FORMAT = "%H:%M:%S" USE_INTERNAL_BROWSER = False VLC_MAIN_PLAYER_NAME = "MusicMuster Main Player" VLC_PREVIEW_PLAYER_NAME = "MusicMuster Preview Player" VLC_VOLUME_DEFAULT = 75 VLC_VOLUME_DROP3db = 65 WARNING_MS_BEFORE_FADE = 5500 WARNING_MS_BEFORE_SILENCE = 5500 WEB_ZOOM_FACTOR = 1.2 WIKIPEDIA_ON_NEXT = False # These rely on earlier definitions IMPORT_DESTINATION = os.path.join(ROOT, "Singles") REPLACE_FILES_DEFAULT_DESTINATION = os.path.dirname(REPLACE_FILES_DEFAULT_SOURCE)