Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/Dockerfile-bot
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,4 @@ RUN --mount=type=cache,target=/root/.cache/uv \
RUN useradd -r -M botuser && chown -R botuser:botuser /bot
USER botuser

CMD ["uv", "run", "--frozen", "--no-cache", "--no-dev", "--package", "eos-bot", "python", "src/bot/main.py"]
CMD ["uv", "run", "--frozen", "--no-cache", "--no-dev", "--package", "eos-bot", "python", "-m", "src.bot.main"]
17 changes: 9 additions & 8 deletions src/api/api.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
import logging
import os

from __logger__ import setup_logger
from core.db_helper import DB
from flask import Flask, jsonify
from routes.healthchecks import health_checks
from routes.logging import logs
from routes.parameters import parameters
from routes.points import points
from routes.roles import role
from routes.settings import settings
from werkzeug.exceptions import HTTPException

from src.api.__logger__ import setup_logger

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nothing was changed in the API startup command in the dockerfile. Does this actually work without changing the startup command?? No way

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I remember testing long ago. It should work.

from src.api.core.db_helper import DB
from src.api.routes.healthchecks import health_checks
from src.api.routes.logging import logs
from src.api.routes.parameters import parameters
from src.api.routes.points import points
from src.api.routes.roles import role
from src.api.routes.settings import settings

