Compare commits
6
Commits
6a67804937
...
v2.1.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
eb6a8c7479 | ||
|
|
58b230afe6 | ||
|
|
fb8dfef55e | ||
|
|
487d174b6d | ||
|
|
abb50d71b4 | ||
|
|
7409e2fd2d |
Vendored
+4
-1
@@ -9,7 +9,10 @@
|
||||
"type": "debugpy",
|
||||
"request": "launch",
|
||||
"module": "dakiny_bot",
|
||||
"justMyCode": true
|
||||
"justMyCode": true,
|
||||
"env": {
|
||||
"DEBUG": "true"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -6,10 +6,12 @@ from typing import TYPE_CHECKING
|
||||
import uvicorn
|
||||
from fastapi import FastAPI
|
||||
from git import Repo
|
||||
from git.exc import GitCommandError
|
||||
from nextcord.ext import commands
|
||||
|
||||
from dakiny_bot.classes.gitea_webhook import GiteaWebhook
|
||||
from dakiny_bot.DakinySettings import settings
|
||||
from dakiny_bot.logger import dakiny_logger
|
||||
from dakiny_bot.utils import REPO_DIR, edit_clan_council_info, update_clan_messages
|
||||
|
||||
if TYPE_CHECKING:
|
||||
@@ -55,7 +57,12 @@ class ClanMessages(commands.Cog, name="Clan Messages"):
|
||||
template_updates = {file.split("/")[1] for file in modified_files if "message_templates" in file}
|
||||
channel_updates = {file.split("/")[1] for file in modified_files if file.split("/")[1] not in template_updates}
|
||||
|
||||
self.origin.pull()
|
||||
try:
|
||||
self.origin.pull()
|
||||
except GitCommandError:
|
||||
# I think the git connection timed out. Get a new one.
|
||||
dakiny_logger.info("Refreshing git connection.")
|
||||
self.repo_setup()
|
||||
guild: nextcord.Guild = self.bot.get_guild(settings.params.guild_id)
|
||||
|
||||
await update_clan_messages(guild, channel_updates)
|
||||
|
||||
@@ -4,6 +4,7 @@ import nextcord
|
||||
from nextcord.ext import application_checks, commands
|
||||
|
||||
from dakiny_bot.classes.election import Election
|
||||
from dakiny_bot.cogs.loops import daily_loop
|
||||
from dakiny_bot.DakinySettings import settings
|
||||
from dakiny_bot.utils import GUILDS, get_active_election_cycle, get_quarter_name
|
||||
|
||||
@@ -119,11 +120,8 @@ class TestCog(commands.Cog, name="Test commands."):
|
||||
Args:
|
||||
interaction (nextcord.Interaction): Interaction with the message.
|
||||
"""
|
||||
cycle = Election(
|
||||
get_active_election_cycle(),
|
||||
self.bot.get_guild(settings.params.guild_id),
|
||||
)
|
||||
await cycle.check_date()
|
||||
dl = daily_loop.DailyLoop(self.bot)
|
||||
await dl.daily_loop()
|
||||
await interaction.send("Test command sent.", ephemeral=True)
|
||||
|
||||
@test.subcommand()
|
||||
|
||||
@@ -44,10 +44,10 @@ class DailyLoop(commands.Cog, name="Daily Loop"):
|
||||
an active election, runs the check_date() function for the election to perform actions. Finally checks if the
|
||||
election is over to delete the current election object.
|
||||
"""
|
||||
dakiny_logger.debug("Daily loop.")
|
||||
dakiny_logger.debug("Daily loop. Current election: %s.", self.current_election)
|
||||
if self.current_election is None:
|
||||
self.current_election = self.get_election()
|
||||
dakiny_logger.debug("Current election: %s", self.current_election)
|
||||
dakiny_logger.debug("Current election: %s.", self.current_election)
|
||||
|
||||
if self.current_election is not None:
|
||||
await self.current_election.check_date()
|
||||
@@ -81,9 +81,11 @@ class DailyLoop(commands.Cog, name="Daily Loop"):
|
||||
Election: Current election cycle, None if there is no election happening.
|
||||
"""
|
||||
cycle = get_active_election_cycle()
|
||||
dakiny_logger.debug("Current cycle: %s.", cycle)
|
||||
|
||||
# prevent exception from using cycle as an Int in an array
|
||||
if cycle is None:
|
||||
dakiny_logger.info("Cycle was None. Returning without an election.")
|
||||
return None
|
||||
|
||||
election = Election(cycle, self.bot.get_guild(settings.params.guild_id))
|
||||
|
||||
@@ -7,5 +7,7 @@ import sys
|
||||
dakiny_logger = logging.getLogger("default")
|
||||
dakiny_logger.setLevel(logging.DEBUG if os.getenv("DEBUG") == "true" else logging.INFO)
|
||||
handler = logging.StreamHandler(sys.stdout)
|
||||
handler.setFormatter(logging.Formatter("%(asctime)s:%(levelname)s:%(name)s: %(message)s"))
|
||||
handler.setFormatter(
|
||||
logging.Formatter("%(asctime)s:%(levelname)s [%(filename)s:%(lineno)s - %(funcName)20s() ] %(message)s")
|
||||
)
|
||||
dakiny_logger.addHandler(handler)
|
||||
|
||||
+8
-6
@@ -35,20 +35,20 @@ VoteType = StrEnum("VoteType", ["COUNCIL", "DISCORDMANAGER", "CLANLEADER"])
|
||||
PointType = StrEnum("PointType", ["CLAN", "EVENT"])
|
||||
|
||||
|
||||
def get_datetime(day: str) -> datetime:
|
||||
def get_datetime(month_day: str) -> datetime:
|
||||
"""
|
||||
Takes in a string month and day and returns a datetime object of that Month/Day this year.
|
||||
|
||||
Args:
|
||||
day (str): Month/Day in that format.
|
||||
month_day (str): Month/Day in that format.
|
||||
|
||||
Returns:
|
||||
datetime: Datetime representation of Month/Day.
|
||||
"""
|
||||
today = datetime.now(tz=UTC).date()
|
||||
year = today.year
|
||||
month = int(day.split("/")[0])
|
||||
day = int(day.split("/")[1])
|
||||
month = int(month_day.split("/")[0])
|
||||
day = int(month_day.split("/")[1])
|
||||
|
||||
# ensure that year rolls over if current month is December and the next month is less than 12.
|
||||
if today.month == calendar.DECEMBER and month < calendar.OCTOBER:
|
||||
@@ -56,8 +56,10 @@ def get_datetime(day: str) -> datetime:
|
||||
|
||||
if today.month == calendar.JANUARY and month > calendar.MARCH:
|
||||
year -= 1
|
||||
|
||||
return datetime(year, month, day, tzinfo=UTC)
|
||||
try:
|
||||
return datetime(year, month, day, tzinfo=UTC)
|
||||
except ValueError:
|
||||
dakiny_logger.warning("Invalid month day: %s.", month_day)
|
||||
|
||||
|
||||
def get_election_name() -> str:
|
||||
|
||||
Reference in New Issue
Block a user