Broke edit clan message to own function to allow for usage in other places.
This commit is contained in:
@@ -397,11 +397,10 @@ async def update_clan_messages(guild: nextcord.Guild):
|
|||||||
Updates all clan messages to contents in MESSAGES_DIR.
|
Updates all clan messages to contents in MESSAGES_DIR.
|
||||||
Does not to any git work. Is expected to be called after git is pulled.
|
Does not to any git work. Is expected to be called after git is pulled.
|
||||||
|
|
||||||
for ever directory, sort the files by number then post
|
for ever directory, sort the files by number then edits/sends the message.
|
||||||
posting involves checking if there is a message for that particular file then editing it or creating a
|
|
||||||
new one. the message could be deleted, which would cause a new message to be sent and database updated.
|
|
||||||
|
|
||||||
Channel fetching/management is handled by another function.
|
Channel fetching/management is handled by another function.
|
||||||
|
Message editing and sending is handled by another function.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
guild (nextcord.Guild): Guild object that all channels and messages belong to.
|
guild (nextcord.Guild): Guild object that all channels and messages belong to.
|
||||||
@@ -426,27 +425,9 @@ async def update_clan_messages(guild: nextcord.Guild):
|
|||||||
message_name = f"{dir_name}/{file_name}"
|
message_name = f"{dir_name}/{file_name}"
|
||||||
file_path = f"{dir_path}/{file_name}"
|
file_path = f"{dir_path}/{file_name}"
|
||||||
with open(file_path, "r", encoding="utf8") as reader:
|
with open(file_path, "r", encoding="utf8") as reader:
|
||||||
stmt = select(Messages.Id).where(Messages.Path == message_name)
|
await edit_clan_message(
|
||||||
msg_id = session.scalar(stmt)
|
session, channel, message_name, reader.read(2000)
|
||||||
if msg_id is None:
|
|
||||||
# don't have a message for this file
|
|
||||||
msg = await channel.send(reader.read(2000))
|
|
||||||
new_message = Messages(Path=message_name, Id=msg.id)
|
|
||||||
session.add(new_message)
|
|
||||||
session.commit()
|
|
||||||
else:
|
|
||||||
try:
|
|
||||||
msg: nextcord.Message = await channel.fetch_message(msg_id)
|
|
||||||
await msg.edit(reader.read(2000))
|
|
||||||
except nextcord.NotFound:
|
|
||||||
msg = await channel.send(reader.read(2000))
|
|
||||||
stmt = (
|
|
||||||
update(Messages)
|
|
||||||
.where(Messages.Path == message_name)
|
|
||||||
.values(Id=msg.id)
|
|
||||||
)
|
)
|
||||||
session.execute(stmt)
|
|
||||||
session.commit()
|
|
||||||
|
|
||||||
|
|
||||||
async def get_clan_message_channel(
|
async def get_clan_message_channel(
|
||||||
@@ -508,3 +489,41 @@ async def get_clan_message_channel(
|
|||||||
session.execute(stmt)
|
session.execute(stmt)
|
||||||
session.commit()
|
session.commit()
|
||||||
return ret_channel
|
return ret_channel
|
||||||
|
|
||||||
|
|
||||||
|
async def edit_clan_message(
|
||||||
|
session: Session,
|
||||||
|
channel: nextcord.TextChannel,
|
||||||
|
message_name: str,
|
||||||
|
message_content: str,
|
||||||
|
):
|
||||||
|
"""
|
||||||
|
Obtains a message id from database. If no id, then need to send a new message and record the id.
|
||||||
|
If there is a message, then edit the message. If that message is not found in discord, then need to
|
||||||
|
send a new message and record the id in the database.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
session (Session): Open connection to database.
|
||||||
|
channel (nextcord.TextChannel): Channel object that message belongs to.
|
||||||
|
message_name (str): Name of the message. Corresponds to the file that contains message content.
|
||||||
|
message_content (str): Content of the message to edit/send.
|
||||||
|
"""
|
||||||
|
stmt = select(Messages.Id).where(Messages.Path == message_name)
|
||||||
|
msg_id = session.scalar(stmt)
|
||||||
|
if msg_id is None:
|
||||||
|
# don't have a message for this file
|
||||||
|
msg = await channel.send(message_content)
|
||||||
|
new_message = Messages(Path=message_name, Id=msg.id)
|
||||||
|
session.add(new_message)
|
||||||
|
session.commit()
|
||||||
|
else:
|
||||||
|
try:
|
||||||
|
msg: nextcord.Message = await channel.fetch_message(msg_id)
|
||||||
|
await msg.edit(message_content)
|
||||||
|
except nextcord.NotFound:
|
||||||
|
msg = await channel.send(message_content)
|
||||||
|
stmt = (
|
||||||
|
update(Messages).where(Messages.Path == message_name).values(Id=msg.id)
|
||||||
|
)
|
||||||
|
session.execute(stmt)
|
||||||
|
session.commit()
|
||||||
|
|||||||
Reference in New Issue
Block a user