mirror of
https://github.com/tcsenpai/swingmusic.git
synced 2025-06-06 03:05:35 +00:00
write LASTFM_API_KEY to config file
+ remove alive bar
This commit is contained in:
parent
4271a6f4a0
commit
da88bbd9cc
@ -13,10 +13,8 @@ from app.print_help import HELP_MESSAGE
|
||||
from app.utils.wintools import is_windows
|
||||
from app.utils.xdg_utils import get_xdg_config_dir
|
||||
|
||||
# from app.api.imgserver import set_app_dir
|
||||
|
||||
config = ConfigParser()
|
||||
config.read("pyinstaller.config.ini")
|
||||
config.read("runtime.config.ini")
|
||||
|
||||
ALLARGS = settings.ALLARGS
|
||||
ARGS = sys.argv[1:]
|
||||
@ -40,9 +38,20 @@ class HandleArgs:
|
||||
"""
|
||||
Runs Pyinstaller.
|
||||
"""
|
||||
# get last.fm api key from env
|
||||
last_fm_key = os.environ.get("LASTFM_API_KEY")
|
||||
|
||||
# if the key is not in env, exit
|
||||
if not last_fm_key:
|
||||
log.error("ERROR: LASTFM_API_KEY not set in environment")
|
||||
sys.exit(0)
|
||||
|
||||
if ALLARGS.build in ARGS:
|
||||
with open("pyinstaller.config.ini", "w", encoding="utf-8") as file:
|
||||
with open("runtime.config.ini", "w", encoding="utf-8") as file:
|
||||
config["DEFAULT"]["BUILD"] = "True"
|
||||
|
||||
# copy the api key to the config file
|
||||
config["DEFAULT"]["LASTFM_API_KEY"] = last_fm_key
|
||||
config.write(file)
|
||||
|
||||
_s = ";" if is_windows() else ":"
|
||||
@ -56,13 +65,15 @@ class HandleArgs:
|
||||
"--clean",
|
||||
f"--add-data=assets{_s}assets",
|
||||
f"--add-data=client{_s}client",
|
||||
f"--add-data=pyinstaller.config.ini{_s}.",
|
||||
f"--add-data=runtime.config.ini{_s}.",
|
||||
"-y",
|
||||
]
|
||||
)
|
||||
|
||||
with open("pyinstaller.config.ini", "w", encoding="utf-8") as file:
|
||||
# revert build to False and remove the api key for dev mode
|
||||
with open("runtime.config.ini", "w", encoding="utf-8") as file:
|
||||
config["DEFAULT"]["BUILD"] = "False"
|
||||
config["DEFAULT"]["LASTFM_API_KEY"] = ""
|
||||
config.write(file)
|
||||
|
||||
sys.exit(0)
|
||||
|
@ -5,7 +5,6 @@ Contains methods relating to albums.
|
||||
from dataclasses import asdict
|
||||
from typing import Any
|
||||
|
||||
from alive_progress import alive_bar
|
||||
|
||||
from app.logger import log
|
||||
from app.models.track import Track
|
||||
@ -23,20 +22,19 @@ def validate_albums():
|
||||
album_hashes = {t.albumhash for t in TrackStore.tracks}
|
||||
albums = AlbumStore.albums
|
||||
|
||||
with alive_bar(len(albums)) as bar:
|
||||
log.info("Validating albums")
|
||||
for album in albums:
|
||||
if album.albumhash not in album_hashes:
|
||||
AlbumStore.remove_album(album)
|
||||
bar()
|
||||
for album in albums:
|
||||
if album.albumhash not in album_hashes:
|
||||
AlbumStore.remove_album(album)
|
||||
|
||||
|
||||
def remove_duplicate_on_merge_versions(tracks: list[Track]) -> list[Track]:
|
||||
"""
|
||||
Removes duplicate tracks when merging versions of the same album.
|
||||
"""
|
||||
|
||||
|
||||
pass
|
||||
|
||||
|
||||
def sort_by_track_no(tracks: list[Track]) -> list[dict[str, Any]]:
|
||||
tracks = [asdict(t) for t in tracks]
|
||||
|
||||
|
@ -5,19 +5,21 @@ create the config directory and copy the assets to the app directory.
|
||||
|
||||
import os
|
||||
import shutil
|
||||
import sys
|
||||
from configparser import ConfigParser
|
||||
|
||||
from app import settings
|
||||
from app.utils.filesystem import get_home_res_path
|
||||
|
||||
config = ConfigParser()
|
||||
config_path = get_home_res_path("pyinstaller.config.ini")
|
||||
config_path = get_home_res_path("runtime.config.ini")
|
||||
config.read(config_path)
|
||||
|
||||
try:
|
||||
IS_BUILD = config["DEFAULT"]["BUILD"] == "True"
|
||||
settings.Keys.LASTFM_API = config["DEFAULT"]["LASTFM_API_KEY"]
|
||||
except KeyError:
|
||||
# If the key doesn't exist, it means that the app is being executed in dev mode.
|
||||
# If the key doesn't exist, the app is in dev mode.
|
||||
IS_BUILD = False
|
||||
|
||||
|
||||
|
@ -1,12 +1,14 @@
|
||||
import platform
|
||||
|
||||
IS_WIN = platform.system() == "Windows"
|
||||
|
||||
|
||||
# TODO: Check is_windows on app start in settings.py
|
||||
def is_windows():
|
||||
"""
|
||||
Returns True if the OS is Windows.
|
||||
"""
|
||||
return platform.system() == "Windows"
|
||||
return IS_WIN
|
||||
|
||||
|
||||
def win_replace_slash(path: str):
|
||||
|
11
manage.py
11
manage.py
@ -9,14 +9,13 @@ from flask import request
|
||||
|
||||
from app.api import create_api
|
||||
from app.arg_handler import HandleArgs
|
||||
from app.periodic_scan import run_periodic_scans
|
||||
from app.lib.watchdogg import Watcher as WatchDog
|
||||
from app.periodic_scan import run_periodic_scans
|
||||
from app.settings import FLASKVARS
|
||||
from app.setup import run_setup
|
||||
from app.start_info_logger import log_startup_info
|
||||
from app.utils.filesystem import get_home_res_path
|
||||
from app.utils.threading import background
|
||||
from alive_progress import config_handler
|
||||
|
||||
mimetypes.add_type("text/css", ".css")
|
||||
mimetypes.add_type("text/javascript", ".js")
|
||||
@ -77,15 +76,7 @@ def start_watchdog():
|
||||
WatchDog().run()
|
||||
|
||||
|
||||
def configure_alive_bar():
|
||||
"""
|
||||
Sets the default alive bar settings.
|
||||
"""
|
||||
config_handler.set_global(spinner="classic", bar="classic2", enrich_print=False)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
configure_alive_bar()
|
||||
HandleArgs()
|
||||
log_startup_info()
|
||||
bg_run_setup()
|
||||
|
41
poetry.lock
generated
41
poetry.lock
generated
@ -1,31 +1,5 @@
|
||||
# This file is automatically @generated by Poetry 1.5.1 and should not be changed by hand.
|
||||
|
||||
[[package]]
|
||||
name = "about-time"
|
||||
version = "4.2.1"
|
||||
description = "Easily measure timing and throughput of code blocks, with beautiful human friendly representations."
|
||||
optional = false
|
||||
python-versions = ">=3.7, <4"
|
||||
files = [
|
||||
{file = "about-time-4.2.1.tar.gz", hash = "sha256:6a538862d33ce67d997429d14998310e1dbfda6cb7d9bbfbf799c4709847fece"},
|
||||
{file = "about_time-4.2.1-py3-none-any.whl", hash = "sha256:8bbf4c75fe13cbd3d72f49a03b02c5c7dca32169b6d49117c257e7eb3eaee341"},
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "alive-progress"
|
||||
version = "3.1.4"
|
||||
description = "A new kind of Progress Bar, with real-time throughput, ETA, and very cool animations!"
|
||||
optional = false
|
||||
python-versions = ">=3.7, <4"
|
||||
files = [
|
||||
{file = "alive-progress-3.1.4.tar.gz", hash = "sha256:74a95d8d0d42bc99d3a3725dbd06ebb852245f1b64e301a7c375b92b22663f7b"},
|
||||
{file = "alive_progress-3.1.4-py3-none-any.whl", hash = "sha256:c80ad87ce9c1054b01135a87fae69ecebbfc2107497ae87cbe6aec7e534903db"},
|
||||
]
|
||||
|
||||
[package.dependencies]
|
||||
about-time = "4.2.1"
|
||||
grapheme = "0.6.0"
|
||||
|
||||
[[package]]
|
||||
name = "altgraph"
|
||||
version = "0.17.3"
|
||||
@ -424,19 +398,6 @@ files = [
|
||||
Flask = ">=0.9"
|
||||
Six = "*"
|
||||
|
||||
[[package]]
|
||||
name = "grapheme"
|
||||
version = "0.6.0"
|
||||
description = "Unicode grapheme helpers"
|
||||
optional = false
|
||||
python-versions = "*"
|
||||
files = [
|
||||
{file = "grapheme-0.6.0.tar.gz", hash = "sha256:44c2b9f21bbe77cfb05835fec230bd435954275267fea1858013b102f8603cca"},
|
||||
]
|
||||
|
||||
[package.extras]
|
||||
test = ["pytest", "sphinx", "sphinx-autobuild", "twine", "wheel"]
|
||||
|
||||
[[package]]
|
||||
name = "gunicorn"
|
||||
version = "20.1.0"
|
||||
@ -1492,4 +1453,4 @@ files = [
|
||||
[metadata]
|
||||
lock-version = "2.0"
|
||||
python-versions = ">=3.10,<3.12"
|
||||
content-hash = "15bc0dc4a39392445fe3fe8a9131090f697f80008a79f5d8d49668465acafcb3"
|
||||
content-hash = "0052648520a30e34301208917b639bcd2ca9a0a09a557537126d300aa5ffeeed"
|
||||
|
@ -20,7 +20,6 @@ Unidecode = "^1.3.6"
|
||||
psutil = "^5.9.4"
|
||||
show-in-file-manager = "^1.1.4"
|
||||
pendulum = "^2.1.2"
|
||||
alive-progress = "^3.1.4"
|
||||
flask-compress = "^1.13"
|
||||
tabulate = "^0.9.0"
|
||||
|
||||
|
@ -1,3 +1,4 @@
|
||||
[DEFAULT]
|
||||
build = False
|
||||
lastfm_api_key =
|
||||
|
@ -8,7 +8,7 @@ a = Analysis(
|
||||
['manage.py'],
|
||||
pathex=[],
|
||||
binaries=[],
|
||||
datas=[('assets', 'assets'), ('client', 'client'), ('pyinstaller.config.ini', '.')],
|
||||
datas=[('assets', 'assets'), ('client', 'client'), ('runtime.config.ini', '.')],
|
||||
hiddenimports=[],
|
||||
hookspath=[],
|
||||
hooksconfig={},
|
||||
|
Loading…
x
Reference in New Issue
Block a user