mirror of
https://gitlab.com/chicken-riders/RcGcDw.git
synced 2025-02-24 00:34:10 +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.configloader import settings
|
||||||
from src.discord.message import DiscordMessage, DiscordMessageMetadata
|
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:
|
if AUTO_SUPPRESSION_ENABLED:
|
||||||
from src.fileio.database import add_entry as add_message_redaction_entry
|
from src.fileio.database import add_entry as add_message_redaction_entry
|
||||||
|
|
||||||
|
@ -40,6 +40,21 @@ 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:]
|
||||||
|
|
||||||
|
@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):
|
def resend_msgs(self):
|
||||||
if self._queue:
|
if self._queue:
|
||||||
logger.info(
|
logger.info(
|
||||||
|
|
|
@ -2,7 +2,7 @@ import logging
|
||||||
|
|
||||||
from src.configloader import settings
|
from src.configloader import settings
|
||||||
from src.discord.message import DiscordMessageMetadata
|
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
|
from src.fileio.database import db_cursor, db_connection
|
||||||
|
|
||||||
logger = logging.getLogger("rcgcdw.discord.redaction")
|
logger = logging.getLogger("rcgcdw.discord.redaction")
|
||||||
|
@ -12,6 +12,8 @@ def delete_messages(pageid: int):
|
||||||
"""Delete messages that match that pageid"""
|
"""Delete messages that match that pageid"""
|
||||||
logger.debug(type(pageid))
|
logger.debug(type(pageid))
|
||||||
to_delete = db_cursor.execute("SELECT msg_id FROM event WHERE pageid = ?", (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 = []
|
msg_to_remove = []
|
||||||
logger.debug("Deleting messages for pageid: {}".format(pageid))
|
logger.debug("Deleting messages for pageid: {}".format(pageid))
|
||||||
for message in to_delete:
|
for message in to_delete:
|
||||||
|
|
|
@ -11,13 +11,15 @@ def create_schema():
|
||||||
"""BEGIN TRANSACTION;
|
"""BEGIN TRANSACTION;
|
||||||
CREATE TABLE IF NOT EXISTS "messages" (
|
CREATE TABLE IF NOT EXISTS "messages" (
|
||||||
"message_id" TEXT,
|
"message_id" TEXT,
|
||||||
"content" TEXT
|
"content" TEXT,
|
||||||
|
PRIMARY KEY("message_id")
|
||||||
);
|
);
|
||||||
CREATE TABLE IF NOT EXISTS "event" (
|
CREATE TABLE IF NOT EXISTS "event" (
|
||||||
"pageid" INTEGER,
|
"pageid" INTEGER,
|
||||||
"revid" INTEGER,
|
"revid" INTEGER,
|
||||||
"logid" INTEGER,
|
"logid" INTEGER,
|
||||||
"msg_id" TEXT NOT NULL,
|
"msg_id" TEXT NOT NULL,
|
||||||
|
PRIMARY KEY("msg_id"),
|
||||||
FOREIGN KEY("msg_id") REFERENCES "messages"("message_id") ON DELETE CASCADE
|
FOREIGN KEY("msg_id") REFERENCES "messages"("message_id") ON DELETE CASCADE
|
||||||
);
|
);
|
||||||
COMMIT;""")
|
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))
|
logger.debug("Adding an entry to the database (pageid: {}, revid: {}, logid: {}, message: {})".format(pageid, revid, logid, message))
|
||||||
db_connection.commit()
|
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()
|
db_connection, db_cursor = create_connection()
|
||||||
check_tables()
|
check_tables()
|
||||||
|
|
|
@ -6,7 +6,7 @@ import requests
|
||||||
from bs4 import BeautifulSoup
|
from bs4 import BeautifulSoup
|
||||||
|
|
||||||
from src.configloader import settings
|
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.discord.queue import messagequeue
|
||||||
from src.exceptions import MWError
|
from src.exceptions import MWError
|
||||||
from src.session import session
|
from src.session import session
|
||||||
|
@ -333,6 +333,9 @@ class Recent_Changes_Class(object):
|
||||||
|
|
||||||
def clear_cache(self):
|
def clear_cache(self):
|
||||||
self.map_ips = {}
|
self.map_ips = {}
|
||||||
|
if AUTO_SUPPRESSION_ENABLED:
|
||||||
|
from src.fileio.database import clean_entries
|
||||||
|
clean_entries()
|
||||||
|
|
||||||
def init_info(self):
|
def init_info(self):
|
||||||
startup_info = safe_read(self.safe_request(
|
startup_info = safe_read(self.safe_request(
|
||||||
|
|
Loading…
Reference in a new issue