Prevent message is not modified
exceptions
This commit is contained in:
parent
7f140371b6
commit
2131c6acf9
@ -11,7 +11,7 @@ __author__ = "Davide Testa"
|
|||||||
__email__ = "davide@davte.it"
|
__email__ = "davide@davte.it"
|
||||||
__credits__ = ["Marco Origlia", "Nick Lee @Nickoala"]
|
__credits__ = ["Marco Origlia", "Nick Lee @Nickoala"]
|
||||||
__license__ = "GNU General Public License v3.0"
|
__license__ = "GNU General Public License v3.0"
|
||||||
__version__ = "2.5.19"
|
__version__ = "2.5.20"
|
||||||
__maintainer__ = "Davide Testa"
|
__maintainer__ = "Davide Testa"
|
||||||
__contact__ = "t.me/davte"
|
__contact__ = "t.me/davte"
|
||||||
|
|
||||||
|
@ -186,12 +186,21 @@ operators = get_operators()
|
|||||||
operators_spacer = re.compile(r"(\d)\s*([+\-*%]|/{1,2})\s*(\d)")
|
operators_spacer = re.compile(r"(\d)\s*([+\-*%]|/{1,2})\s*(\d)")
|
||||||
spaced_operators = r"\1 \2 \3"
|
spaced_operators = r"\1 \2 \3"
|
||||||
operators_space_remover = re.compile(r"(\d)\s*(\*\*)\s*(\d)")
|
operators_space_remover = re.compile(r"(\d)\s*(\*\*)\s*(\d)")
|
||||||
un_spaced_operators = r"\1\2\3"
|
non_spaced_operators = r"\1\2\3"
|
||||||
|
multiple_newlines_regex = re.compile(r"[\n|\r][\n|\s]{2,}")
|
||||||
|
multiple_spaces_regex = re.compile(r"\s{2,}")
|
||||||
|
|
||||||
|
|
||||||
def prettify_expression(expression):
|
def prettify_expression(expression):
|
||||||
|
"""Make expression cleaner to read.
|
||||||
|
|
||||||
|
Place a single space around binary operators `+,-,*,%,/,//`, no space
|
||||||
|
around `**`, single newlines and single spaces.
|
||||||
|
"""
|
||||||
expression = operators_spacer.sub(spaced_operators, expression)
|
expression = operators_spacer.sub(spaced_operators, expression)
|
||||||
expression = operators_space_remover.sub(un_spaced_operators, expression)
|
expression = operators_space_remover.sub(non_spaced_operators, expression)
|
||||||
|
expression = multiple_newlines_regex.sub('\n', expression)
|
||||||
|
expression = multiple_spaces_regex.sub(' ', expression)
|
||||||
return expression
|
return expression
|
||||||
|
|
||||||
|
|
||||||
@ -353,6 +362,7 @@ async def calculate_session(bot: Bot,
|
|||||||
record = bot.db['calculations'].find_one(
|
record = bot.db['calculations'].find_one(
|
||||||
id=record_id
|
id=record_id
|
||||||
)
|
)
|
||||||
|
old_expression = record['expression']
|
||||||
if record is None:
|
if record is None:
|
||||||
logging.error("Invalid record identifier!")
|
logging.error("Invalid record identifier!")
|
||||||
return
|
return
|
||||||
@ -389,6 +399,7 @@ async def calculate_session(bot: Bot,
|
|||||||
['id']
|
['id']
|
||||||
)
|
)
|
||||||
if expression:
|
if expression:
|
||||||
|
if expression.strip(' \n') != old_expression.strip(' \n'):
|
||||||
text = bot.get_message(
|
text = bot.get_message(
|
||||||
'useful_tools', 'calculate_command', 'result',
|
'useful_tools', 'calculate_command', 'result',
|
||||||
language=language,
|
language=language,
|
||||||
@ -396,12 +407,14 @@ async def calculate_session(bot: Bot,
|
|||||||
expressions=expression,
|
expressions=expression,
|
||||||
language=language)
|
language=language)
|
||||||
)
|
)
|
||||||
|
else:
|
||||||
|
text = ''
|
||||||
else:
|
else:
|
||||||
text = bot.get_message(
|
text = bot.get_message(
|
||||||
'useful_tools', 'calculate_command', 'instructions',
|
'useful_tools', 'calculate_command', 'instructions',
|
||||||
language=language
|
language=language
|
||||||
)
|
)
|
||||||
if last_entry is None:
|
if last_entry is None or not text:
|
||||||
return
|
return
|
||||||
await bot.edit_message_text(
|
await bot.edit_message_text(
|
||||||
text=text,
|
text=text,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user