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
from collections import defaultdict
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
# Initialize translation
@ -104,6 +104,7 @@ def compact_formatter(post, post_type):
def fetch_discussions():
messagequeue.resend_msgs()
request = safe_request(fetch_url)
if request:
try:

20
misc.py
View file

@ -102,6 +102,26 @@ class MessageQueue:
def cut_messages(self, 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()
datafile = DataFile()

View file

@ -1133,25 +1133,7 @@ class Recent_Changes_Class(object):
self.ids.pop(0)
def fetch(self, amount=settings["limit"]):
if messagequeue:
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)
messagequeue.resend_msgs()
last_check = self.fetch_changes(amount=amount)
# If the request succeeds the last_check will be the last rcid from recentchanges query
if last_check is not None: