def get_permalink_cri(msg: catbot.Message) -> bool: return command_detector('/permalink', msg) and msg.chat.type == 'private'
def get_user_id_cri(msg: catbot.Message) -> bool: return command_detector('/user_id', msg)
def start_cri(msg: catbot.Message) -> bool: return command_detector('/start', msg) and msg.chat.type == 'private'
def bot_help_cri(msg: catbot.Message) -> bool: if msg.chat.type != 'private': return f'/help@{bot.username}' in msg.commands and msg.text.startswith( f'/help@{bot.username}') else: return command_detector('/help', msg)
def set_voter_cri(msg: catbot.Message) -> bool: return command_detector('/set_voter', msg) and msg.chat.type != 'private'
def list_block_private_cri(msg: catbot.Message) -> bool: return command_detector('/list_blocked', msg) and msg.chat.id == config['operator_id']
def unset_voter_cri(msg: catbot.Message) -> bool: return command_detector('/unset_voter', msg)
def init_poll_cri(msg: catbot.Message) -> bool: return command_detector('/init_poll', msg) and msg.chat.type != 'private'
def set_trusted_cri(msg: catbot.Message) -> bool: return command_detector('/set_trusted', msg)
def list_trusted_cri(msg: catbot.Message) -> bool: return command_detector('/list_trusted', msg) and msg.chat.type != 'private'
def mark_cri(msg: catbot.Message) -> bool: return command_detector('/mark', msg)
def list_marked_cri(msg: catbot.Message) -> bool: return command_detector('/list_marked', msg)
def unset_channel_helper_cri(msg: catbot.Message) -> bool: return command_detector('/unset_channel_helper', msg) and msg.chat.type == 'supergroup'