logger = logging.getLogger(__name__)
setup_logger(
level=int(os.getenv("API_LOG_LEVEL", "20")),
Expand Down
27 changes: 27 additions & 0 deletions src/bot/cogs/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
from __future__ import annotations

from typing import TYPE_CHECKING

from discord.ext import commands

if TYPE_CHECKING:
from logging import Logger


__all__ = ("BaseCog",)


class BaseCog(commands.Cog):
"""The base cog which comes along with basic logging."""

def __init__(self, logger: None | Logger = None) -> None:
super().__init__()
self.logger: None | Logger = logger

async def cog_load(self) -> None:
if self.logger:
self.logger.info(f"Cog: {self.qualified_name} has been loaded.")

async def cog_unload(self) -> None:
if self.logger:
self.logger.info(f"Cog: {self.qualified_name} has been unloaded.")
6 changes: 5 additions & 1 deletion src/bot/cogs/admin/healthchecks.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
import discord
from discord.ext import commands

from src.bot.cogs import BaseCog

logger = logging.getLogger(__name__)


Expand All @@ -27,8 +29,10 @@ def embed_hc(api, db):
return embed


class Health(commands.Cog):
class Health(BaseCog):
def __init__(self, bot: commands.Bot) -> None:
super().__init__(logger)

self.bot = bot

@commands.hybrid_command()
Expand Down
7 changes: 5 additions & 2 deletions src/bot/cogs/admin/points.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
import discord
from discord.ext import commands

from .._checks import is_admin, is_master_guild
from src.bot.cogs import BaseCog
from src.bot.cogs._checks import is_admin, is_master_guild

logger = logging.getLogger(__name__)

Expand All @@ -22,7 +23,7 @@ def embed_info(title, message, color):
return embed


class Points(commands.Cog):
class Points(BaseCog):
"""
This cog manages a points-based system for Discord guild members.

Expand All @@ -39,6 +40,8 @@ class Points(commands.Cog):

def __init__(self, bot: commands.Bot) -> None:
"""Initialization of the points Class"""
super().__init__(logger)

self.bot = bot

@is_admin()
Expand Down
7 changes: 5 additions & 2 deletions src/bot/cogs/admin/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
import discord
from discord.ext import commands

from .._checks import is_admin, is_master_guild
from src.bot.cogs import BaseCog
from src.bot.cogs._checks import is_admin, is_master_guild

logger = logging.getLogger(__name__)

Expand All @@ -18,12 +19,14 @@ def sanitize_string(input_string):
return "".join(char for char in input_string if ord(char) < 128)


class Settings(commands.Cog):
class Settings(BaseCog):
"""
Settings Cog for managing various settings of the bot.
"""

def __init__(self, bot: commands.Bot) -> None:
super().__init__(logger)

self.bot = bot

@is_master_guild()
Expand Down
7 changes: 5 additions & 2 deletions src/bot/cogs/admin/sync.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,16 @@

from discord.ext import commands

from .._checks import is_admin, is_master_guild
from src.bot.cogs import BaseCog
from src.bot.cogs._checks import is_admin, is_master_guild

logger = logging.getLogger(__name__)


class CommandSync(commands.Cog):
class CommandSync(BaseCog):
def __init__(self, bot: commands.Bot) -> None:
super().__init__(logger)

self.bot = bot

@commands.command(name="sync")
Expand Down
6 changes: 5 additions & 1 deletion src/bot/cogs/features/general_catfact.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,19 @@
import aiohttp
from discord.ext import commands

from src.bot.cogs import BaseCog

logger = logging.getLogger(__name__)


class GeneralCatFact(commands.Cog):
class GeneralCatFact(BaseCog):
"""
# Hits the catfact API and returns the response.
"""

def __init__(self, bot):
super().__init__(logger)

self.bot = bot

@commands.hybrid_command(name="catfact")
Expand Down
5 changes: 4 additions & 1 deletion src/bot/cogs/features/general_google.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,18 @@

from discord.ext import commands

from src.bot.cogs import BaseCog

logger = logging.getLogger(__name__)


class GeneralSarcasticGoogle(commands.Cog):
class GeneralSarcasticGoogle(BaseCog):
"""
# Creates a link to the Let me google that for you site.
"""

def __init__(self, bot):
super().__init__(logger)
self.bot = bot

@commands.hybrid_command(name="google")
Expand Down
12 changes: 9 additions & 3 deletions src/bot/cogs/features/monthly_yapathon.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,11 @@
import logging
import os

from discord.ext import commands, tasks
from discord.ext import tasks
from discord.utils import get

from src.bot.cogs import BaseCog

logger = logging.getLogger(__name__)


Expand All @@ -17,20 +19,24 @@
DATE = 1


class MonthlyYapathon(commands.Cog):
class MonthlyYapathon(BaseCog):
"""
This cog deals with all the stuff of monthly yapathon.
"""

def __init__(self, bot):
super().__init__(logger)

self.bot = bot
self.yapper_role_id = self.bot.api.get_one_role("8")[0]["roles"][2]
self.announcement_channel_id = self.bot.api.get_one_setting("5")[0]["setting"][
2
]
self.appoint_monthly_yapper.start()

def cog_unload(self):
async def cog_unload(self):
await super().cog_unload()

self.appoint_monthly_yapper.cancel()

@tasks.loop(time=TIME)
Expand Down
6 changes: 5 additions & 1 deletion src/bot/cogs/features/run_code.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
from discord.ext.commands import Bot, Context
from ultra_piston import File, PistonClient

from src.bot.cogs import BaseCog

logger = logging.getLogger(__name__)

TRUNCATED_MESSAGE: str = "\n```\n```\nOutput too long. Message truncated.\n```"
Expand All @@ -20,10 +22,12 @@
# Discord character limit is 4096, but to prevent spamming, we reduce it to 1K


class UtilityRunCode(commands.Cog):
class UtilityRunCode(BaseCog):
"""Uses PistonAPI to run code in the server."""

def __init__(self, bot: Bot):
super().__init__(logger)

self.bot = bot
PISTON_API_TOKEN = os.environ.get("PISTON_API_TOKEN")
if not PISTON_API_TOKEN:
Expand Down
6 changes: 5 additions & 1 deletion src/bot/cogs/features/ticket.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,19 @@
from discord import app_commands
from discord.ext import commands

from src.bot.cogs import BaseCog

logger = logging.getLogger(__name__)


class AddTicketButton(commands.Cog):
class AddTicketButton(BaseCog):
"""
This is the slash command that sends our UI element.
"""

def __init__(self, bot):
super().__init__(logger)

self.bot = bot

@app_commands.command(description="Make a ticket and contact the Staff.")
Expand Down
6 changes: 5 additions & 1 deletion src/bot/cogs/logging/logging_avatars.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
import discord
from discord.ext import commands

from src.bot.cogs import BaseCog

logger = logging.getLogger(__name__)


Expand All @@ -27,12 +29,14 @@ def embed_avatar(before, after):
return embed


class LoggingAvatars(commands.Cog):
class LoggingAvatars(BaseCog):
"""
Simple listener to on_user_update
"""

def __init__(self, bot):
super().__init__(logger)

self.bot = bot
self.user_log = self.bot.api.get_one_log_setting("4") # User_log

Expand Down
6 changes: 5 additions & 1 deletion src/bot/cogs/logging/logging_member_ban.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
import discord
from discord.ext import commands

from src.bot.cogs import BaseCog

logger = logging.getLogger(__name__)


Expand All @@ -25,13 +27,15 @@ def embed_ban(some_member, audit_log_entry):
return embed


class LoggingBans(commands.Cog):
class LoggingBans(BaseCog):
"""
Simple listener to on_member_remove
then checks the audit log for exact details
"""

def __init__(self, bot):
super().__init__(logger)

self.bot = bot
self.verification_role = self.bot.api.get_one_role("6")[0]["roles"][
2
Expand Down
6 changes: 5 additions & 1 deletion src/bot/cogs/logging/logging_member_kick.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
import discord
from discord.ext import commands

from src.bot.cogs import BaseCog

logger = logging.getLogger(__name__)


Expand All @@ -26,13 +28,15 @@ def embed_kick(some_member, audit_log_entry):
return embed


class LoggingKicks(commands.Cog):
class LoggingKicks(BaseCog):
"""
Simple listener to on_member_remove
then checks the audit log for exact details
"""

def __init__(self, bot):
super().__init__(logger)

self.bot = bot
self.verification_role = self.bot.api.get_one_role("6")[0]["roles"][
2
Expand Down
6 changes: 5 additions & 1 deletion src/bot/cogs/logging/logging_member_leaves.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
import discord
from discord.ext import commands

from src.bot.cogs import BaseCog

logger = logging.getLogger(__name__)


Expand All @@ -25,12 +27,14 @@ def embed_leave(some_member):
return embed


class LoggingLeaves(commands.Cog):
class LoggingLeaves(BaseCog):
"""
Simple listener to on_member_update
"""

def __init__(self, bot):
super().__init__(logger)

self.bot = bot
self.verification_role = self.bot.api.get_one_role("6")[0]["roles"][
2
Expand Down
Loading
Loading