Author SHA1 Message Date
renovate-bot bb5889f7ae Update ghcr.io/astral-sh/uv Docker tag to v0.6.17
build_latest / build (push) Successful in 22s
2025-04-27 04:03:17 +00:00
renovate-bot 3c489c83e2 Update python Docker tag to v3.13.3 2025-04-13 14:14:54 +00:00
renovate-bot aeb00a107f Update ghcr.io/astral-sh/uv Docker tag to v0.6.14 2025-04-13 14:14:50 +00:00
renovate-bot c65acb094a Update ghcr.io/astral-sh/uv Docker tag to v0.6.12
build_latest / build (push) Successful in 22s
2025-04-06 04:03:39 +00:00
renovate-bot 631c42ac0b Update ghcr.io/astral-sh/uv Docker tag to v0.6.10
build_latest / build (push) Successful in 21s
2025-03-30 04:03:31 +00:00
imcompiling 7811abc33e Merge pull request 'Update actions/checkout action to v4' (#2) from renovate/actions-checkout-4.x into main
build_latest / build (push) Successful in 20s
Reviewed-on: #2
Reviewed-by: imcompiling <[email protected]>
2025-03-23 23:39:22 -04:00
imcompiling 2a01cf09ec Merge pull request 'Update python Docker tag to v3.13.2' (#1) from renovate/python-3.x into main
build_latest / build (push) Has been cancelled
Reviewed-on: #1
Reviewed-by: imcompiling <[email protected]>
2025-03-23 23:39:11 -04:00
renovate-bot 6d9325c354 Update actions/checkout action to v4 2025-03-23 04:03:22 +00:00
renovate-bot 865802eeeb Update python Docker tag to v3.13.2 2025-03-23 04:03:20 +00:00
renovate-bot 8fce10d9be Update ghcr.io/astral-sh/uv Docker tag to v0.6.9
build_latest / build (push) Successful in 22s
2025-03-23 04:03:16 +00:00
imcompiling 5c6fa4386e Correct database ignore.
build_latest / build (push) Successful in 17s
build_develop / build (push) Successful in 17s
2025-03-19 09:51:13 -04:00
imcompiling 590cb9abe4 Don't need to build latest in release workflow.
build_latest / build (push) Successful in 17s
2025-03-19 09:35:00 -04:00
imcompiling 46f518c1c4 Update uv command to not install dev dependencies and to use the already existing venv.
build_latest / build (push) Successful in 18s
2025-03-19 08:42:50 -04:00
imcompiling 30ecdab8a5 Ignore the database directory.
build_develop / build (push) Successful in 18s
build_latest / build (push) Successful in 17s
2025-03-18 22:44:21 -04:00
imcompiling 565ea73792 Convert to be more consistant like python package.
build_develop / build (push) Successful in 20s
2025-03-18 22:43:20 -04:00
imcompiling bfef75870f Change directory in dockerfile.
build_develop / build (push) Successful in 17s
2025-03-18 22:09:13 -04:00
imcompiling 56289e7038 Use home directory.
build_develop / build (push) Successful in 21s
2025-03-18 22:00:38 -04:00
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
27 changed files with 95 additions and 110 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
+2 -2
View File
@@ -13,13 +13,13 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install Docker
uses: https://github.com/papodaca/install-docker-action@v1
- name: Log into container registry
uses: docker/login-action@v2
uses: docker/login-action@v3
with:
registry: gitea.cheezers.org
username: imcompiling
+3 -3
View File
@@ -11,17 +11,17 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install Docker
uses: https://github.com/papodaca/install-docker-action@v1
- name: Log into container registry
uses: docker/login-action@v2
uses: docker/login-action@v3
with:
registry: gitea.cheezers.org
username: imcompiling
password: $${{ secrets.PASSWORD }}
password: ${{ secrets.PASSWORD }}
- name: Build Docker Image
run: docker build -t gitea.cheezers.org/imcompiling/off-cooldown-bot:latest .
- name: Push Docker Image
+2 -4
View File
@@ -23,8 +23,6 @@ jobs:
- name: Set env
run: echo "GIT_TAG=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
- name: Build Docker Images
run: docker build -t gitea.cheezers.org/imcompiling/off-cooldown-bot:latest -t gitea.cheezers.org/imcompiling/off-cooldown-bot:${{env.GIT_TAG}} .
- name: Push Latest Image
run: docker push gitea.cheezers.org/imcompiling/off-cooldown-bot:latest
run: docker build -t gitea.cheezers.org/imcompiling/off-cooldown-bot:${{env.GIT_TAG}} .
- name: Push Tagged Image
run: docker push gitea.cheezers.org/imcompiling/off-cooldown-bot:${{env.GIT_TAG}}
run: docker push gitea.cheezers.org/imcompiling/off-cooldown-bot:${{env.GIT_TAG}}
+1 -1
View File
@@ -129,4 +129,4 @@ dmypy.json
nextcord.log
outputs/
database.db
/database
+5 -4
View File
@@ -1,8 +1,9 @@
{
"recommendations": [
"ms-python.vscode-pylance",
"ms-python.python",
"ms-python.debugpy",
"charliermarsh.ruff"
"ms-python.vscode-pylance",
"ms-python.python",
"ms-python.debugpy",
"charliermarsh.ruff",
"editorconfig.editorconfig"
]
}
+14 -14
View File
@@ -1,15 +1,15 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python: Module",
"type": "debugpy",
"request": "launch",
"module": "main",
"justMyCode": true
}
]
}
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python: Module",
"type": "debugpy",
"request": "launch",
"module": "off_cooldown_bot",
"justMyCode": true,
}
]
}
+2 -5
View File
@@ -4,8 +4,5 @@
"reportArgumentType": "information",
"reportAttributeAccessIssue": "warning"
},
"cSpell.words": [
"cakeday",
"cakedays"
]
}
"cSpell.words": ["cakeday", "cakedays", "cooldown", "nextcord"]
}
+6 -10
View File
@@ -1,16 +1,12 @@
FROM python:3.12.3-slim
FROM python:3.13.3-slim
# install uv
COPY --from=ghcr.io/astral-sh/uv:0.6.5 /uv /uvx /bin/
COPY --from=ghcr.io/astral-sh/uv:0.6.17 /uv /uvx /bin/
COPY . /home
# Sync the project into a new environment, using the frozen lockfile
WORKDIR /home
COPY config.py config.py
COPY main.py main.py
COPY pyproject.toml pyproject.toml
COPY cogs cogs/
RUN uv sync --frozen --no-dev
CMD ["uv", "run", "./main.py"]
CMD ["uv", "run", "--frozen", "--no-dev", "-m", "off_cooldown_bot"]
-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."""
+14
View File
@@ -0,0 +1,14 @@
"""Starts the app for off_cooldown_bot."""
import logging
from .app import run
nextcord_logger = logging.getLogger("nextcord")
nextcord_logger.setLevel(logging.DEBUG)
nextcord_handler = logging.FileHandler(filename="nextcord.log", encoding="utf-8", mode="w")
nextcord_handler.setFormatter(logging.Formatter("%(asctime)s:%(levelname)s:%(name)s: %(message)s"))
nextcord_logger.addHandler(nextcord_handler)
if __name__ == "__main__":
run()
+7 -18
View File
@@ -2,25 +2,18 @@
from __future__ import annotations
import logging
import pathlib
import nextcord
from nextcord.ext import commands
from logger import ocd_logger
from settings import settings
nextcord_logger = logging.getLogger("nextcord")
nextcord_logger.setLevel(logging.DEBUG)
nextcord_handler = logging.FileHandler(filename="nextcord.log", encoding="utf-8", mode="w")
nextcord_handler.setFormatter(logging.Formatter("%(asctime)s:%(levelname)s:%(name)s: %(message)s"))
nextcord_logger.addHandler(nextcord_handler)
from .logger import ocd_logger
from .settings import settings
birthday_list: list[int] = []
def main() -> None:
def run() -> None:
"""Set config, intents, then connects the bot to discord."""
# Allows privileged intents for monitoring members joining, roles editing, and role assignments
# These need to be enabled in the developer portal as well
@@ -30,7 +23,7 @@ def main() -> None:
intents.message_content = True
# To enable the guilds privileged intent:
# intents.guilds = True
# intents.guilds = True # noqa: ERA001
# To enable the members privileged intent:
intents.members = True
@@ -38,8 +31,8 @@ def main() -> None:
bot = commands.Bot(intents=intents)
# Get the modules of all cogs whose directory structure is ./cogs/<module_name>
for folder in pathlib.Path("cogs").iterdir():
bot.load_extension(f"cogs.{folder.name}")
for folder in pathlib.Path("./off_cooldown_bot/cogs").iterdir():
bot.load_extension(f"off_cooldown_bot.cogs.{folder.name}")
@bot.listen()
async def on_ready() -> None:
@@ -47,11 +40,7 @@ def main() -> None:
if bot.user is None:
ocd_logger.critical("Discord connection failed.")
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
bot.run(settings.params.discord_token)
if __name__ == "__main__":
main()
@@ -2,7 +2,7 @@
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.
@@ -7,9 +7,9 @@ from nextcord.ext import commands
from pytz import UTC
from sqlmodel import Session, col, select
from database.db import engine
from database.models import UserBirthday
from main import birthday_list
from off_cooldown_bot.app import birthday_list
from off_cooldown_bot.database.db import engine
from off_cooldown_bot.database.models import UserBirthday
class BirthdayCog(commands.Cog, name="Birthday Commands"):
@@ -2,8 +2,8 @@
from nextcord.ext import commands
from cogs.loops.bot_presence import BotPresence
from cogs.loops.daily_loop import DailyLoop
from .bot_presence import BotPresence
from .daily_loop import DailyLoop
def setup(bot: commands.Bot) -> None:
@@ -9,11 +9,11 @@ from sqlalchemy import select
from sqlalchemy.orm import Session
from sqlmodel import col
from database.db import engine
from database.models import UserBirthday
from logger import ocd_logger
from main import birthday_list
from settings import settings
from off_cooldown_bot.app import birthday_list
from off_cooldown_bot.database.db import engine
from off_cooldown_bot.database.models import UserBirthday
from off_cooldown_bot.logger import ocd_logger
from off_cooldown_bot.settings import settings
class DailyLoop(commands.Cog, name="Daily Loop"):
@@ -3,7 +3,7 @@
import nextcord
from nextcord.ext import commands
from main import birthday_list
from off_cooldown_bot.app import birthday_list
class SubmissionListener(commands.Cog, name="Message Listener"):
@@ -4,8 +4,7 @@ from sqlmodel import SQLModel, create_engine
from . import models # noqa: F401 - Need this import for creating the models.
url = "sqlite:///database.db"
url = "sqlite:///database/database.db"
engine = create_engine(url)
# Don't need to create all when connected to prod.
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 sys
@@ -35,3 +35,7 @@ class Settings(YAMLWizard):
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"
dependencies = [
"nextcord>=2.6.0",
"python-dotenv>=1.0.1",
"sqlmodel>=0.0.22",
"dataclass-wizard[yaml]>=0.22.3,<1.0.0",
"pytz>=2025.1",
Generated
-11
View File
@@ -306,7 +306,6 @@ source = { virtual = "." }
dependencies = [
{ name = "dataclass-wizard", extra = ["yaml"] },
{ name = "nextcord" },
{ name = "python-dotenv" },
{ name = "pytz" },
{ name = "sqlmodel" },
]
@@ -320,7 +319,6 @@ dev = [
requires-dist = [
{ name = "dataclass-wizard", extras = ["yaml"], specifier = ">=0.22.3,<1.0.0" },
{ name = "nextcord", specifier = ">=2.6.0" },
{ name = "python-dotenv", specifier = ">=1.0.1" },
{ name = "pytz", specifier = ">=2025.1" },
{ 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 },
]
[[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]]
name = "pytz"
version = "2025.1"