mirror of
https://github.com/Rongronggg9/SlashBot.git
synced 2025-02-06 17:23:28 +08:00
fix: invalid command not filtered
This commit is contained in:
parent
fb13036b49
commit
003dc1e4d2
13
SlashBot.py
13
SlashBot.py
@ -91,16 +91,20 @@ def get_users(msg: telegram.Message) -> tuple[User, User]:
|
|||||||
return from_user, rpl_user
|
return from_user, rpl_user
|
||||||
|
|
||||||
|
|
||||||
def parse_command(ctx: telegram.ext.CallbackContext) -> dict[str, Union[str, bool]]:
|
def parse_command(ctx: telegram.ext.CallbackContext) -> Optional[dict[str, Union[str, bool]]]:
|
||||||
match = ctx.match
|
match = ctx.match
|
||||||
parsed = match.groupdict()
|
parsed = match.groupdict()
|
||||||
predicate = parsed['predicate']
|
predicate = parsed['predicate']
|
||||||
|
complement = parsed['complement']
|
||||||
|
if not predicate and complement:
|
||||||
|
return None # invalid command
|
||||||
|
|
||||||
omit_le = predicate.endswith('\\')
|
omit_le = predicate.endswith('\\')
|
||||||
predicate = predicate[:-1] if omit_le else predicate
|
predicate = predicate[:-1] if omit_le else predicate
|
||||||
predicate = convertEscapes(predicate)
|
predicate = convertEscapes(predicate)
|
||||||
predicate = ctx.bot_data['delUsername'](predicate)
|
predicate = ctx.bot_data['delUsername'](predicate)
|
||||||
result = {'predicate': htmlEscape(predicate),
|
result = {'predicate': htmlEscape(predicate),
|
||||||
'complement': htmlEscape(parsed['complement'] or ''),
|
'complement': htmlEscape(complement or ''),
|
||||||
'slash': parsed['slash'],
|
'slash': parsed['slash'],
|
||||||
'swap': parsed['slash'] != '/',
|
'swap': parsed['slash'] != '/',
|
||||||
'omit_le': omit_le}
|
'omit_le': omit_le}
|
||||||
@ -141,11 +145,14 @@ def get_text(user_from: User, user_rpl: User, command: dict):
|
|||||||
|
|
||||||
|
|
||||||
def reply(update: telegram.Update, ctx: telegram.ext.CallbackContext):
|
def reply(update: telegram.Update, ctx: telegram.ext.CallbackContext):
|
||||||
|
command = parse_command(ctx)
|
||||||
|
if not command:
|
||||||
|
return
|
||||||
|
|
||||||
logger = ctx.bot_data['logger']
|
logger = ctx.bot_data['logger']
|
||||||
logger.debug(str(update.to_dict()))
|
logger.debug(str(update.to_dict()))
|
||||||
msg = update.effective_message
|
msg = update.effective_message
|
||||||
from_user, rpl_user = get_users(msg)
|
from_user, rpl_user = get_users(msg)
|
||||||
command = parse_command(ctx)
|
|
||||||
|
|
||||||
if from_user == rpl_user:
|
if from_user == rpl_user:
|
||||||
mention_match = mentionParser.search(command['predicate'])
|
mention_match = mentionParser.search(command['predicate'])
|
||||||
|
Loading…
Reference in New Issue
Block a user