Author SHA1 Message Date
imcompiling 54a011337a Fix debugger module and imports.
build_develop / build (push) Successful in 21s
2025-03-18 21:45:12 -04:00
imcompiling b3905fa15c Update uv lock. 2025-03-18 21:32:00 -04:00
imcompiling a09845dfb8 Fix import paths.
build_develop / build (push) Successful in 22s
2025-03-18 13:03:56 -04:00
imcompiling a86b01292f Add an editor config file. 2025-03-18 11:10:02 -04:00
imcompiling 1ad68f4014 Remove outdated comment.
build_develop / build (push) Successful in 22s
2025-03-18 11:07:23 -04:00
imcompiling 3aa0bf291f Remove python dotenv. 2025-03-18 11:06:10 -04:00
imcompiling b727a80e4f Fix smells in main.py.
build_develop / build (push) Successful in 26s
2025-03-18 10:11:52 -04:00
imcompiling 857b5f1669 Update module name in dockerfile. 2025-03-18 10:10:38 -04:00
imcompiling 34cd2f9975 Rename module and add init file to conform to ruff.
build_develop / build (push) Successful in 21s
2025-03-18 10:03:51 -04:00
imcompiling 6af2476339 Update settings to fix a smell. Add some spelling words.
build_develop / build (push) Successful in 22s
2025-03-18 09:50:49 -04:00
imcompiling 4a3f356b23 Update imports. 2025-03-18 09:50:36 -04:00
imcompiling 4fe2339ac1 Update launch command to launch in new location. 2025-03-18 09:49:01 -04:00
imcompiling 2069b2544f Remove old config file. Update docker file for directory change. 2025-03-18 09:37:33 -04:00
imcompiling 901bcf3c62 Move all files into off-cooldown-bot dir. 2025-03-18 09:15:22 -04:00
imcompiling 8e8f84a42e Add more to dockerignore.
build_latest / build (push) Successful in 25s
2025-03-18 08:21:14 -04:00
imcompiling cd241e6f5e Remove extra $ on accident.
build_latest / build (push) Successful in 22s
2025-03-17 21:49:13 -04:00
imcompiling 93d9b565c0 Also update in latest.
build_latest / build (push) Failing after 19s
2025-03-17 21:45:00 -04:00
imcompiling c816d3b5b8 Update docker login action.
build_latest / build (push) Failing after 16s
2025-03-17 21:44:05 -04:00
imcompiling 91900f2b00 Update docker file, add a docker ignore.
build_latest / build (push) Failing after 16s
2025-03-17 21:36:09 -04:00
24 changed files with 65 additions and 82 deletions
+4
View File
@@ -0,0 +1,4 @@
.*
Dockerfile
renovate.json
README.md
+16
View File
@@ -0,0 +1,16 @@
# see https://editorconfig.org/
root = true
[*]
charset = utf-8
end_of_line = lf
indent_style = space
indent_size = 4
insert_final_newline = true
trim_trailing_whitespace = true
[*.md]
trim_trailing_whitespace = false
[*.{yml,yaml}]
indent_size = 2
+1 -1
View File
@@ -19,7 +19,7 @@ jobs:
- name: Install Docker - name: Install Docker
uses: https://github.com/papodaca/install-docker-action@v1 uses: https://github.com/papodaca/install-docker-action@v1
- name: Log into container registry - name: Log into container registry
uses: docker/login-action@v2 uses: docker/login-action@v3
with: with:
registry: gitea.cheezers.org registry: gitea.cheezers.org
username: imcompiling username: imcompiling
+2 -2
View File
@@ -17,11 +17,11 @@ jobs:
- name: Install Docker - name: Install Docker
uses: https://github.com/papodaca/install-docker-action@v1 uses: https://github.com/papodaca/install-docker-action@v1
- name: Log into container registry - name: Log into container registry
uses: docker/login-action@v2 uses: docker/login-action@v3
with: with:
registry: gitea.cheezers.org registry: gitea.cheezers.org
username: imcompiling username: imcompiling
password: $${{ secrets.PASSWORD }} password: ${{ secrets.PASSWORD }}
- name: Build Docker Image - name: Build Docker Image
run: docker build -t gitea.cheezers.org/imcompiling/off-cooldown-bot:latest . run: docker build -t gitea.cheezers.org/imcompiling/off-cooldown-bot:latest .
- name: Push Docker Image - name: Push Docker Image
+5 -4
View File
@@ -1,8 +1,9 @@
{ {
"recommendations": [ "recommendations": [
"ms-python.vscode-pylance", "ms-python.vscode-pylance",
"ms-python.python", "ms-python.python",
"ms-python.debugpy", "ms-python.debugpy",
"charliermarsh.ruff" "charliermarsh.ruff",
"editorconfig.editorconfig"
] ]
} }
+14 -13
View File
@@ -1,15 +1,16 @@
{ {
// Use IntelliSense to learn about possible attributes. // Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes. // Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0", "version": "0.2.0",
"configurations": [ "configurations": [
{ {
"name": "Python: Module", "name": "Python: Module",
"type": "debugpy", "type": "debugpy",
"request": "launch", "request": "launch",
"module": "main", "module": "main",
"justMyCode": true "justMyCode": true,
} "cwd": "${workspaceFolder}/off_cooldown_bot"
] }
]
} }
+2 -5
View File
@@ -4,8 +4,5 @@
"reportArgumentType": "information", "reportArgumentType": "information",
"reportAttributeAccessIssue": "warning" "reportAttributeAccessIssue": "warning"
}, },
"cSpell.words": [ "cSpell.words": ["cakeday", "cakedays", "cooldown", "nextcord"]
"cakeday", }
"cakedays"
]
}
+4 -8
View File
@@ -3,14 +3,10 @@ FROM python:3.12.3-slim
# install uv # install uv
COPY --from=ghcr.io/astral-sh/uv:0.6.5 /uv /uvx /bin/ COPY --from=ghcr.io/astral-sh/uv:0.6.5 /uv /uvx /bin/
WORKDIR /home COPY . /off_cooldown_bot
COPY config.py config.py
COPY main.py main.py
COPY pyproject.toml pyproject.toml
COPY cogs cogs/
# Sync the project into a new environment, using the frozen lockfile
WORKDIR /off_cooldown_bot
RUN uv sync --frozen --no-dev RUN uv sync --frozen --no-dev
CMD ["uv", "run", "./main.py"] CMD ["uv", "run", "./off_cooldown_bot/main.py"]
-22
View File
@@ -1,22 +0,0 @@
"""
File contains classes defining the Hydra configuraton structure.
"""
from dataclasses import dataclass
@dataclass
class Params:
"""
Class defines the various configuration parameters.
"""
discord_token: str
@dataclass
class BotConfig:
"""
Class defines all configs required for Dakiny Bot.
"""
params: Params
+1
View File
@@ -0,0 +1 @@
"""Empty init file for off_cooldown_bot module."""
@@ -2,7 +2,7 @@
from nextcord.ext import commands from nextcord.ext import commands
from cogs.commands.birthday import BirthdayCog from .birthday import BirthdayCog
# This function will be called when this extension is loaded. # This function will be called when this extension is loaded.
@@ -3,13 +3,13 @@
from datetime import datetime from datetime import datetime
import nextcord import nextcord
from main import birthday_list
from nextcord.ext import commands from nextcord.ext import commands
from pytz import UTC from pytz import UTC
from sqlmodel import Session, col, select from sqlmodel import Session, col, select
from database.db import engine from database.db import engine
from database.models import UserBirthday from database.models import UserBirthday
from main import birthday_list
class BirthdayCog(commands.Cog, name="Birthday Commands"): class BirthdayCog(commands.Cog, name="Birthday Commands"):
@@ -2,8 +2,8 @@
from nextcord.ext import commands from nextcord.ext import commands
from cogs.loops.bot_presence import BotPresence from .bot_presence import BotPresence
from cogs.loops.daily_loop import DailyLoop from .daily_loop import DailyLoop
def setup(bot: commands.Bot) -> None: def setup(bot: commands.Bot) -> None:
@@ -3,17 +3,17 @@
from datetime import UTC, datetime, time from datetime import UTC, datetime, time
import nextcord import nextcord
from logger import ocd_logger
from main import birthday_list
from nextcord.ext import commands, tasks from nextcord.ext import commands, tasks
from pytz import timezone from pytz import timezone
from settings import settings
from sqlalchemy import select from sqlalchemy import select
from sqlalchemy.orm import Session from sqlalchemy.orm import Session
from sqlmodel import col from sqlmodel import col
from database.db import engine from database.db import engine
from database.models import UserBirthday from database.models import UserBirthday
from logger import ocd_logger
from main import birthday_list
from settings import settings
class DailyLoop(commands.Cog, name="Daily Loop"): class DailyLoop(commands.Cog, name="Daily Loop"):
@@ -1,9 +1,8 @@
"""Defines cog for on message listener.""" """Defines cog for on message listener."""
import nextcord import nextcord
from nextcord.ext import commands
from main import birthday_list from main import birthday_list
from nextcord.ext import commands
class SubmissionListener(commands.Cog, name="Message Listener"): class SubmissionListener(commands.Cog, name="Message Listener"):
@@ -7,5 +7,4 @@ from . import models # noqa: F401 - Need this import for creating the models.
url = "sqlite:///database.db" url = "sqlite:///database.db"
engine = create_engine(url) engine = create_engine(url)
# Don't need to create all when connected to prod.
SQLModel.metadata.create_all(engine) SQLModel.metadata.create_all(engine)
+1 -1
View File
@@ -1,4 +1,4 @@
"""Creates logger for Agon bot.""" """Creates logger for Off Cooldown bot."""
import logging import logging
import sys import sys
+3 -4
View File
@@ -6,9 +6,8 @@ import logging
import pathlib import pathlib
import nextcord import nextcord
from nextcord.ext import commands
from logger import ocd_logger from logger import ocd_logger
from nextcord.ext import commands
from settings import settings from settings import settings
nextcord_logger = logging.getLogger("nextcord") nextcord_logger = logging.getLogger("nextcord")
@@ -30,7 +29,7 @@ def main() -> None:
intents.message_content = True intents.message_content = True
# To enable the guilds privileged intent: # To enable the guilds privileged intent:
# intents.guilds = True # intents.guilds = True # noqa: ERA001
# To enable the members privileged intent: # To enable the members privileged intent:
intents.members = True intents.members = True
@@ -47,7 +46,7 @@ def main() -> None:
if bot.user is None: if bot.user is None:
ocd_logger.critical("Discord connection failed.") ocd_logger.critical("Discord connection failed.")
return return
ocd_logger.info(f"{bot.user.name} has connected to Discord!") ocd_logger.info("%s has connected to Discord!", bot.user.name)
# Run Discord bot # Run Discord bot
bot.run(settings.params.discord_token) bot.run(settings.params.discord_token)
@@ -35,3 +35,7 @@ class Settings(YAMLWizard):
settings = Settings.from_yaml_file(CONFIG_LOCATION) settings = Settings.from_yaml_file(CONFIG_LOCATION)
# I'm not expecting a list to be returned.
if isinstance(settings, list):
settings = settings[0]
-1
View File
@@ -6,7 +6,6 @@ authors = [{ name = "imcompiling", email = "[email protected]" }]
readme = "README.md" readme = "README.md"
dependencies = [ dependencies = [
"nextcord>=2.6.0", "nextcord>=2.6.0",
"python-dotenv>=1.0.1",
"sqlmodel>=0.0.22", "sqlmodel>=0.0.22",
"dataclass-wizard[yaml]>=0.22.3,<1.0.0", "dataclass-wizard[yaml]>=0.22.3,<1.0.0",
"pytz>=2025.1", "pytz>=2025.1",
Generated
-11
View File
@@ -306,7 +306,6 @@ source = { virtual = "." }
dependencies = [ dependencies = [
{ name = "dataclass-wizard", extra = ["yaml"] }, { name = "dataclass-wizard", extra = ["yaml"] },
{ name = "nextcord" }, { name = "nextcord" },
{ name = "python-dotenv" },
{ name = "pytz" }, { name = "pytz" },
{ name = "sqlmodel" }, { name = "sqlmodel" },
] ]
@@ -320,7 +319,6 @@ dev = [
requires-dist = [ requires-dist = [
{ name = "dataclass-wizard", extras = ["yaml"], specifier = ">=0.22.3,<1.0.0" }, { name = "dataclass-wizard", extras = ["yaml"], specifier = ">=0.22.3,<1.0.0" },
{ name = "nextcord", specifier = ">=2.6.0" }, { name = "nextcord", specifier = ">=2.6.0" },
{ name = "python-dotenv", specifier = ">=1.0.1" },
{ name = "pytz", specifier = ">=2025.1" }, { name = "pytz", specifier = ">=2025.1" },
{ name = "sqlmodel", specifier = ">=0.0.22" }, { name = "sqlmodel", specifier = ">=0.0.22" },
] ]
@@ -438,15 +436,6 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/51/b2/b2b50d5ecf21acf870190ae5d093602d95f66c9c31f9d5de6062eb329ad1/pydantic_core-2.27.2-cp313-cp313-win_arm64.whl", hash = "sha256:ac4dbfd1691affb8f48c2c13241a2e3b60ff23247cbcf981759c768b6633cf8b", size = 1885186 }, { url = "https://files.pythonhosted.org/packages/51/b2/b2b50d5ecf21acf870190ae5d093602d95f66c9c31f9d5de6062eb329ad1/pydantic_core-2.27.2-cp313-cp313-win_arm64.whl", hash = "sha256:ac4dbfd1691affb8f48c2c13241a2e3b60ff23247cbcf981759c768b6633cf8b", size = 1885186 },
] ]
[[package]]
name = "python-dotenv"
version = "1.0.1"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/bc/57/e84d88dfe0aec03b7a2d4327012c1627ab5f03652216c63d49846d7a6c58/python-dotenv-1.0.1.tar.gz", hash = "sha256:e324ee90a023d808f1959c46bcbc04446a10ced277783dc6ee09987c37ec10ca", size = 39115 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/6a/3e/b68c118422ec867fa7ab88444e1274aa40681c606d59ac27de5a5588f082/python_dotenv-1.0.1-py3-none-any.whl", hash = "sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a", size = 19863 },
]
[[package]] [[package]]
name = "pytz" name = "pytz"
version = "2025.1" version = "2025.1"