about summary refs log tree commit diff
diff options
context:
space:
mode:
authorNakidai <nakidai@disroot.org>2024-11-07 03:17:17 +0300
committerNakidai <nakidai@disroot.org>2024-11-07 03:17:17 +0300
commit0ee19656730699b0c3a743627b4703d0774d03ea (patch)
treebc429c0a2e7d9b6d4de79ebd2efc7a957fe368fd
parent4f99e6ada3ddde9c8b1a79129db7653e5862c985 (diff)
downloadpetthecord-0ee19656730699b0c3a743627b4703d0774d03ea.tar.gz
petthecord-0ee19656730699b0c3a743627b4703d0774d03ea.zip
Add defaults
Now default values are stored in one place :3
-rw-r--r--src/petthecord/__init__.py3
-rw-r--r--src/petthecord/bot.py4
-rw-r--r--src/petthecord/defaults.py18
-rw-r--r--src/petthecord/main.py34
-rw-r--r--src/petthecord/petter/cachedpetter.py7
-rw-r--r--src/petthecord/runner.py7
6 files changed, 50 insertions, 23 deletions
diff --git a/src/petthecord/__init__.py b/src/petthecord/__init__.py
index 9c17cd3..6e431ac 100644
--- a/src/petthecord/__init__.py
+++ b/src/petthecord/__init__.py
@@ -1,7 +1,8 @@
 from .bot import PetTheCordCog
+from .defaults import Defaults
 from .main import main
 from .runner import PetTheCord
 from .server import Server
 
 
-__all__ = ["main", "PetTheCord", "PetTheCordCog", "Server"]
+__all__ = ["Defaults", "main", "PetTheCord", "PetTheCordCog", "Server"]
diff --git a/src/petthecord/bot.py b/src/petthecord/bot.py
index 59827f2..e1aa8a6 100644
--- a/src/petthecord/bot.py
+++ b/src/petthecord/bot.py
@@ -3,9 +3,11 @@ from logging import getLogger
 from discord import app_commands, Interaction, User
 from discord.ext import commands
 
+from .defaults import Defaults
+
 
 class PetTheCordCog(commands.Cog):
-    def __init__(self, origin: str = "https://ptc.pwn3t.ru") -> None:
+    def __init__(self, origin: str = Defaults.Network.ORIGIN) -> None:
         self._origin = origin
         super().__init__()
 
diff --git a/src/petthecord/defaults.py b/src/petthecord/defaults.py
new file mode 100644
index 0000000..e9581bf
--- /dev/null
+++ b/src/petthecord/defaults.py
@@ -0,0 +1,18 @@
+from typing import Final
+
+
+class Defaults:
+    class Network:
+        PORT: Final = 8000
+        HOST: Final = "127.0.0.1"
+        ORIGIN: Final = "https://ptc.pwn3t.ru"
+
+
+    class Cache:
+        CACHING: Final = True
+        PATH: Final = "/var/cache/petthecord"
+        LIFETIME: Final = 86400
+        GC_DELAY: Final = 14400
+
+
+    SHARDS_COUNT: Final = 1
diff --git a/src/petthecord/main.py b/src/petthecord/main.py
index 3ea56cb..9307e2a 100644
--- a/src/petthecord/main.py
+++ b/src/petthecord/main.py
@@ -2,6 +2,7 @@ from argparse import ArgumentParser
 from os import getenv
 from sys import argv, stderr
 
+from .defaults import Defaults
 from .petter import CacheEnvironmentFail, CachedPetter, Petter
 from .runner import PetTheCord
 
