From 7057458c7f8e4fa8d284c29b8aff1d74ea547a62 Mon Sep 17 00:00:00 2001 From: jgao2 Date: Wed, 19 May 2021 13:27:44 -0700 Subject: [PATCH 1/4] added spoiler inputs and outputs --- mathbot/modules/latex/__init__.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/mathbot/modules/latex/__init__.py b/mathbot/modules/latex/__init__.py index 1e2fb33f..3b69a599 100644 --- a/mathbot/modules/latex/__init__.py +++ b/mathbot/modules/latex/__init__.py @@ -28,7 +28,7 @@ LATEX_SERVER_URL = 'http://rtex.probablyaweb.site/api/v2' DELETE_EMOJI = '🗑' - +SPOILER_REGEXP = re.compile(r'\|\|\s+.*\s+\|\|$') # Load data from external files @@ -138,7 +138,7 @@ async def render_and_reply(self, message, latex, colour_back, *, oversampling): else: sent_message = await guard.send('Rendering failed. Check your code. You can edit your existing message if needed.') else: - sent_message = await guard.send(file=discord.File(render_result, 'latex.png')) + sent_message = await guard.send(file=discord.File(render_result, 'latex.png', spoiler=SPOILER_REGEXP.search(message.content))) await self.bot.advertise_to(message.author, message.channel, guard) if await self.bot.settings.resolve_message('f-tex-delete', message): try: @@ -236,6 +236,10 @@ def process_latex(latex, is_inline): blockformat = re.match(BLOCKFORMAT_REGEX, latex) if blockformat: latex = blockformat[1].strip(' \n') + if SPOILER_REGEXP.search(latex): + latex = latex[3:-3] + print(latex) + latex = latex.replace('\\|\\|', '||') for key, value in TEX_REPLACEMENTS.items(): if key in latex: latex = latex.replace(key, value) From 3b6e952fe434f0c3c75a4ad5c9ba33389879c701 Mon Sep 17 00:00:00 2001 From: jgao2 Date: Sat, 29 May 2021 15:29:26 -0700 Subject: [PATCH 2/4] remove print statement, clearer regex --- mathbot/modules/latex/__init__.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mathbot/modules/latex/__init__.py b/mathbot/modules/latex/__init__.py index 3b69a599..2463774d 100644 --- a/mathbot/modules/latex/__init__.py +++ b/mathbot/modules/latex/__init__.py @@ -28,7 +28,7 @@ LATEX_SERVER_URL = 'http://rtex.probablyaweb.site/api/v2' DELETE_EMOJI = '🗑' -SPOILER_REGEXP = re.compile(r'\|\|\s+.*\s+\|\|$') +SPOILER_REGEXP = re.compile(r'^\|{2}\s+.*\|{2}$') # Load data from external files @@ -114,11 +114,12 @@ async def handle(self, message, source, *, is_inline, centre=True, wide=False, n await self.render_and_reply( message, latex, + SPOILER_REGEXP.search(source), colour_back, oversampling=(1 if wide else 2) ) - async def render_and_reply(self, message, latex, colour_back, *, oversampling): + async def render_and_reply(self, message, latex, is_spoiler, colour_back, *, oversampling): with MessageEditGuard(message, message.channel, self.bot) as guard: async with message.channel.typing(): sent_message = None @@ -138,7 +139,7 @@ async def render_and_reply(self, message, latex, colour_back, *, oversampling): else: sent_message = await guard.send('Rendering failed. Check your code. You can edit your existing message if needed.') else: - sent_message = await guard.send(file=discord.File(render_result, 'latex.png', spoiler=SPOILER_REGEXP.search(message.content))) + sent_message = await guard.send(file=discord.File(render_result, 'latex.png', spoiler=is_spoiler)) await self.bot.advertise_to(message.author, message.channel, guard) if await self.bot.settings.resolve_message('f-tex-delete', message): try: @@ -238,7 +239,6 @@ def process_latex(latex, is_inline): latex = blockformat[1].strip(' \n') if SPOILER_REGEXP.search(latex): latex = latex[3:-3] - print(latex) latex = latex.replace('\\|\\|', '||') for key, value in TEX_REPLACEMENTS.items(): if key in latex: From 649cc6505c4fb64908de7579a135fc1caec7a9f9 Mon Sep 17 00:00:00 2001 From: jgao2 Date: Sat, 29 May 2021 15:55:40 -0700 Subject: [PATCH 3/4] eliminate edge case --- mathbot/modules/latex/__init__.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/mathbot/modules/latex/__init__.py b/mathbot/modules/latex/__init__.py index 2463774d..4c5c77fc 100644 --- a/mathbot/modules/latex/__init__.py +++ b/mathbot/modules/latex/__init__.py @@ -104,17 +104,20 @@ async def handle(self, message, source, *, is_inline, centre=True, wide=False, n await message.channel.send('Type `=help tex` for information on how to use this command.') else: print(f'LaTeX - {message.author} {message.author.id} - {source}') + is_spoiler = SPOILER_REGEXP.search(source) and (len(re.findall(r'(\s\|{2}|\|{2}\s)', source)) % 2 == 0) colour_back, colour_text = await self.get_colours(message.author) # Content replacement has to happen last in case it introduces a marker latex = TEMPLATE.replace('\\begin{#BLOCK}', '').replace('\\end{#BLOCK}', '') if noblock else TEMPLATE latex = latex.replace('#COLOUR', colour_text) \ .replace('#PAPERTYPE', 'a2paper' if wide else 'a5paper') \ .replace('#BLOCK', 'gather*' if centre else 'flushleft') \ - .replace('#CONTENT', process_latex(source, is_inline)) + .replace('#CONTENT', process_latex(source, is_spoiler, is_inline)) + # evenPipes = (len(re.findall(r'(\s\|{2}|\|{2}\s)', source)) % 2 == 0) + print(is_spoiler) await self.render_and_reply( message, latex, - SPOILER_REGEXP.search(source), + is_spoiler, colour_back, oversampling=(1 if wide else 2) ) @@ -232,12 +235,12 @@ def extract_inline_tex(content): BLOCKFORMAT_REGEX = re.compile('^```(?:tex\n)?((?:.|\n)*)```$') -def process_latex(latex, is_inline): +def process_latex(latex, is_spoiler, is_inline): latex = latex.strip(' \n') blockformat = re.match(BLOCKFORMAT_REGEX, latex) if blockformat: latex = blockformat[1].strip(' \n') - if SPOILER_REGEXP.search(latex): + if is_spoiler: latex = latex[3:-3] latex = latex.replace('\\|\\|', '||') for key, value in TEX_REPLACEMENTS.items(): From 753972bf1ad1b8bc4bb83b43c9c3b2a77b6f256d Mon Sep 17 00:00:00 2001 From: jgao2 Date: Sat, 29 May 2021 15:59:38 -0700 Subject: [PATCH 4/4] remove some prints --- mathbot/modules/latex/__init__.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/mathbot/modules/latex/__init__.py b/mathbot/modules/latex/__init__.py index 4c5c77fc..c4a1d123 100644 --- a/mathbot/modules/latex/__init__.py +++ b/mathbot/modules/latex/__init__.py @@ -112,8 +112,6 @@ async def handle(self, message, source, *, is_inline, centre=True, wide=False, n .replace('#PAPERTYPE', 'a2paper' if wide else 'a5paper') \ .replace('#BLOCK', 'gather*' if centre else 'flushleft') \ .replace('#CONTENT', process_latex(source, is_spoiler, is_inline)) - # evenPipes = (len(re.findall(r'(\s\|{2}|\|{2}\s)', source)) % 2 == 0) - print(is_spoiler) await self.render_and_reply( message, latex,