else: message: telegram.Message = update.edited_message """ message: telegram.Message = update.effective_message edited = (bool(getattr(update, "edited_message", None)) or bool(getattr(update, "edited_channel_post", None))) tg_group_id = message.chat_id # telegram group id forward_index = get_forward_index(tg_group_id=int(tg_group_id)) if global_vars.DRIVE_MODE[forward_index]: # normal block logger.debug('Telegram message ignored: drive mode is on') raise DispatcherHandlerStop() global_vars.dp.add_handler(MessageHandler(Filters.all, tg_drive_mode, edited_updates=True), get_plugin_priority(__name__)) @global_vars.qq_bot.on_message('group', 'discuss', group=get_plugin_priority(__name__)) def qq_drive_mode(context: dict): qq_group_id = context.get('group_id') qq_discuss_id = context.get('discuss_id') forward_index = get_forward_index(qq_group_id=qq_group_id, qq_discuss_id=qq_discuss_id) if global_vars.DRIVE_MODE[forward_index]: # normal block return '' return {'pass': True}
def tg_drive_mode(bot: telegram.Bot, update: telegram.Update): if update.message: message: telegram.Message = update.message else: message: telegram.Message = update.edited_message tg_group_id = message.chat_id # telegram group id forward_index = get_forward_index(tg_group_id=int(tg_group_id)) if global_vars.DRIVE_MODE[forward_index]: # normal block raise DispatcherHandlerStop() global_vars.dp.add_handler( MessageHandler(Filters.all, tg_drive_mode, edited_updates=True), get_plugin_priority(__name__)) @global_vars.qq_bot.on_message('group', 'discuss', group=get_plugin_priority(__name__)) def qq_drive_mode(context: dict): qq_group_id = context.get('group_id') qq_discuss_id = context.get('discuss_id') forward_index = get_forward_index(qq_group_id=qq_group_id, qq_discuss_id=qq_discuss_id) if global_vars.DRIVE_MODE[forward_index]: # normal block return '' return {'pass': True}
logger.debug("message is blocked") global_vars.drive_mode_on(forward_index, tg_user=message.from_user, tg_group_id=tg_group_id, tg_message_id=message.message_id) raise DispatcherHandlerStop() message_text = '' if message.caption: message_text = message.caption elif message.text: message_text = message.text if not message_text: return for keyword in global_vars.filter_list['keywords']: if keyword in message_text: logger.debug("message is blocked") global_vars.drive_mode_on(forward_index, tg_user=message.from_user, tg_group_id=tg_group_id, tg_message_id=message.message_id) raise DispatcherHandlerStop() global_vars.dp.add_handler(MessageHandler(Filters.all & Filters.group, tg_water_meter, edited_updates=True), get_plugin_priority(__name__))
reply_entity.append({'type': 'text', 'data': {'text': message.text}}) qq_message_id = send_from_tg_to_qq(forward_index, message=reply_entity, tg_group_id=tg_group_id, tg_user=message.from_user, tg_forward_from=message, tg_reply_to=message.reply_to_message, edited=edited) global_vars.mdb.append_message(qq_message_id, message.message_id, forward_index, 0) global_vars.dp.add_handler( MessageHandler(Filters.group & (Filters.text | Filters.command), text_from_telegram, edited_updates=True), get_plugin_priority(__name__)) global_vars.dp.add_handler( MessageHandler(Filters.group & Filters.sticker, sticker_from_telegram), get_plugin_priority(__name__)) global_vars.dp.add_handler( MessageHandler(Filters.group & Filters.audio, audio_from_telegram), get_plugin_priority(__name__)) global_vars.dp.add_handler( MessageHandler(Filters.group & Filters.photo, photo_from_telegram, edited_updates=True), get_plugin_priority(__name__)) global_vars.dp.add_handler( MessageHandler(Filters.group & Filters.document, document_from_telegram, edited_updates=True), get_plugin_priority(__name__)) global_vars.dp.add_handler(
import global_vars from utils import get_plugin_priority, get_full_user_name import logging import telegram from telegram import InlineKeyboardButton, InlineKeyboardMarkup from telegram.ext import CallbackQueryHandler # rely on _000_admins logger = logging.getLogger("CTBPlugin." + __name__) logger.debug(__name__ + " loading") global_vars.create_variable('group_requests', {}) # pending admissions @global_vars.qq_bot.on_request('group', group=get_plugin_priority(__name__)) def event_group_request(context): """ handle qq group add/invite requests with reply markup :param context: post_type string "request" 上报类型 request_type string "group" 请求类型 sub_type string "add"、"invite" 请求子类型,分别表示加群请求、邀请登录号入群 group_id number - 群号 user_id number - 发送请求的 QQ 号 message string - 验证信息 flag string - 请求 flag,在调用处理请求的 API 时需要传入 :return: """ logger.debug(context) group_id = context.get('group_id')
return CHANNEL def cancel_add_channel(bot: telegram.Bot, update: telegram.Update): update.message.reply_text('Done.') return ConversationHandler.END conv_handler = ConversationHandler( entry_points=[ CommandHandler(command='begin_add_channel', callback=begin_add_channel, filters=Filters.private) ], states={ CHANNEL: [MessageHandler(Filters.all & Filters.private, add_channel)] }, fallbacks=[ CommandHandler(command='cancel', callback=cancel_add_channel, filters=Filters.private) ]) global_vars.dp.add_handler(conv_handler, group=get_plugin_priority(__name__)) global_vars.dp.add_handler(CommandHandler(command='add_keyword', callback=add_keyword, filters=Filters.private, pass_args=True), group=get_plugin_priority(__name__)) logger.debug(__name__ + " loaded")