mirror of
https://github.com/RPCS3/discord-bot.git
synced 2026-01-31 01:25:22 +01:00
Merge pull request #24 from 13xforever/even_more_fixes
Various fixes for many different things
This commit is contained in:
@@ -36,7 +36,7 @@ class ApiResult(object):
|
||||
self.date = datetime.strptime(data["date"], datetime_input_format) if "date" in data else None
|
||||
self.thread = data["thread"] if "thread" in data else None
|
||||
self.commit = data["commit"] if "commit" in data else None
|
||||
self.pr = data["pr"] if "pr" in data and data["pr"] is not 0 else """¯\_(ツ)_/¯"""
|
||||
self.pr = data["pr"] if "pr" in data and data["pr"] is not 0 else """???"""
|
||||
|
||||
def to_string(self) -> str:
|
||||
"""
|
||||
@@ -67,7 +67,7 @@ class ApiResult(object):
|
||||
).set_footer(
|
||||
text="Status: {}, PR: {}, Updated: {}".format(
|
||||
self.status,
|
||||
self.pr,
|
||||
self.pr if self.pr != "???" else """¯\_(ツ)_/¯""",
|
||||
datetime.strftime(self.date, datetime_output_format)
|
||||
)
|
||||
)
|
||||
|
||||
48
bot.py
48
bot.py
@@ -4,14 +4,13 @@ import sys
|
||||
from random import randint, choice
|
||||
|
||||
import requests
|
||||
from discord import Message, Member, TextChannel, DMChannel
|
||||
from discord import Message, Member, TextChannel, DMChannel, Forbidden
|
||||
from discord.ext.commands import Bot, Context
|
||||
from requests import Response
|
||||
|
||||
from api import newline_separator, directions, regions, statuses, release_types
|
||||
from api.request import ApiRequest
|
||||
from bot_config import latest_limit, newest_header, invalid_command_text, oldest_header, bot_admin_id, \
|
||||
bot_channel_id, piracy_strings
|
||||
from bot_config import *
|
||||
from bot_utils import get_code
|
||||
from database import Moderator, init, PiracyString
|
||||
from log_analyzer import LogAnalyzer
|
||||
@@ -24,6 +23,7 @@ id_pattern = '(?P<letters>(?:[BPSUVX][CL]|P[ETU]|NP)[AEHJKPUIX][A-Z])[ \\-]?(?P<
|
||||
nsp = NumericStringParser()
|
||||
|
||||
bot_channel: TextChannel = None
|
||||
rules_channel: TextChannel = None
|
||||
|
||||
file_handlers = (
|
||||
# {
|
||||
@@ -51,14 +51,24 @@ async def on_ready():
|
||||
print(bot.user.id)
|
||||
print('------')
|
||||
global bot_channel
|
||||
global rules_channel
|
||||
bot_channel = bot.get_channel(bot_channel_id)
|
||||
rules_channel = bot.get_channel(bot_rules_channel_id)
|
||||
refresh_piracy_cache()
|
||||
|
||||
@bot.event
|
||||
async def on_message_edit(before: Message, after: Message):
|
||||
"""
|
||||
OnMessageEdit event listener
|
||||
:param before: message
|
||||
:param after: message
|
||||
"""
|
||||
await piracy_check(after)
|
||||
|
||||
@bot.event
|
||||
async def on_message(message: Message):
|
||||
"""
|
||||
OnMessage event listener
|
||||
:param ctx: context
|
||||
:param message: message
|
||||
"""
|
||||
# Self reply detect
|
||||
@@ -71,14 +81,7 @@ async def on_message(message: Message):
|
||||
except IndexError:
|
||||
print("Empty message! Could still have attachments.")
|
||||
|
||||
# piracy links check
|
||||
for trigger in piracy_strings:
|
||||
if trigger in message.content:
|
||||
await message.delete()
|
||||
await message.channel.send("{author} Please follow the rules and do not discuss piracy on this server. Repeated offence may result in a ban.".format(
|
||||
author=message.author.mention
|
||||
))
|
||||
break
|
||||
await piracy_check(message)
|
||||
|
||||
# Code reply
|
||||
code_list = []
|
||||
@@ -129,9 +132,26 @@ async def on_message(message: Message):
|
||||
print("Stopping stream!")
|
||||
del log
|
||||
|
||||
async def piracy_check(message: Message):
|
||||
for trigger in piracy_strings:
|
||||
if trigger in message.content:
|
||||
try:
|
||||
# permissions = message.channel.permissions_for(bot.user)
|
||||
# if permissions.manage_messages:
|
||||
await message.delete()
|
||||
except Forbidden as fbe:
|
||||
print("Couldn't delete the moderated message")
|
||||
await message.channel.send("{author} Please follow the {rules} and do not discuss piracy on this server. Repeated offence may result in a ban.".format(
|
||||
author=message.author.mention,
|
||||
rules=rules_channel.mention
|
||||
))
|
||||
break
|
||||
|
||||
async def piracy_alert(message: Message):
|
||||
await message.delete()
|
||||
try:
|
||||
await message.delete()
|
||||
except Forbidden as fbe:
|
||||
print("Couldn't delete the moderated log attachment")
|
||||
await message.channel.send(
|
||||
"Pirated release detected {author}!\n"
|
||||
"**You are being denied further support until you legally dump the game!**\n"
|
||||
@@ -140,8 +160,6 @@ async def piracy_alert(message: Message):
|
||||
"and therefore act unpredictably on RPCS3.\n"
|
||||
"If you need help obtaining legal dumps please read <https://rpcs3.net/quickstart>\n".format(
|
||||
author=message.author.mention
|
||||
# trigger=mask(trigger),
|
||||
# bot_admin=message.server.get_member(bot_admin_id).mention
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
@@ -32,6 +32,7 @@ boot_up_message = "Hello and welcome to CompatBot. \n" \
|
||||
bot_channel_id = 291679908067803136
|
||||
bot_spam_id = 319224795785068545
|
||||
bot_admin_id = 267367850706993152
|
||||
bot_rules_channel_id = 311894275015049216
|
||||
|
||||
piracy_strings = [
|
||||
|
||||
|
||||
@@ -53,9 +53,9 @@ class LogAnalyzer(object):
|
||||
"""
|
||||
phase = (
|
||||
{
|
||||
'end_trigger': 'Compatibility notice:',
|
||||
'end_trigger': '·',
|
||||
'regex': re.compile('(?P<all>.*)', flags=re.DOTALL | re.MULTILINE),
|
||||
'string_format': '{all}\n\n'
|
||||
'string_format': '\n{all}\n'
|
||||
},
|
||||
{
|
||||
'end_trigger': 'Core:',
|
||||
@@ -67,8 +67,9 @@ class LogAnalyzer(object):
|
||||
'end_trigger': 'VFS:',
|
||||
'regex': re.compile('Decoder: (?P<ppu_decoder>.*?)\n.*?'
|
||||
'Threads: (?P<ppu_threads>.*?)\n.*?'
|
||||
'scheduler: (?P<thread_scheduler>.*?)\n.*?'
|
||||
'(?:scheduler: (?P<thread_scheduler>.*?)\n.*?)?'
|
||||
'Decoder: (?P<spu_decoder>.*?)\n.*?'
|
||||
'(?:secondary cores: (?P<spu_secondary_cores>.*?)\n.*?)?'
|
||||
'priority: (?P<spu_lower_thread_priority>.*?)\n.*?'
|
||||
'SPU Threads: (?P<spu_threads>.*?)\n.*?'
|
||||
'penalty: (?P<spu_delay_penalty>.*?)\n.*?'
|
||||
@@ -101,8 +102,8 @@ class LogAnalyzer(object):
|
||||
'Resolution Scale: (?P<resolution_scale>.*?)\n.*?'
|
||||
'Anisotropic Filter Override: (?P<af_override>.*?)\n.*?'
|
||||
'Minimum Scalable Dimension: (?P<texture_scale_threshold>.*?)\n.*?'
|
||||
'D3D12:\s*\n\s*Adapter: (?P<d3d_gpu>(""|.*?))\n.*?'
|
||||
'Vulkan:\s*\n\s*Adapter: (?P<vulkan_gpu>(""|.*?))\n.*?',
|
||||
'D3D12:\s*\n\s*Adapter: (?P<d3d_gpu>.*?)\n.*?'
|
||||
'Vulkan:\s*\n\s*Adapter: (?P<vulkan_gpu>.*?)\n.*?',
|
||||
flags=re.DOTALL | re.MULTILINE),
|
||||
'string_format':
|
||||
'Renderer: {renderer:>24s} | Frame Limit: {frame_limit}\n'
|
||||
@@ -145,13 +146,15 @@ class LogAnalyzer(object):
|
||||
current_phase = self.phase[self.phase_index]
|
||||
if current_phase['regex'] is not None and current_phase['string_format'] is not None:
|
||||
try:
|
||||
regex_result = re.search(current_phase['regex'], self.buffer)
|
||||
regex_result = re.search(current_phase['regex'], self.buffer.strip() + '\n')
|
||||
if regex_result is not None:
|
||||
group_args = regex_result.groupdict()
|
||||
if 'strict_rendering_mode' in group_args and group_args['strict_rendering_mode'] == 'true':
|
||||
group_args['resolution_scale'] = "Strict Mode"
|
||||
if 'spu_threads' in group_args and group_args['spu_threads'] == '0':
|
||||
group_args['spu_threads'] = 'auto'
|
||||
if 'spu_secondary_cores' in group_args:
|
||||
group_args['thread_scheduler'] = group_args['spu_secondary_cores']
|
||||
if 'vulkan_gpu' in group_args and group_args['vulkan_gpu'] == '""':
|
||||
group_args['vulkan_gpu'] = 'Not set'
|
||||
if 'd3d_gpu' in group_args and group_args['d3d_gpu'] == '""':
|
||||
|
||||
Reference in New Issue
Block a user