Skip to content

Commit

Permalink
fix bugs with message queue
Browse files Browse the repository at this point in the history
  • Loading branch information
Deutscher775 committed Feb 25, 2025
1 parent f580968 commit 33f71ec
Show file tree
Hide file tree
Showing 4 changed files with 54 additions and 35 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,4 @@ src/astroidapi/test.py
/src/healtcheck_summaries
src/astroidapi/test.py
src/runtest.py
src/astroidapi/upd_surrealdb_handler.py
6 changes: 5 additions & 1 deletion src/astroidapi/queue_processor.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,11 @@ async def sendMessage(cls, endpoint):
else:
raise Exception("Unknown error in sendMessage while processing queue. Queue length is unsupported type or negative.")
except:
await surrealdb_handler.QueueHandler.remove_from_queue(endpoint, message)
try:
await surrealdb_handler.QueueHandler.remove_from_queue(endpoint, message)
await cls.clearLoadedMessage(endpoint, message)
except:
await surrealdb_handler.QueueHandler.clear_queue(endpoint)
raise Exception("Error in sendMessage while processing queue.")


Expand Down
77 changes: 44 additions & 33 deletions src/astroidapi/sending_handler.py
Original file line number Diff line number Diff line change
Expand Up @@ -117,14 +117,17 @@ async def send_to_discord(cls, updated_json, endpoint, attachments: list = None)
try:
read_discord = await read_handler.ReadHandler.check_read(endpoint, "discord")
if read_discord is False:
if updated_json["meta"]["sender-channel"] in updated_json["config"]["channels"]["guilded"]:
webhook = updated_json["config"]["webhooks"]["discord"][updated_json["config"]["channels"]["guilded"].index(updated_json["meta"]["sender-channel"])]
elif updated_json["meta"]["sender-channel"] in updated_json["config"]["channels"]["nerimity"]:
webhook = updated_json["config"]["webhooks"]["discord"][updated_json["config"]["channels"]["nerimity"].index(updated_json["meta"]["sender-channel"])]
elif updated_json["meta"]["sender-channel"] in updated_json["config"]["channels"]["revolt"]:
webhook = updated_json["config"]["webhooks"]["discord"][updated_json["config"]["channels"]["revolt"].index(updated_json["meta"]["sender-channel"])]
else:
raise errors.SendingError.ChannelNotFound(f'The channel {updated_json["meta"]["sender-channel"]} ({updated_json["meta"]["sender"]}) does not seem to be a registered channel on other platforms.')
try:
if updated_json["meta"]["sender-channel"] in updated_json["config"]["channels"]["guilded"]:
webhook = updated_json["config"]["webhooks"]["discord"][updated_json["config"]["channels"]["guilded"].index(updated_json["meta"]["sender-channel"])]
elif updated_json["meta"]["sender-channel"] in updated_json["config"]["channels"]["nerimity"]:
webhook = updated_json["config"]["webhooks"]["discord"][updated_json["config"]["channels"]["nerimity"].index(updated_json["meta"]["sender-channel"])]
elif updated_json["meta"]["sender-channel"] in updated_json["config"]["channels"]["revolt"]:
webhook = updated_json["config"]["webhooks"]["discord"][updated_json["config"]["channels"]["revolt"].index(updated_json["meta"]["sender-channel"])]
else:
raise errors.SendingError.ChannelNotFound(f'The channel {updated_json["meta"]["sender-channel"]} ({updated_json["meta"]["sender"]}) does not seem to be a registered channel on other platforms.')
except KeyError:
return True
nextcord_files = []
if attachments is not None:
for attachment in attachments:
Expand Down Expand Up @@ -164,14 +167,17 @@ async def send_to_guilded(cls, updated_json, endpoint, attachments: list = None)
try:
read_guilded = await read_handler.ReadHandler.check_read(endpoint, "guilded")
if read_guilded is False:
if updated_json["meta"]["sender-channel"] in updated_json["config"]["channels"]["discord"]:
webhook = updated_json["config"]["webhooks"]["guilded"][updated_json["config"]["channels"]["discord"].index(updated_json["meta"]["sender-channel"])]
elif updated_json["meta"]["sender-channel"] in updated_json["config"]["channels"]["nerimity"]:
webhook = updated_json["config"]["webhooks"]["guilded"][updated_json["config"]["channels"]["nerimity"].index(updated_json["meta"]["sender-channel"])]
elif updated_json["meta"]["sender-channel"] in updated_json["config"]["channels"]["revolt"]:
webhook = updated_json["config"]["webhooks"]["guilded"][updated_json["config"]["channels"]["revolt"].index(updated_json["meta"]["sender-channel"])]
else:
raise errors.SendingError.ChannelNotFound(f'The channel {updated_json["meta"]["sender-channel"]} ({updated_json["meta"]["sender"]}) does not seem to be a registered channel on other platforms.')
try:
if updated_json["meta"]["sender-channel"] in updated_json["config"]["channels"]["discord"]:
webhook = updated_json["config"]["webhooks"]["guilded"][updated_json["config"]["channels"]["discord"].index(updated_json["meta"]["sender-channel"])]
elif updated_json["meta"]["sender-channel"] in updated_json["config"]["channels"]["nerimity"]:
webhook = updated_json["config"]["webhooks"]["guilded"][updated_json["config"]["channels"]["nerimity"].index(updated_json["meta"]["sender-channel"])]
elif updated_json["meta"]["sender-channel"] in updated_json["config"]["channels"]["revolt"]:
webhook = updated_json["config"]["webhooks"]["guilded"][updated_json["config"]["channels"]["revolt"].index(updated_json["meta"]["sender-channel"])]
else:
raise errors.SendingError.ChannelNotFound(f'The channel {updated_json["meta"]["sender-channel"]} ({updated_json["meta"]["sender"]}) does not seem to be a registered channel on other platforms.')
except KeyError:
return True
guilded_files = []
if attachments is not None:
for attachment in attachments:
Expand Down Expand Up @@ -221,14 +227,17 @@ async def send_to_nerimity(cls, updated_json, endpoint, attachments: list = None
response_json = updated_json
sender_channel = response_json["meta"]["sender-channel"]
discord_channels = response_json["config"]["channels"]["discord"]
if sender_channel in discord_channels:
channel_id = response_json["config"]["channels"]["nerimity"][discord_channels.index(sender_channel)]
elif sender_channel in response_json["config"]["channels"]["guilded"]:
channel_id = response_json["config"]["channels"]["nerimity"][response_json["config"]["channels"]["guilded"].index(sender_channel)]
elif sender_channel in response_json["config"]["channels"]["revolt"]:
channel_id = response_json["config"]["channels"]["nerimity"][response_json["config"]["channels"]["revolt"].index(sender_channel)]
else:
raise errors.SendingError.ChannelNotFound(f'The channel {sender_channel} ({updated_json["meta"]["sender"]}) does not seem to be a registered channel on other platforms.')
try:
if sender_channel in discord_channels:
channel_id = response_json["config"]["channels"]["nerimity"][discord_channels.index(sender_channel)]
elif sender_channel in response_json["config"]["channels"]["guilded"]:
channel_id = response_json["config"]["channels"]["nerimity"][response_json["config"]["channels"]["guilded"].index(sender_channel)]
elif sender_channel in response_json["config"]["channels"]["revolt"]:
channel_id = response_json["config"]["channels"]["nerimity"][response_json["config"]["channels"]["revolt"].index(sender_channel)]
else:
raise errors.SendingError.ChannelNotFound(f'The channel {sender_channel} ({updated_json["meta"]["sender"]}) does not seem to be a registered channel on other platforms.')
except KeyError:
return True
message_author_name = response_json["meta"]["message"]["author"]["name"]
message_content = response_json["meta"]["message"]["content"]
message_content = await emoji_handler.convert_message(message_content, updated_json["meta"]["sender"], "nerimity", endpoint)
Expand Down Expand Up @@ -290,15 +299,17 @@ async def send_to_nerimity(cls, updated_json, endpoint, attachments: list = None
@classmethod
async def send_to_revolt(cls, updated_json, endpoint, attachments: list = None):
if updated_json["meta"]["read"]["revolt"] is False:
if updated_json["meta"]["sender-channel"] in updated_json["config"]["channels"]["discord"]:
channel_id = updated_json["config"]["channels"]["revolt"][updated_json["config"]["channels"]["discord"].index(updated_json["meta"]["sender-channel"])]
elif updated_json["meta"]["sender-channel"] in updated_json["config"]["channels"]["guilded"]:
channel_id = updated_json["config"]["channels"]["revolt"][updated_json["config"]["channels"]["guilded"].index(updated_json["meta"]["sender-channel"])]
elif updated_json["meta"]["sender-channel"] in updated_json["config"]["channels"]["nerimity"]:
channel_id = updated_json["config"]["channels"]["revolt"][updated_json["config"]["channels"]["nerimity"].index(updated_json["meta"]["sender-channel"])]
else:
raise errors.SendingError.ChannelNotFound(f"The channel {updated_json["meta"]["sender-channel"]} ({updated_json["meta"]["sender"]}) does not seem to be a registered channel on other platforms.")

try:
if updated_json["meta"]["sender-channel"] in updated_json["config"]["channels"]["discord"]:
channel_id = updated_json["config"]["channels"]["revolt"][updated_json["config"]["channels"]["discord"].index(updated_json["meta"]["sender-channel"])]
elif updated_json["meta"]["sender-channel"] in updated_json["config"]["channels"]["guilded"]:
channel_id = updated_json["config"]["channels"]["revolt"][updated_json["config"]["channels"]["guilded"].index(updated_json["meta"]["sender-channel"])]
elif updated_json["meta"]["sender-channel"] in updated_json["config"]["channels"]["nerimity"]:
channel_id = updated_json["config"]["channels"]["revolt"][updated_json["config"]["channels"]["nerimity"].index(updated_json["meta"]["sender-channel"])]
else:
raise errors.SendingError.ChannelNotFound(f"The channel {updated_json["meta"]["sender-channel"]} ({updated_json["meta"]["sender"]}) does not seem to be a registered channel on other platforms.")
except KeyError:
return True
headers = {
"X-Bot-Token": f"{config.REVOLT_TOKEN}"
}
Expand Down
5 changes: 4 additions & 1 deletion src/astroidapi/surrealdb_handler.py
Original file line number Diff line number Diff line change
Expand Up @@ -243,7 +243,10 @@ async def remove_from_queue(cls, endpoint: int, message: dict):
await db.signin({"user": config.SDB_USER, "pass": config.SDB_PASS})
await db.use(config.SDB_NAMESPACE, config.SDB_DATABASE)
data = await db.select(f"endpoints:`{endpoint}`")
data["meta"]["_message_cache"].remove(message)
try:
data["meta"]["_message_cache"].remove(message)
except ValueError:
return await db.select(f"endpoints:`{endpoint}`")
if data["meta"]["_message_cache"] is None:
await db.query(f"UPDATE endpoints:`{endpoint}` SET meta._message_cache = []")
return await db.select(f"endpoints:`{endpoint}`")
Expand Down

0 comments on commit 33f71ec

Please sign in to comment.