Compare commits

...
9 Commits
Author SHA1 Message Date
imcompiling d56251c0b9 Do not ping a user on their cakeday.
build_release / build (push) Successful in 17s
build_latest / build (push) Successful in 1m45s
2025-02-04 22:49:53 -05:00
imcompiling 667a600ec6 Add poetry lock file. 2025-02-04 22:46:51 -05:00
imcompiling 03a94ca6dd Turn on lockFileMaintenance for renovatebot. 2025-02-04 22:45:14 -05:00
imcompiling 9da598e4d9 Add renovatebot json config.
build_latest / build (push) Successful in 2m3s
2025-02-04 17:35:11 -05:00
imcompiling 3a280696ca Need to install specific poetry version, export gets removed in v2.
build_latest / build (push) Successful in 1m41s
build_release / build (push) Successful in 19s
2025-01-19 18:35:38 -05:00
imcompiling 8825afdb46 Missed removing a parameter from buiild_votes_str().
build_latest / build (push) Failing after 29s
build_release / build (push) Failing after 29s
2025-01-19 18:19:51 -05:00
imcompiling 6fc91e0708 dakiny-bot#83 fix the view points bug when someone isn't in the guild anymore.
build_latest / build (push) Successful in 1m36s
build_release / build (push) Successful in 18s
build_develop / build (push) Successful in 23s
2024-12-22 22:21:01 -05:00
imcompiling 95cfcca600 Issue #79, add a 2 hour timeout to event submission.
build_latest / build (push) Successful in 1m27s
build_release / build (push) Successful in 22s
2024-12-22 17:11:54 -05:00
imcompiling 0419c9dfd6 Add auto complete for view clan points command.
build_latest / build (push) Successful in 1m30s
2024-12-22 16:51:10 -05:00
10 changed files with 2063 additions and 11 deletions
-1
View File
@@ -105,7 +105,6 @@ venv/
ENV/
env.bak/
venv.bak/
poetry.lock
# Spyder project settings
.spyderproject
+2
View File
@@ -3,6 +3,8 @@
"aiofiles",
"autofilled",
"blurple",
"CAKEDAY",
"cakedays",
"CLANLEADER",
"Dakiny",
"DISCORDMANAGER",
+1 -1
View File
@@ -14,6 +14,6 @@ COPY classes classes/
COPY cogs cogs/
COPY database_setup database_setup/
RUN pip install --upgrade pip && pip install poetry && poetry export -f requirements.txt --output requirements.txt && pip install -r requirements.txt
RUN pip install --upgrade pip && pip install poetry==1.8.3 && poetry export -f requirements.txt --output requirements.txt && pip install -r requirements.txt
CMD ["python3", "-u", "./main.py"]
+1 -1
View File
@@ -200,7 +200,7 @@ class Election:
election_thread: nextcord.Thread = self.guild.get_thread(self.get_election_info().ThreadId)
await election_thread.send(message)
vote_msg = await election_thread.send(
build_votes_str(settings, self.guild),
build_votes_str(self.guild),
view=VoteView(self.guild),
)
+1 -1
View File
@@ -66,7 +66,7 @@ class VoteSelect(nextcord.ui.StringSelect):
session.execute(stmt)
session.commit()
vote_message_str = build_votes_str(settings, interaction.guild)
vote_message_str = build_votes_str(interaction.guild)
vote_msg: nextcord.Message = await interaction.channel.fetch_message(vote_msg_id)
await vote_msg.edit(content=vote_message_str)
+1 -1
View File
@@ -154,7 +154,7 @@ class EventView(nextcord.ui.View):
"""
def __init__(self, name: str, host_id: int):
super().__init__()
super().__init__(timeout=60 * 60 * 2) # timeout 2 hours
self.name: str = name
self.host_id: int = host_id
+24 -5
View File
@@ -215,6 +215,7 @@ class ViewCog(commands.Cog, name="View Commands"):
await interaction.response.send_autocomplete(autofilled_elections[:25])
@event_points.on_autocomplete("quarter_name")
@clan_points.on_autocomplete("quarter_name")
async def event_points_autocomplete(self, interaction: nextcord.Interaction, quarter_name: str) -> None:
"""
Collects all elections that start with the election string.
@@ -263,16 +264,34 @@ def create_points_string(interaction: nextcord.Interaction, quarters: any, point
sorted_non_members = None
sorted_members = members.sort_values(
by="UserId",
key=lambda user_ids: (
[interaction.guild.get_member(int(user_id)).display_name.lower() for user_id in user_ids]
),
key=lambda user_ids: ([member_lambda_string(interaction.guild, user_id) for user_id in user_ids]),
)
sorted_all = pd.concat([sorted_members, sorted_non_members], ignore_index=True, sort=False)
for row in sorted_all.itertuples():
userid = row.UserId
points = row.EventPoints if point_type == PointType.EVENT else row.ClanPoints
discord_member = row.DiscordMember
if points > 0:
content += f"<@{userid}>: {points}\n" if discord_member else f"{userid}: {points}\n"
content += f"<@{row.UserId}>: {points}\n" if discord_member else f"{row.UserId}: {points}\n"
content += "\n"
return content
def member_lambda_string(guild: nextcord.Guild, user_id: int) -> str:
"""
Finds a user in a guild and returns the display name.
Returns the user id in string form if user is no longer in guild.
I don't know if I like this name very much.
Args:
guild (nextcord.Guild): Guild object to find the user in.
user_id (int): User id to get display name of.
Returns:
str: String to use for sorting.
"""
try:
return guild.get_member(int(user_id)).display_name.lower()
except AttributeError:
# The user is no longer a part of the guild
return str(user_id)
+7 -1
View File
@@ -20,6 +20,8 @@ if TYPE_CHECKING:
KANDY = 239547993106284544
IGNORE_CAKEDAY = [266378407682506754]
class DailyLoop(commands.Cog, name="Daily Loop"):
"""Class for performing daily functions."""
@@ -112,7 +114,11 @@ class DailyLoop(commands.Cog, name="Daily Loop"):
announce_channel: nextcord.TextChannel = guild.get_channel(settings.channel_ids.general)
cakedays: list[nextcord.Member] = [
human for human in guild.humans if human.joined_at.month == today.month and human.joined_at.day == today.day
human
for human in guild.humans
if human.joined_at.month == today.month
and human.joined_at.day == today.day
and human.id not in IGNORE_CAKEDAY
]
for member in cakedays:
Generated
+2006
View File
File diff suppressed because it is too large Load Diff
+20
View File
@@ -0,0 +1,20 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"lockFileMaintenance": {
"automerge": true,
"enabled": true
},
"minor": {
"automerge": true,
"automergeType": "branch"
},
"patch": {
"automerge": true,
"automergeType": "branch"
},
"pin": {
"automerge": true,
"automergeType": "branch"
},
"ignoreTests": true
}