Add config file for specifying backends
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
from typing import Type
|
||||
|
||||
import os
|
||||
import sys
|
||||
from urllib import parse
|
||||
|
||||
@@ -20,6 +21,7 @@ from PyQt5.QtGui import QImage
|
||||
from .qtmpv import MpvObject
|
||||
|
||||
import requests
|
||||
import toml
|
||||
|
||||
|
||||
class Episode(QObject):
|
||||
@@ -186,6 +188,31 @@ def DatabaseType(data_source) -> Type:
|
||||
return Database
|
||||
|
||||
|
||||
def load_config() -> list[str]:
|
||||
try:
|
||||
config_dir: str = os.path.join(os.environ["XDG_CONFIG_HOME"], "ikinuki")
|
||||
except:
|
||||
config_dir: str = os.path.join(os.environ["HOME"], ".config", "ikinuki")
|
||||
|
||||
os.makedirs(config_dir, exist_ok=True)
|
||||
|
||||
config_file: str = os.path.join(config_dir, "client.toml")
|
||||
|
||||
try:
|
||||
config: dict = toml.load(config_file)
|
||||
except FileNotFoundError:
|
||||
print(f'Config file not found at "{config_file}"')
|
||||
print("Writing example config file. Please update and relaunch.")
|
||||
default_config = """# [[backends]]
|
||||
# address = "127.0.0.1"
|
||||
# port = 32520"""
|
||||
with open(config_file, "w") as f:
|
||||
f.write(default_config)
|
||||
sys.exit(-1)
|
||||
|
||||
return [f'http://{b["address"]}:{b["port"]}/' for b in config["backends"]]
|
||||
|
||||
|
||||
def main():
|
||||
app = QApplication(sys.argv)
|
||||
|
||||
@@ -194,15 +221,13 @@ def main():
|
||||
|
||||
locale.setlocale(locale.LC_NUMERIC, "C")
|
||||
|
||||
data_source = DataSource(
|
||||
[
|
||||
# "http://127.0.0.1:8080/a/",
|
||||
# "http://127.0.0.1:8080/b/",
|
||||
# "http://127.0.0.1:8080/c/",
|
||||
"http://127.0.0.1:32520/",
|
||||
]
|
||||
)
|
||||
# data_source = DataSource([])
|
||||
try:
|
||||
backends: list[str] = load_config()
|
||||
except Exception as e:
|
||||
print(f"ERROR: Could not load config file: {repr(e)}")
|
||||
sys.exit(-1)
|
||||
|
||||
data_source = DataSource(backends)
|
||||
|
||||
qmlRegisterType(DatabaseType(data_source), "Ikinuki.Client", 1, 0, "Database")
|
||||
# qmlRegisterType(Provider, "Ikinuki.Client", 1, 0, "Provider")
|
||||
|
||||
Generated
+14
-2
@@ -62,7 +62,7 @@ optional = false
|
||||
python-versions = ">=3.5"
|
||||
|
||||
[package.extras]
|
||||
screenshot_raw = ["pillow"]
|
||||
screenshot_raw = ["Pillow"]
|
||||
|
||||
[[package]]
|
||||
name = "requests"
|
||||
@@ -82,6 +82,14 @@ urllib3 = ">=1.21.1,<1.27"
|
||||
socks = ["PySocks (>=1.5.6,!=1.5.7)"]
|
||||
use_chardet_on_py3 = ["chardet (>=3.0.2,<6)"]
|
||||
|
||||
[[package]]
|
||||
name = "toml"
|
||||
version = "0.10.2"
|
||||
description = "Python Library for Tom's Obvious, Minimal Language"
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
|
||||
|
||||
[[package]]
|
||||
name = "urllib3"
|
||||
version = "1.26.12"
|
||||
@@ -98,7 +106,7 @@ socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]
|
||||
[metadata]
|
||||
lock-version = "1.1"
|
||||
python-versions = "^3.10"
|
||||
content-hash = "7e77956c19bb0148f37be8283857fbd29805184149d6f2c1027daab624c66b80"
|
||||
content-hash = "ab4b6be20253adf487e007f81b07f9f585bd4a61d4e51889f9356dfc0e03e206"
|
||||
|
||||
[metadata.files]
|
||||
certifi = [
|
||||
@@ -152,6 +160,10 @@ requests = [
|
||||
{file = "requests-2.28.1-py3-none-any.whl", hash = "sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349"},
|
||||
{file = "requests-2.28.1.tar.gz", hash = "sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983"},
|
||||
]
|
||||
toml = [
|
||||
{file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"},
|
||||
{file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"},
|
||||
]
|
||||
urllib3 = [
|
||||
{file = "urllib3-1.26.12-py2.py3-none-any.whl", hash = "sha256:b930dd878d5a8afb066a637fbb35144fe7901e3b209d1cd4f524bd0e9deee997"},
|
||||
{file = "urllib3-1.26.12.tar.gz", hash = "sha256:3fa96cf423e6987997fc326ae8df396db2a8b7c667747d47ddd8ecba91f4a74e"},
|
||||
|
||||
@@ -10,6 +10,7 @@ python = "^3.10"
|
||||
python-mpv = "^0.5.2"
|
||||
PyQt5 = "^5.15.1"
|
||||
requests = "^2.28.1"
|
||||
toml = "^0.10.2"
|
||||
|
||||
|
||||
[tool.poetry.scripts]
|
||||
|
||||
Reference in New Issue
Block a user