mirror of
https://gitlab.com/chicken-riders/RcGcDw.git
synced 2025-02-23 00:24:09 +00:00
Just some cleanup code and deleting messages from queue
This commit is contained in:
parent
9bc01153f8
commit
baa8eeead9
|
@ -9,7 +9,7 @@ import requests
|
|||
from src.configloader import settings
|
||||
from src.discord.message import DiscordMessage, DiscordMessageMetadata
|
||||
|
||||
AUTO_SUPPRESSION_ENABLED = settings.get("auto_suppression", {"enabled": True}).get("enabled")
|
||||
AUTO_SUPPRESSION_ENABLED = settings.get("auto_suppression", {"enabled": False}).get("enabled")
|
||||
if AUTO_SUPPRESSION_ENABLED:
|
||||
from src.fileio.database import add_entry as add_message_redaction_entry
|
||||
|
||||
|
@ -40,6 +40,21 @@ class MessageQueue:
|
|||
def cut_messages(self, item_num):
|
||||
self._queue = self._queue[item_num:]
|
||||
|
||||
@staticmethod
|
||||
def compare_message_to_dict(metadata: DiscordMessageMetadata, to_match: dict):
|
||||
"""Compare DiscordMessageMetadata fields and match them against dictionary"""
|
||||
for name, val in to_match.items():
|
||||
if getattr(metadata, name, None) != val:
|
||||
return False
|
||||
return True
|
||||
|
||||
def delete_all_with_matching_metadata(self, **properties):
|
||||
"""Deletes all of the messages that have matching metadata properties (useful for message redaction)"""
|
||||
for message in messagequeue:
|
||||
if self.compare_message_to_dict(message[1], properties):
|
||||
# TODO Delete messages from the queue
|
||||
raise NotImplemented
|
||||
|
||||
def resend_msgs(self):
|
||||
if self._queue:
|
||||
logger.info(
|
||||
|
|
|
@ -2,7 +2,7 @@ import logging
|
|||
|
||||
from src.configloader import settings
|
||||
from src.discord.message import DiscordMessageMetadata
|
||||
from src.discord.queue import send_to_discord
|
||||
from src.discord.queue import send_to_discord, messagequeue
|
||||
from src.fileio.database import db_cursor, db_connection
|
||||
|
||||
logger = logging.getLogger("rcgcdw.discord.redaction")
|
||||
|
@ -12,6 +12,8 @@ def delete_messages(pageid: int):
|
|||
"""Delete messages that match that pageid"""
|
||||
logger.debug(type(pageid))
|
||||
to_delete = db_cursor.execute("SELECT msg_id FROM event WHERE pageid = ?", (pageid,))
|
||||
if len(messagequeue) > 0:
|
||||
messagequeue.delete_all_with_matching_metadata(pageid=pageid)
|
||||
msg_to_remove = []
|
||||
logger.debug("Deleting messages for pageid: {}".format(pageid))
|
||||
for message in to_delete:
|
||||
|
|
|
@ -11,13 +11,15 @@ def create_schema():
|
|||
"""BEGIN TRANSACTION;
|
||||
CREATE TABLE IF NOT EXISTS "messages" (
|
||||
"message_id" TEXT,
|
||||
"content" TEXT
|
||||
"content" TEXT,
|
||||
PRIMARY KEY("message_id")
|
||||
);
|
||||
CREATE TABLE IF NOT EXISTS "event" (
|
||||
"pageid" INTEGER,
|
||||
"revid" INTEGER,
|
||||
"logid" INTEGER,
|
||||
"msg_id" TEXT NOT NULL,
|
||||
PRIMARY KEY("msg_id"),
|
||||
FOREIGN KEY("msg_id") REFERENCES "messages"("message_id") ON DELETE CASCADE
|
||||
);
|
||||
COMMIT;""")
|
||||
|
@ -47,5 +49,16 @@ def add_entry(pageid: int, revid: int, logid: int, message):
|
|||
logger.debug("Adding an entry to the database (pageid: {}, revid: {}, logid: {}, message: {})".format(pageid, revid, logid, message))
|
||||
db_connection.commit()
|
||||
|
||||
def clean_entries():
|
||||
"""Cleans entries that are 50+"""
|
||||
cleanup = db_cursor.execute(
|
||||
"SELECT message_id FROM messages WHERE message_id NOT IN (SELECT message_id FROM messages ORDER BY message_id asc LIMIT 50);")
|
||||
for row in cleanup:
|
||||
db_cursor.execute("DELETE FROM messages WHERE message_id = ?", (cleanup[0]))
|
||||
cleanup = db_cursor.execute("SELECT msg_id FROM event WHERE msg_id NOT IN (SELECT msg_id FROM event ORDER BY msg_id asc LIMIT 50);")
|
||||
for row in cleanup:
|
||||
db_cursor.execute("DELETE FROM event WHERE msg_id = ?", (cleanup[0]))
|
||||
db_connection.commit()
|
||||
|
||||
db_connection, db_cursor = create_connection()
|
||||
check_tables()
|
||||
|
|
|
@ -6,7 +6,7 @@ import requests
|
|||
from bs4 import BeautifulSoup
|
||||
|
||||
from src.configloader import settings
|
||||
from src.misc import WIKI_SCRIPT_PATH, WIKI_API_PATH, datafile, send_simple, safe_read, LinkParser
|
||||
from src.misc import WIKI_SCRIPT_PATH, WIKI_API_PATH, datafile, send_simple, safe_read, LinkParser, AUTO_SUPPRESSION_ENABLED
|
||||
from src.discord.queue import messagequeue
|
||||
from src.exceptions import MWError
|
||||
from src.session import session
|
||||
|
@ -333,6 +333,9 @@ class Recent_Changes_Class(object):
|
|||
|
||||
def clear_cache(self):
|
||||
self.map_ips = {}
|
||||
if AUTO_SUPPRESSION_ENABLED:
|
||||
from src.fileio.database import clean_entries
|
||||
clean_entries()
|
||||
|
||||
def init_info(self):
|
||||
startup_info = safe_read(self.safe_request(
|
||||
|
|
Loading…
Reference in a new issue