示例#1
0
def demote(bot: Bot, update: Update):
    logger.info("promote user...")
    chat_id, users = get_chat_id_and_users(bot, update)
    if not users:
        send_message(bot, chat_id, TIP_TEMPLATE + '进行管理员添加操作')

    for user in users:
        user.demote(bot, chat_id)

    logger.info("promote user done!!")
示例#2
0
def unban(bot: Bot, update: Update):
    logger.info("unban user...")
    chat_id, users = get_chat_id_and_users(bot, update)
    if not users:
        send_message(bot, chat_id, TIP_TEMPLATE + '进行解冻')

    for user in users:
        AllChats.unban(bot, chat_id, user)

    logger.info("unban user done!!!")
def get_status(bot: Bot, update: Update):
    logger.info("get_status user...")
    chat_id, users = get_chat_id_and_users(bot, update)

    if not users:
        send_message(bot, chat_id, TIP_TEMPLATE + '进行用户状态查看')

    for user in users:
        memo = "不在黑名单中" if user.is_active else "已被全球拉黑"
        send_message(bot, chat_id, f'该用户 {user.mention()} {memo}({user.status_cn(bot, chat_id)})')

    logger.info("get_status done!!")
示例#4
0
def is_admin(bot: Bot, update: Update):
    logger.info("checking user is manager...")
    chat_id, users = get_chat_id_and_users(bot, update)

    if not users:
        send_message(bot, chat_id, TIP_TEMPLATE + '进行管理员查询操作')

    for user in users:
        status = "管理员" if user.is_manager(bot, chat_id) else "普通用户"
        send_message(bot, chat_id, f'该用户的状态:{status}')

    logger.info("checking user is manager done!!")
示例#5
0
def new_chat_members(bot: Bot, update: Update):
    logger.info("new chat members...")
    message = update.message
    for user in message.new_chat_members:
        # 添加群组至数据库
        if user.is_bot and user.id == bot.id:
            TelegramChat.add(message.chat.id, message.chat.title)
            start(bot, update)

        # 用户在黑名单中的话,无法加入
        user_db, __ = TelegramUser.get_or_create(user.id, user.username)
        user = User.build_user_from_db(user_db)
        if not user.is_active:
            user.ban(bot, chat_id=message.chat.id)

    logger.info("new chat members... done!")
示例#6
0
def left_chat_member(bot: Bot, update: Update):
    logger.info("left chat members...")
    message = update.message
    left_user = update.message.left_chat_member

    # 将机器人所在群组删除
    if left_user.is_bot and left_user.id == bot.id:
        removed = TelegramChat.remove(message.chat.id)
        logger.info(
            f"  find bot {left_user.full_name}, chat {message.chat.title} removed({removed})"
        )

    logger.info(f"done!!")
示例#7
0
def groups(bot: Bot, update: Update):
    logger.info("querying all groups...")
    chat_id = update.message.chat.id
    bot.send_message(chat_id, ", ".join(AllChats.get_chat_names()), parse_mode=None)
    logger.info("done")
示例#8
0
def reply_handler(bot: Bot, update: Update):
    logger.info("handle user message...")
    t_user = update.message.from_user
    user, created = TelegramUser.get_or_create(t_user.id, t_user.username)
    logger.info(f"handle user done!! user: {user}, created: {created}")
示例#9
0
def start(bot: Bot, update: Update):
    message = update.message
    chat_id = message.chat.id
    logger.info(f"hello, current_chat: {chat_id}")
    bot.send_message(chat_id, HELP, parse_mode=ParseMode.MARKDOWN)