This commit is contained in:
Frisk 2020-05-06 11:13:51 +02:00
parent 9a66a8c6f9
commit 8770fcea47
No known key found for this signature in database
GPG key ID: 213F7C15068AF8AC
3 changed files with 23 additions and 20 deletions

View file

@ -19,7 +19,7 @@
import logging, gettext, schedule, requests, json, datetime import logging, gettext, schedule, requests, json, datetime
from collections import defaultdict from collections import defaultdict
from configloader import settings from configloader import settings
from misc import datafile, send_to_discord, DiscordMessage, WIKI_SCRIPT_PATH, escape_formatting from misc import datafile, send_to_discord, DiscordMessage, WIKI_SCRIPT_PATH, escape_formatting, messagequeue
from session import session from session import session
# Initialize translation # Initialize translation
@ -104,6 +104,7 @@ def compact_formatter(post, post_type):
def fetch_discussions(): def fetch_discussions():
messagequeue.resend_msgs()
request = safe_request(fetch_url) request = safe_request(fetch_url)
if request: if request:
try: try:

20
misc.py
View file

@ -102,6 +102,26 @@ class MessageQueue:
def cut_messages(self, item_num): def cut_messages(self, item_num):
self._queue = self._queue[item_num:] self._queue = self._queue[item_num:]
def resend_msgs(self):
if self._queue:
misc_logger.info(
"{} messages waiting to be delivered to Discord due to Discord throwing errors/no connection to Discord servers.".format(
len(self._queue)))
for num, item in enumerate(self._queue):
misc_logger.debug(
"Trying to send a message to Discord from the queue with id of {} and content {}".format(str(num),
str(item)))
if send_to_discord_webhook(item) < 2:
misc_logger.debug("Sending message succeeded")
time.sleep(2.5)
else:
misc_logger.debug("Sending message failed")
break
else:
self.clear()
misc_logger.debug("Queue emptied, all messages delivered")
self.cut_messages(num)
misc_logger.debug(self._queue)
messagequeue = MessageQueue() messagequeue = MessageQueue()
datafile = DataFile() datafile = DataFile()

View file

@ -1133,25 +1133,7 @@ class Recent_Changes_Class(object):
self.ids.pop(0) self.ids.pop(0)
def fetch(self, amount=settings["limit"]): def fetch(self, amount=settings["limit"]):
if messagequeue: messagequeue.resend_msgs()
logger.info(
"{} messages waiting to be delivered to Discord due to Discord throwing errors/no connection to Discord servers.".format(
len(messagequeue)))
for num, item in enumerate(messagequeue):
logger.debug(
"Trying to send a message to Discord from the queue with id of {} and content {}".format(str(num),
str(item)))
if send_to_discord_webhook(item) < 2:
logger.debug("Sending message succeeded")
time.sleep(2.5)
else:
logger.debug("Sending message failed")
break
else:
messagequeue.clear()
logger.debug("Queue emptied, all messages delivered")
messagequeue.cut_messages(num)
logger.debug(messagequeue)
last_check = self.fetch_changes(amount=amount) last_check = self.fetch_changes(amount=amount)
# If the request succeeds the last_check will be the last rcid from recentchanges query # If the request succeeds the last_check will be the last rcid from recentchanges query
if last_check is not None: if last_check is not None: