Esempio n. 1
0
    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}

Esempio n. 2
0
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__))
Esempio n. 4
0
    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")