aboutsummaryrefslogtreecommitdiffstats
path: root/cogs/utils
diff options
context:
space:
mode:
authorsalmonik <salmonik@noreply.codeberg.org>2026-04-19 18:10:09 +0200
committersalmonik <salmonik@noreply.codeberg.org>2026-04-19 18:10:09 +0200
commitf8e1cf36e1efa0602bf2e450835f2a67654762a6 (patch)
treefe6b12226d7eebe2a0dc6525de3414d0c3718cc8 /cogs/utils
parentadd support for x^2+y^2=0,4 and alike (diff)
parentfix: proper aiohttp async context manager mocking in test (diff)
downloadsenator-sperma-f8e1cf36e1efa0602bf2e450835f2a67654762a6.tar.gz
senator-sperma-f8e1cf36e1efa0602bf2e450835f2a67654762a6.zip
Merge pull request 'massive changes' (#3) from dev into main
Reviewed-on: https://codeberg.org/salmonik/senator-sperma/pulls/3 stable enough
Diffstat (limited to 'cogs/utils')
-rw-r--r--cogs/utils/settings.py11
-rw-r--r--cogs/utils/temp.py4
2 files changed, 8 insertions, 7 deletions
diff --git a/cogs/utils/settings.py b/cogs/utils/settings.py
index 984ec16..d66ce7f 100644
--- a/cogs/utils/settings.py
+++ b/cogs/utils/settings.py
@@ -12,18 +12,19 @@ from dataclasses import dataclass, field
12logger = logging.getLogger(__name__) 12logger = logging.getLogger(__name__)
13 13
14settings_file = "data/settings.json" 14settings_file = "data/settings.json"
15DEFAULT_BASEURL = "http://localhost:8080"
15 16
16 17
17@dataclass 18@dataclass
18class Settings: 19class Settings:
19 volume: float = 1.0 20 volume: float = 1.0
20 baseurl: str = "http://localhost:8080" 21 baseurl: str = DEFAULT_BASEURL
21 _data: dict = field(default_factory=dict, init=False) 22 _data: dict = field(default_factory=dict, init=False)
22 23
23 async def load(self) -> "Settings": 24 async def load(self) -> "Settings":
24 default_settings = { 25 default_settings = {
25 "volume": 1.0, 26 "volume": 1.0,
26 "baseurl": "http://localhost:8080", 27 "baseurl": DEFAULT_BASEURL,
27 } 28 }
28 29
29 try: 30 try:
@@ -44,7 +45,7 @@ class Settings:
44 self._sync_from_data() 45 self._sync_from_data()
45 await self.save() 46 await self.save()
46 logger.info("Created default settings.json") 47 logger.info("Created default settings.json")
47 except (json.JSONDecodeError, Exception) as e: 48 except json.JSONDecodeError as e:
48 logger.error(f"Error loading settings: {e}") 49 logger.error(f"Error loading settings: {e}")
49 self._data = default_settings.copy() 50 self._data = default_settings.copy()
50 self._sync_from_data() 51 self._sync_from_data()
@@ -53,7 +54,7 @@ class Settings:
53 54
54 def _sync_from_data(self): 55 def _sync_from_data(self):
55 self.volume = self._data.get("volume", 1.0) 56 self.volume = self._data.get("volume", 1.0)
56 self.baseurl = self._data.get("baseurl", "http://localhost:8080") 57 self.baseurl = self._data.get("baseurl", DEFAULT_BASEURL)
57 58
58 def _sync_to_data(self): 59 def _sync_to_data(self):
59 self._data["volume"] = self.volume 60 self._data["volume"] = self.volume
@@ -89,4 +90,4 @@ def get_volume() -> float:
89 90
90 91
91def get_baseurl() -> str: 92def get_baseurl() -> str:
92 return _settings_instance.baseurl.rstrip("/") if _settings_instance else "http://localhost:8080" 93 return _settings_instance.baseurl.rstrip("/") if _settings_instance else DEFAULT_BASEURL
diff --git a/cogs/utils/temp.py b/cogs/utils/temp.py
index 528d6a3..0b2c8d7 100644
--- a/cogs/utils/temp.py
+++ b/cogs/utils/temp.py
@@ -8,11 +8,11 @@ import tempfile
8 8
9def get_temp_dir(subdir: str = "senator_sperma") -> str: 9def get_temp_dir(subdir: str = "senator_sperma") -> str:
10 """Get or create a temp subdirectory. 10 """Get or create a temp subdirectory.
11 11
12 Uses system temp directory (/tmp on Linux, %TEMP% on Windows). 12 Uses system temp directory (/tmp on Linux, %TEMP% on Windows).
13 OS handles cleanup automatically. 13 OS handles cleanup automatically.
14 """ 14 """
15 base_temp = tempfile.gettempdir() 15 base_temp = tempfile.gettempdir()
16 temp_path = os.path.join(base_temp, subdir) 16 temp_path = os.path.join(base_temp, subdir)
17 os.makedirs(temp_path, exist_ok=True) 17 os.makedirs(temp_path, exist_ok=True)
18 return temp_path \ No newline at end of file 18 return temp_path