From 6c9a482ee71b60cd7e0a795d54687a5cf796cf82 Mon Sep 17 00:00:00 2001 From: rejnronuz Date: Fri, 3 Apr 2026 21:24:24 +0500 Subject: [PATCH] cogs refactoring, removing useless bloat, main.py refactor --- .gitignore | 33 ++++++++ README.md | 55 +++++++++++++ bot_config.json | 10 +++ cogs/__init__.py | 0 cogs/help/config.json | 15 ++++ cogs/help/help.py | 107 ++++++++++++++++++++++++ cogs/uptime/config.json | 23 ++++++ cogs/uptime/uptime.py | 150 ++++++++++++++++++++++++++++++++++ cogs/uptime/uptime_state.json | 5 ++ main.py | 101 +++++++++++++++++++++++ readme/pic.jpg | Bin 0 -> 88073 bytes requirements.txt | 4 + systemd_service.sh | 34 ++++++++ utils/__init__.py | 0 14 files changed, 537 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 bot_config.json create mode 100644 cogs/__init__.py create mode 100644 cogs/help/config.json create mode 100644 cogs/help/help.py create mode 100644 cogs/uptime/config.json create mode 100644 cogs/uptime/uptime.py create mode 100644 cogs/uptime/uptime_state.json create mode 100644 main.py create mode 100644 readme/pic.jpg create mode 100644 requirements.txt create mode 100644 systemd_service.sh create mode 100644 utils/__init__.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c35961c --- /dev/null +++ b/.gitignore @@ -0,0 +1,33 @@ +.env +bot.log +__pycache__/ +*.pyc + +*.py[cod] +*$py.class +*.so +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg + +.vscode/ +.idea/ +*.swp +*.swo +*.db +.venv + +*.log diff --git a/README.md b/README.md new file mode 100644 index 0000000..ccb99ad --- /dev/null +++ b/README.md @@ -0,0 +1,55 @@ +# muzovkantV2 +### shitty (half-)vibecoded discord bot +## overall +you can use this as a base for your discord bot by writing your own [cogs](/cogs/), or as is. + +## installation +1. clone the repo +```bash +git clone https://github.com/rejnronuzz/muzovkantv2.git +cd muzovkantv2 +``` +2. install the requirements. you might need to enter a venv on some systems. +```bash +pip install -r requirements.txt +``` +3. insert your discord bot token and [thecatapi](https://thecatapi.com) token into the .env file. +*it should look something like this:* +``` +DISCORD_TOKEN=abc123abc +CAT_API_KEY=live_abc123abc +``` +you can then edit the [config.py](/config.py) to your liking. + +## usage +the bot is running when the main.py script is running. + +### systemd service +you can configure a systemd service for this bot. +[systemd_service.sh](systemd_service.sh) is ONLY for systemd systems. + +(*tested on Ubuntu 24.04*) + +simply do: +``` +chmod +x systemd_service.sh +./systemd_service.sh +``` +the systemd service will now start and auto start on reboot. + +### updating with systemd service +keep in mind that after updating with the systemd service enabled, you will need to restart the service. +so the update workflow looks something like this: +``` +git pull origin main +sudo systemctl restart muzovkantv2 +``` + +## contacting +if you have any feedback, contact me on github issues or/and discord. if you want to add any functions to this bot, make a PR. +when submitting a bug report, make sure to attach the bot.log files. they generate automatically in root directory. + +*discord: rejnronuz* + + +![yo](readme/pic.jpg) diff --git a/bot_config.json b/bot_config.json new file mode 100644 index 0000000..2f78cb5 --- /dev/null +++ b/bot_config.json @@ -0,0 +1,10 @@ +{ + "settings": { + "command_prefix": "!", + "sync_commands": true + }, + "cogs": [ + "cogs.uptime.uptime", + "cogs.help.help" + ] +} \ No newline at end of file diff --git a/cogs/__init__.py b/cogs/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/cogs/help/config.json b/cogs/help/config.json new file mode 100644 index 0000000..1d1ab45 --- /dev/null +++ b/cogs/help/config.json @@ -0,0 +1,15 @@ +{ + "description": "хмм даже не знаюююююю", + "usages": ["help"], + "hidden": false, + "messages": { + "upper_desc": "команды:", + "footer": "что то поломалось - пинг меня\nесли имеются предложения по улучшению, в лс или пинг", + "pfx_message": "префикс:" + }, + "settings": { + "command_pfx": "!", + "cogs_dir": "..", + "column_width": 20 + } +} \ No newline at end of file diff --git a/cogs/help/help.py b/cogs/help/help.py new file mode 100644 index 0000000..c7b9bcb --- /dev/null +++ b/cogs/help/help.py @@ -0,0 +1,107 @@ +import logging +from discord.ext import commands +import os +import json + +logger = logging.getLogger(__name__) + +CONFIG_FILE = 'config.json' +REQUIRED_MESSAGES = ['upper_desc', 'footer', 'pfx_message'] + +class HelpCog(commands.Cog): + def __init__(self, bot: commands.Bot): + self.bot = bot + self.help_config = self._load_and_validate_config() + self.cogs_dir = os.path.join( + os.path.dirname(__file__), + self.help_config["settings"]["cogs_dir"] + ) + + def _load_and_validate_config(self) -> dict: + path = os.path.join(os.path.dirname(__file__), CONFIG_FILE) + + if not os.path.exists(path): + raise FileNotFoundError(f"Help cog config not found at {path}") + + with open(path, 'r', encoding='utf-8') as f: + config = json.load(f) + + messages = config.get("messages", {}) + missing_msgs = [key for key in REQUIRED_MESSAGES if key not in messages] + if missing_msgs: + raise KeyError(f"Help config 'messages' is missing required keys: {missing_msgs}") + + settings = config.get("settings", {}) + settings.setdefault("cogs_dir", "..") + settings.setdefault("column_width", 20) + settings.setdefault("command_pfx", "!") + + config["messages"] = messages + config["settings"] = settings + + logger.info("Help cog config loaded successfully") + return config + + def _build_help_text(self, prefix: str) -> list[str]: + settings = self.help_config["settings"] + column_width = settings["column_width"] + lines = [] + + if not os.path.exists(self.cogs_dir): + logger.error(f"Cogs directory not found at: {self.cogs_dir}") + return lines + + for item in sorted(os.listdir(self.cogs_dir)): + cog_dir = os.path.join(self.cogs_dir, item) + if not os.path.isdir(cog_dir): + continue + + config_path = os.path.join(cog_dir, CONFIG_FILE) + if not os.path.exists(config_path): + continue + + try: + with open(config_path, 'r', encoding='utf-8') as f: + cog_config = json.load(f) + except (json.JSONDecodeError, OSError) as e: + logger.warning(f"Failed to load config for cog '{item}': {e}") + continue + + description = cog_config.get('description', '') + usages = cog_config.get('usages', []) + hidden = cog_config.get('hidden', False) + + if not usages or hidden: + continue + + for usage in usages: + usage_text = usage if usage.startswith(prefix) else f"{prefix}{usage}" + lines.append(f"{usage_text:<{column_width}} : {description}") + + return lines + + @commands.command(name="help") + async def help(self, ctx: commands.Context): + cfg_msgs = self.help_config["messages"] + cfg_sets = self.help_config["settings"] + + prefix = ctx.prefix or cfg_sets['command_pfx'] + lines = self._build_help_text(prefix) + + if not lines: + await ctx.send("No commands available.") + return + + help_text = ( + f"{cfg_msgs['upper_desc']}\n" + f"```\n" + f"{chr(10).join(lines)}\n" + f"```\n" + f"{cfg_msgs['pfx_message']} `{cfg_sets['command_pfx']}`\n" + f"{cfg_msgs['footer']}" + ) + + await ctx.send(help_text) + +async def setup(bot: commands.Bot): + await bot.add_cog(HelpCog(bot)) \ No newline at end of file diff --git a/cogs/uptime/config.json b/cogs/uptime/config.json new file mode 100644 index 0000000..524f63f --- /dev/null +++ b/cogs/uptime/config.json @@ -0,0 +1,23 @@ +{ + "description": "аптайм бота", + "usages": ["!uptime"], + "first_seen": null, + "total_downtime": 0.0, + "last_start": null, + + "labels": { + "days": ["день", "дня", "дней"], + "hours": ["час", "часа", "часов"], + "minutes": ["минуту", "минуты", "минут"], + "seconds": ["секунду", "секунды","секунд"] + }, + + "embed": { + "session_field": "текущая сессия", + "availability_field":"тотал аптайм" + }, + "settings": { + "max_units": 4, + "show_percent": true + } +} \ No newline at end of file diff --git a/cogs/uptime/uptime.py b/cogs/uptime/uptime.py new file mode 100644 index 0000000..71945a8 --- /dev/null +++ b/cogs/uptime/uptime.py @@ -0,0 +1,150 @@ +import discord +from discord.ext import commands +from datetime import datetime, timezone +import json +import os + +CONFIG_FILE = "config.json" +STATE_FILE = "uptime_state.json" + +REQUIRED_KEYS = ["labels", "embed", "settings"] +REQUIRED_LABEL_KEYS = ["days", "hours", "minutes", "seconds"] +REQUIRED_EMBED_KEYS = ["session_field", "availability_field"] + +def pluralize(n: int, forms: tuple[str, str, str]) -> str: + if 11 <= n % 100 <= 14: + return f"{n} {forms[2]}" + r = n % 10 + if r == 1: return f"{n} {forms[0]}" + if 2 <= r <= 4: return f"{n} {forms[1]}" + return f"{n} {forms[2]}" + +def format_delta(total_seconds: int, labels: dict, max_units: int) -> str: + minutes, secs = divmod(total_seconds, 60) + hours, minutes = divmod(minutes, 60) + days, hours = divmod(hours, 24) + + candidates = [ + (days, labels["days"]), + (hours, labels["hours"]), + (minutes, labels["minutes"]), + (secs, labels["seconds"]), + ] + + parts = [pluralize(v, tuple(f)) for v, f in candidates if v][:max_units] + return " ".join(parts) if parts else pluralize(0, tuple(labels["seconds"])) + +def _now_ts() -> float: + return datetime.now(timezone.utc).timestamp() + +class UptimeSimple(commands.Cog): + def __init__(self, bot: commands.Bot): + self.bot = bot + self.session_start = _now_ts() + self.config = self._load_and_validate_config() + self.state = self._load_state() + + if self.state["last_start"] is not None: + gap = self.session_start - self.state["last_start"] + if gap > 5: + self.state["total_downtime"] += gap + + if self.state["first_seen"] is None: + self.state["first_seen"] = self.session_start + + self.state["last_start"] = self.session_start + self._save_state() + + def _parse_color(self, color_val) -> int: + if isinstance(color_val, str): + return int(color_val.lstrip("#").replace("0x", ""), 16) + return int(color_val) + + def _load_and_validate_config(self) -> dict: + path = os.path.join(os.path.dirname(__file__), CONFIG_FILE) + + if not os.path.exists(path): + raise FileNotFoundError(f"Uptime cog config not found at {path}") + + with open(path, "r", encoding="utf-8") as f: + config = json.load(f) + + missing = [k for k in REQUIRED_KEYS if k not in config] + if missing: + raise KeyError(f"Uptime config is missing required keys: {missing}") + + missing_labels = [k for k in REQUIRED_LABEL_KEYS if k not in config["labels"]] + if missing_labels: + raise KeyError(f"Uptime config 'labels' is missing keys: {missing_labels}") + + missing_embed = [k for k in REQUIRED_EMBED_KEYS if k not in config["embed"]] + if missing_embed: + raise KeyError(f"Uptime config 'embed' is missing keys: {missing_embed}") + + settings = config.get("settings", {}) + settings.setdefault("max_units", 4) + settings.setdefault("show_percent", True) + + color_val = config["embed"].get("color", 0x2ecc71) + config["embed"]["parsed_color"] = discord.Color(self._parse_color(color_val)) + + return config + + def _state_path(self) -> str: + return os.path.join(os.path.dirname(__file__), STATE_FILE) + + def _load_state(self) -> dict: + path = self._state_path() + if os.path.exists(path): + with open(path, "r", encoding="utf-8") as f: + return json.load(f) + return { + "first_seen": None, + "total_downtime": 0.0, + "last_start": None, + } + + def _save_state(self) -> None: + with open(self._state_path(), "w", encoding="utf-8") as f: + json.dump(self.state, f, indent=2) + + def availability_percent(self) -> float: + now = _now_ts() + total_span = now - self.state["first_seen"] + if total_span <= 0: + return 100.0 + return max(0.0, (total_span - self.state["total_downtime"]) / total_span * 100) + + @staticmethod + def _pct_bar(pct: float, width: int = 10) -> str: + filled = round(pct / 100 * width) + return "█" * filled + "░" * (width - filled) + + @commands.command(name="uptime") + async def uptime(self, ctx: commands.Context): + session_seconds = int(_now_ts() - self.session_start) + settings = self.config["settings"] + + embed = discord.Embed(color=self.config["embed"]["parsed_color"]) + embed.add_field( + name = self.config["embed"]["session_field"], + value = format_delta(session_seconds, self.config["labels"], settings["max_units"]), + inline = False, + ) + + if settings["show_percent"]: + pct = self.availability_percent() + embed.add_field( + name = self.config["embed"]["availability_field"], + value = f"{self._pct_bar(pct)} {pct:.2f}%", + inline = False, + ) + + await ctx.send(embed=embed) + + async def cog_unload(self) -> None: + self.state["last_start"] = None + self._save_state() + +async def setup(bot: commands.Bot): + await bot.add_cog(UptimeSimple(bot)) \ No newline at end of file diff --git a/cogs/uptime/uptime_state.json b/cogs/uptime/uptime_state.json new file mode 100644 index 0000000..1079da5 --- /dev/null +++ b/cogs/uptime/uptime_state.json @@ -0,0 +1,5 @@ +{ + "first_seen": 1775231576.45808, + "total_downtime": 1324.356654882431, + "last_start": 1775232900.814735 +} \ No newline at end of file diff --git a/main.py b/main.py new file mode 100644 index 0000000..db38762 --- /dev/null +++ b/main.py @@ -0,0 +1,101 @@ +import discord +from discord.ext import commands +import asyncio +import logging +import os +import json +from dotenv import load_dotenv + +CONFIG_FILE = 'bot_config.json' +logger = logging.getLogger(__name__) + +def setup_logging() -> None: + logging.basicConfig( + level=logging.INFO, + format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', + handlers=[ + logging.FileHandler('bot.log', encoding='utf-8'), + logging.StreamHandler() + ] + ) + +def load_config() -> dict: + if not os.path.exists(CONFIG_FILE): + raise FileNotFoundError(f"Main bot config not found at {CONFIG_FILE}") + + with open(CONFIG_FILE, 'r', encoding='utf-8') as f: + config = json.load(f) + + # Apply fallbacks + settings = config.get("settings", {}) + settings.setdefault("command_prefix", "!") + settings.setdefault("sync_commands", True) + config["settings"] = settings + config.setdefault("cogs", []) + + return config + +class Bot(commands.Bot): + def __init__(self, config: dict): + self.config = config + + intents = discord.Intents.default() + intents.message_content = True + intents.reactions = True + intents.members = True + intents.guilds = True + intents.messages = True + + super().__init__( + command_prefix=self.config["settings"]["command_prefix"], + intents=intents, + help_command=None, + ) + + async def setup_hook(self) -> None: + for cog in self.config["cogs"]: + try: + await self.load_extension(cog) + logger.info("Loaded cog: %s", cog) + except Exception as e: + logger.error("Failed to load cog %s: %s", cog, e, exc_info=True) + + if self.config["settings"]["sync_commands"]: + try: + await self.tree.sync() + logger.info("Application commands synced successfully") + except Exception as e: + logger.error("Failed to sync application commands: %s", e) + + async def on_ready(self) -> None: + if not hasattr(self, '_ready_fired'): + self._ready_fired = True + logger.info("Bot ready: %s (id: %s)", self.user, self.user.id) + +async def main() -> None: + setup_logging() + load_dotenv() + + token = os.getenv('DISCORD_TOKEN') + if not token: + logger.critical("DISCORD_TOKEN environment variable is missing; Shutting down") + return + + try: + config = load_config() + except Exception as e: + logger.critical("Failed to load configuration: %s", e) + return + + bot = Bot(config) + + try: + await bot.start(token) + except discord.LoginFailure: + logger.critical("Improper DISCORD_TOKEN passed; Shutting down") + +if __name__ == "__main__": + try: + asyncio.run(main()) + except KeyboardInterrupt: + logger.info("Bot shutdown via keyboard interrupt") \ No newline at end of file diff --git a/readme/pic.jpg b/readme/pic.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7b7a8ab490925cb066883d8dfaf71e536dd7782a GIT binary patch literal 88073 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 -pH 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

3n(#Qn8>TG5es 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 literal 0 HcmV?d00001 diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..ad8bf30 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,4 @@ +python-dotenv>=1.0.0 +discord.py>=2.3.0 +aiofiles +aiosqlite \ No newline at end of file diff --git a/systemd_service.sh b/systemd_service.sh new file mode 100644 index 0000000..fd2eba9 --- /dev/null +++ b/systemd_service.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +BOT_DIR="$(cd "$(dirname "$0")" && pwd)" +BOT_USER="$(whoami)" +VENV_PYTHON="$BOT_DIR/venv/bin/python" +SERVICE_NAME="muzovkantv2" + +echo "creating systemd service for user '$BOT_USER' in '$BOT_DIR'..." + +sudo tee /etc/systemd/system/$SERVICE_NAME.service > /dev/null <

^B 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