@@ -13,66 +14,69 @@ def main() -> None:
     )
     parser.add_argument(
         "-p", "--port",
-        default=8000,
+        default=Defaults.Network.PORT,
         type=int,
         metavar="PORT",
         help="Bind port"
     )
     parser.add_argument(
         "-i", "--host",
-        default="127.0.0.1",
+        default=Defaults.Network.HOST,
         metavar="HOST",
         help="Bind IP"
     )
     parser.add_argument(
         "-o", "--origin",
-        default="https://ptc.pwn3t.ru",
+        default=Defaults.Network.ORIGIN,
         metavar="PATH",
         help="Root of the bot"
     )
     parser.add_argument(
         "-d", "--cache-dir",
-        default="/var/cache/petthecord",
+        default=Defaults.Cache.PATH,
         metavar="PATH",
         help="Directory for cache storing"
     )
     parser.add_argument(
         "-n", "--no-cache",
         action="store_true",
-        default=False,
+        default=not Defaults.Cache.CACHING,
         help="Turn off the cache"
     )
     parser.add_argument(
         "-l", "--cache-lifetime",
-        default=86400,
+        default=Defaults.Cache.LIFETIME,
         type=int,
         metavar="TIME",
         help="Lifetime of cached avatar in seconds"
     )
     parser.add_argument(
         "-s", "--cache-gc-delay",
-        default=14400,
+        default=Defaults.Cache.GC_DELAY,
         type=int,
         metavar="TIME",
         help="Delay between cache's garbage collector runs in seconds"
     )
     parser.add_argument(
         "-c", "--shards",
-        default=1,
+        default=Defaults.SHARDS_COUNT,
         type=int,
         metavar="COUNT",
         help="Amount of shards to create"
     )
     args = parser.parse_args()
 
-    try:
-        petter = CachedPetter(
-            args.cache_dir,
-            args.cache_lifetime,
-            args.cache_gc_delay,
-        )
-    except CacheEnvironmentFail:
+    if args.no_cache:
         petter = Petter()
+    else:
+        try:
+            petter = CachedPetter(
+                args.cache_dir,
+                args.cache_lifetime,
+                args.cache_gc_delay,
+            )
+        except CacheEnvironmentFail:
+            petter = Petter()
 
     bot = PetTheCord(
         args.host,
diff --git a/src/petthecord/petter/cachedpetter.py b/src/petthecord/petter/cachedpetter.py
index 4e8b35d..9e94354 100644
--- a/src/petthecord/petter/cachedpetter.py
+++ b/src/petthecord/petter/cachedpetter.py
@@ -9,6 +9,7 @@ from typing import NoReturn
 
 from discord import User
 
+from ..defaults import Defaults
 from .exceptions import CacheEnvironmentFail, NotFound
 from .petter import Petter
 
@@ -17,9 +18,9 @@ class CachedPetter(Petter):
     def __init__(
         self,
 
-        path: str | PathLike = "/var/cache/petthecord",
-        lifetime: int = 86400,
-        gc_delay: int = 14400,
+        path: str | PathLike = Defaults.Cache.PATH,
+        lifetime: int = Defaults.Cache.LIFETIME,
+        gc_delay: int = Defaults.Cache.GC_DELAY,
     ) -> None:
         super().__init__()
 
diff --git a/src/petthecord/runner.py b/src/petthecord/runner.py
index f3ea325..85e6cb5 100644
--- a/src/petthecord/runner.py
+++ b/src/petthecord/runner.py
@@ -5,6 +5,7 @@ from discord import Intents
 from discord.ext import commands
 
 from .bot import PetTheCordCog
+from .defaults import Defaults
 from .petter import CachedPetter, Petter
 from .server import Server
 
@@ -13,9 +14,9 @@ class PetTheCord(commands.AutoShardedBot):
     def __init__(
         self,
 
-        host: str = "127.0.0.1",
-        port: int = 8080,
-        origin: str = "https://ptc.pwn3t.ru",
+        host: str = Defaults.Network.HOST,
+        port: int = Defaults.Network.PORT,
+        origin: str = Defaults.Network.ORIGIN,
         petter: Petter | None = None,
         shard_count: int = 1,
     ) -> None: