Added some comments and help

This commit is contained in:
Frisk 2021-01-16 15:14:06 +01:00
parent 4025f15e1a
commit 4e1aad4025
No known key found for this signature in database
GPG key ID: 213F7C15068AF8AC
2 changed files with 17 additions and 13 deletions

View file

@ -112,7 +112,7 @@ class RcQueue:
shutdown(asyncio.get_event_loop()) shutdown(asyncio.get_event_loop())
else: else:
logger.exception("Group task returned error") logger.exception("Group task returned error")
await generic_msg_sender_exception_logger(traceback.format_exc(), "Group task error logger", Group=group) await generic_msg_sender_exception_logger(traceback.format_exc(), "Group task error logger (really bad)", Group=group)
else: else:
self.domain_list[group]["query"].pop(0) self.domain_list[group]["query"].pop(0)
@ -164,7 +164,7 @@ class RcQueue:
shutdown(asyncio.get_event_loop()) shutdown(asyncio.get_event_loop())
else: else:
logger.exception("Exception on queue updater") logger.exception("Exception on queue updater")
await generic_msg_sender_exception_logger(traceback.format_exc(), "Queue updator") await generic_msg_sender_exception_logger(traceback.format_exc(), "Queue updator (ok)")
def __getitem__(self, item): def __getitem__(self, item):
@ -301,7 +301,7 @@ async def scan_group(group: str):
raise raise
else: else:
logger.exception("Exception on RC formatter") logger.exception("Exception on RC formatter")
await generic_msg_sender_exception_logger(traceback.format_exc(), "Exception in RC formatter", Wiki=queued_wiki.url, Change=str(change)[0:1000]) await generic_msg_sender_exception_logger(traceback.format_exc(), "Exception in RC formatter (ok)", Wiki=queued_wiki.url, Change=str(change)[0:1000])
# Lets stack the messages # Lets stack the messages
for messages in message_list.values(): for messages in message_list.values():
messages = stack_message_list(messages) messages = stack_message_list(messages)
@ -354,6 +354,7 @@ async def message_sender():
await generic_msg_sender_exception_logger(traceback.format_exc(), "Message sender exception") await generic_msg_sender_exception_logger(traceback.format_exc(), "Message sender exception")
async def discussion_handler(): async def discussion_handler():
# Handler for Fandom Discussions, it has the entire look of things from queuing to sending
try: try:
while True: while True:
fetch_all = db_cursor.execute( fetch_all = db_cursor.execute(
@ -442,7 +443,7 @@ async def discussion_handler():
shutdown(loop=asyncio.get_event_loop()) shutdown(loop=asyncio.get_event_loop())
else: else:
logger.exception("Exception on Feeds formatter") logger.exception("Exception on Feeds formatter")
await generic_msg_sender_exception_logger(traceback.format_exc(), "Exception in feed formatter", Post=str(post)[0:1000], Wiki=db_wiki["wiki"]) await generic_msg_sender_exception_logger(traceback.format_exc(), "Exception in feed formatter (ok)", Post=str(post)[0:1000], Wiki=db_wiki["wiki"])
# Lets stack the messages # Lets stack the messages
for messages in message_list.values(): for messages in message_list.values():
messages = stack_message_list(messages) messages = stack_message_list(messages)
@ -460,11 +461,13 @@ async def discussion_handler():
raise # reraise the issue raise # reraise the issue
else: else:
logger.exception("Exception on Feeds formatter") logger.exception("Exception on Feeds formatter")
await generic_msg_sender_exception_logger(traceback.format_exc(), "Discussion handler task exception", Wiki=db_wiki["wiki"]) await generic_msg_sender_exception_logger(traceback.format_exc(), "Discussion handler task exception (bad)", Wiki=db_wiki["wiki"])
def shutdown(loop, signal=None): def shutdown(loop, signal=None):
# This is our best attempt at shutting down gently - we save and close the database, wait for messages to be sent,
# stop all of the tasks and stop the look effectively shutting down all asyncio operations
global main_tasks global main_tasks
DBHandler.update_db() DBHandler.update_db()
db_connection.close() db_connection.close()

View file

@ -138,21 +138,22 @@ def stack_message_list(messages: list) -> list:
# else: # all messages in messages are stacked, exit this if # else: # all messages in messages are stacked, exit this if
# i += 1 # i += 1
removed_msgs = 0 removed_msgs = 0
# We split messages into groups of 10
for group_index in range(ceil((len(messages)) / 10)): for group_index in range(ceil((len(messages)) / 10)):
message_group_index = group_index * 10 - removed_msgs message_group_index = group_index * 10 - removed_msgs # this helps us with calculations which messages we need
stackable = StackedDiscordMessage(messages[message_group_index]) stackable = StackedDiscordMessage(messages[message_group_index]) # treat the first message from the group as main
for message in messages[message_group_index + 1:message_group_index + 10]: for message in messages[message_group_index + 1:message_group_index + 10]: # we grab messages from messages list
try: try:
stackable.add_embed(message) stackable.add_embed(message) # and to our main message we add ones after it that are from same group
except EmbedListFull: except EmbedListFull: # if there are too many messages in our group we simply break so another group can be made
break break
messages.remove(message) messages.remove(message)
removed_msgs += 1 removed_msgs += 1 # helps with calculating message_group_index
messages[message_group_index] = stackable messages[message_group_index] = stackable
elif messages[0].message_type() == "compact": elif messages[0].message_type() == "compact":
message_index = 0 message_index = 0
while len(messages) > message_index+1: while len(messages) > message_index+1: # as long as we have messages to stack
if (len(messages[message_index]) + len(messages[message_index+1])) < 2000: if (len(messages[message_index]) + len(messages[message_index+1])) < 2000: # if overall length is lower than 2000
messages[message_index].webhook_object["content"] = messages[message_index].webhook_object["content"] + "\n" + messages[message_index + 1].webhook_object["content"] messages[message_index].webhook_object["content"] = messages[message_index].webhook_object["content"] + "\n" + messages[message_index + 1].webhook_object["content"]
messages[message_index].length += (len(messages[message_index + 1]) + 1) messages[message_index].length += (len(messages[message_index + 1]) + 1)
messages.remove(messages[message_index + 1]) messages.remove(messages[message_index + 1])