diff options
| author | Nakidai <nakidai@disroot.org> | 2024-11-07 03:17:17 +0300 |
|---|---|---|
| committer | Nakidai <nakidai@disroot.org> | 2024-11-07 03:17:17 +0300 |
| commit | 0ee19656730699b0c3a743627b4703d0774d03ea (patch) | |
| tree | bc429c0a2e7d9b6d4de79ebd2efc7a957fe368fd | |
| parent | 4f99e6ada3ddde9c8b1a79129db7653e5862c985 (diff) | |
| download | petthecord-0ee19656730699b0c3a743627b4703d0774d03ea.tar.gz petthecord-0ee19656730699b0c3a743627b4703d0774d03ea.zip | |
Add defaults
Now default values are stored in one place :3
| -rw-r--r-- | src/petthecord/__init__.py | 3 | ||||
| -rw-r--r-- | src/petthecord/bot.py | 4 | ||||
| -rw-r--r-- | src/petthecord/defaults.py | 18 | ||||
| -rw-r--r-- | src/petthecord/main.py | 34 | ||||
| -rw-r--r-- | src/petthecord/petter/cachedpetter.py | 7 | ||||
| -rw-r--r-- | src/petthecord/runner.py | 7 |
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: |