Merge pull request #24 from 13xforever/even_more_fixes

Various fixes for many different things
This commit is contained in:
Roberto Anić Banić
2018-03-05 20:54:10 +01:00
committed by GitHub
4 changed files with 45 additions and 23 deletions

View File

@@ -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
View File

@@ -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
)
)

View File

@@ -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 = [

View File

@@ -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'] == '""':