mirror of
https://github.com/RPCS3/discord-bot.git
synced 2026-01-31 01:25:22 +01:00
add piracy trigger context logging
This commit is contained in:
committed by
Roberto Anić Banić
parent
eb0fe5af34
commit
3ec520a243
17
bot.py
17
bot.py
@@ -98,7 +98,7 @@ async def on_reaction_add(reaction: Reaction, user: User):
|
||||
if len(reporters) >= user_moderation_count_needed:
|
||||
await message.add_reaction(user_moderation_character)
|
||||
# noinspection PyTypeChecker
|
||||
await report("User moderation report ⭐💵", trigger=None, message=message, reporters=reporters,
|
||||
await report("User moderation report ⭐💵", trigger=None, trigger_context=None, message=message, reporters=reporters,
|
||||
attention=True)
|
||||
|
||||
|
||||
@@ -172,7 +172,7 @@ async def on_message(message: Message):
|
||||
if error_code == LogAnalyzer.ERROR_SUCCESS:
|
||||
continue
|
||||
elif error_code == LogAnalyzer.ERROR_PIRACY:
|
||||
await piracy_alert(message, log.get_trigger())
|
||||
await piracy_alert(message, log.get_trigger(), log.get_trigger_context())
|
||||
sent_log = True
|
||||
break
|
||||
elif error_code == LogAnalyzer.ERROR_OVERFLOW:
|
||||
@@ -207,7 +207,7 @@ async def on_message(message: Message):
|
||||
del log
|
||||
|
||||
|
||||
async def report(report_kind: str, trigger: str, message: Message, reporters: List[Member], attention=False):
|
||||
async def report(report_kind: str, trigger: str, trigger_context: str, message: Message, reporters: List[Member], attention=False):
|
||||
author: Member = message.author
|
||||
channel: TextChannel = message.channel
|
||||
user: User = author._user
|
||||
@@ -221,6 +221,7 @@ async def report(report_kind: str, trigger: str, message: Message, reporters: Li
|
||||
if offending_content is None or offending_content == "":
|
||||
offending_content = "🤔 something fishy is going on here, there was no message or attachment"
|
||||
report_text = ("Triggered by: `" + trigger + "`\n") if trigger is not None else ""
|
||||
report_text += ("Triggered in: ```" + trigger_context + "```\n") if trigger_context is not None else ""
|
||||
report_text += "Not deleted/requires attention: @here" if attention else "Deleted/Doesn't require attention"
|
||||
e = Embed(
|
||||
title="Report for {}".format(report_kind),
|
||||
@@ -257,7 +258,7 @@ async def piracy_check(message: Message):
|
||||
await message.delete()
|
||||
except Forbidden as fbe:
|
||||
print("Couldn't delete the moderated message")
|
||||
await report("Piracy", trigger, message, None, attention=True)
|
||||
await report("Piracy", trigger, None, message, None, attention=True)
|
||||
return
|
||||
await message.channel.send(
|
||||
"{author} Please follow the {rules} and do not discuss "
|
||||
@@ -265,20 +266,20 @@ async def piracy_check(message: Message):
|
||||
author=message.author.mention,
|
||||
rules=rules_channel.mention
|
||||
))
|
||||
await report("Piracy", trigger, message, None, attention=False)
|
||||
await report("Piracy", trigger, None, message, None, attention=False)
|
||||
await add_warning_for_user(message.channel, message.author._user, 'Pirated Phrase Mentioned',
|
||||
str(message.created_at) + ' - ' + message.content)
|
||||
return True
|
||||
|
||||
|
||||
# noinspection PyTypeChecker
|
||||
async def piracy_alert(message: Message, trigger: str):
|
||||
async def piracy_alert(message: Message, trigger: str, trigger_context: str):
|
||||
try:
|
||||
await message.delete()
|
||||
await report("Pirated Release", trigger, message, None, attention=False)
|
||||
await report("Pirated Release", trigger, trigger_context, message, None, attention=False)
|
||||
except Forbidden as fbe:
|
||||
print("Couldn't delete the moderated log attachment")
|
||||
await report("Pirated Release", trigger, message, None, attention=True)
|
||||
await report("Pirated Release", trigger, trigger_context, message, None, attention=True)
|
||||
|
||||
await message.channel.send(
|
||||
"Pirated release detected {author}!\n"
|
||||
|
||||
@@ -2,7 +2,7 @@ import re
|
||||
|
||||
import itertools
|
||||
from collections import deque
|
||||
from api import sanitize_string
|
||||
from api import sanitize_string, trim_string
|
||||
from api.result import ApiResult
|
||||
from bot_config import piracy_strings
|
||||
from bot_utils import get_code
|
||||
@@ -24,7 +24,8 @@ class LogAnalyzer(object):
|
||||
return self.ERROR_SUCCESS
|
||||
if self.build_and_specs is None:
|
||||
self.build_and_specs = self.parsed_data["build_and_specs"]
|
||||
self.trigger = ''
|
||||
self.trigger = None
|
||||
self.trigger_context = None
|
||||
self.buffer = ''
|
||||
self.buffer_lines.clear()
|
||||
self.libraries = []
|
||||
@@ -33,8 +34,12 @@ class LogAnalyzer(object):
|
||||
|
||||
def piracy_check(self):
|
||||
for trigger in piracy_strings:
|
||||
if trigger.lower() in self.buffer.lower():
|
||||
lower_trigger = trigger.lower()
|
||||
if lower_trigger in self.buffer.lower():
|
||||
self.trigger = trigger
|
||||
for line in self.buffer_lines:
|
||||
if lower_trigger in line.lower():
|
||||
self.trigger_context = line
|
||||
return self.ERROR_PIRACY
|
||||
return self.ERROR_SUCCESS
|
||||
|
||||
@@ -160,7 +165,8 @@ class LogAnalyzer(object):
|
||||
self.total_data_len = 0
|
||||
self.phase_index = 0
|
||||
self.build_and_specs = None
|
||||
self.trigger = ''
|
||||
self.trigger = None
|
||||
self.trigger_context = None
|
||||
self.libraries = []
|
||||
self.parsed_data = {}
|
||||
|
||||
@@ -239,10 +245,17 @@ class LogAnalyzer(object):
|
||||
for l in self.libraries:
|
||||
libs.append(sanitize_string(l))
|
||||
self.libraries = libs
|
||||
if self.trigger is not None:
|
||||
self.trigger = sanitize_string(self.trigger)
|
||||
if self.trigger_context is not None:
|
||||
self.trigger_context = sanitize_string(trim_string(self.trigger_context, 256))
|
||||
|
||||
def get_trigger(self):
|
||||
return self.trigger
|
||||
|
||||
def get_trigger_context(self):
|
||||
return self.trigger_context
|
||||
|
||||
def process_final_data(self):
|
||||
group_args = self.parsed_data
|
||||
if 'strict_rendering_mode' in group_args and group_args['strict_rendering_mode'] == 'true':
|
||||
|
||||
Reference in New Issue
Block a user