コード例 #1
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=update.effective_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.text | Filters.command),
                   text_from_telegram,
                   edited_updates=True), get_plugin_priority(__name__))
global_vars.dp.add_handler(
    MessageHandler(Filters.sticker, sticker_from_telegram),
    get_plugin_priority(__name__))
global_vars.dp.add_handler(MessageHandler(Filters.audio, audio_from_telegram),
                           get_plugin_priority(__name__))
global_vars.dp.add_handler(
    MessageHandler(Filters.photo, photo_from_telegram, edited_updates=True),
    get_plugin_priority(__name__))
global_vars.dp.add_handler(
    MessageHandler(Filters.document,
                   document_from_telegram,
                   edited_updates=True), get_plugin_priority(__name__))
global_vars.dp.add_handler(MessageHandler(Filters.video, video_from_telegram),
                           get_plugin_priority(__name__))
global_vars.dp.add_handler(
コード例 #2
0
    if args[0] == 'qq':
        if qq_or_tg_id in global_vars.admin_list['QQ']:
            update.message.reply_text(str(qq_or_tg_id) + ' already in list', reply_to_message_id=update.message.message_id)
        else:
            global_vars.admin_list['QQ'].append(qq_or_tg_id)
            update.message.reply_text(str(qq_or_tg_id) + ' added', reply_to_message_id=update.message.message_id)
    elif args[0] == 'tg':
        if qq_or_tg_id in global_vars.admin_list['TG']:
            update.message.reply_text(str(qq_or_tg_id) + ' already in list', reply_to_message_id=update.message.message_id)
        else:
            global_vars.admin_list['TG'].append(qq_or_tg_id)
            update.message.reply_text(str(qq_or_tg_id) + ' added', reply_to_message_id=update.message.message_id)
    else:
        update.message.reply_text('Usage: /add_admin [qq|tg] [qq_id|tg_id]')
        return

    save_data()

global_vars.dp.add_handler(CommandHandler(command='start',
                                          callback=start,
                                          filters=Filters.private),
                           group=get_plugin_priority(__name__))
global_vars.dp.add_handler(CommandHandler(command='add_admin',
                                          callback=add_admin,
                                          filters=Filters.private,
                                          pass_args=True),
                           group=get_plugin_priority(__name__))

logger.debug(__name__ + " loaded")
コード例 #3
0
import datetime
import logging

import global_vars
import telegram
from telegram.ext import MessageHandler, Filters
from telegram.ext.dispatcher import DispatcherHandlerStop

from main.utils import get_plugin_priority

logger = logging.getLogger("CTBPlugin." + __name__)
logger.debug(__name__ + " loading")

# Telegram messages will expire in 60 seconds if bot isn't running
# So other chat session won't be spammed when bot stops and then starts
# If you want to keep all message synced, please simply disable this plugin.


def ignore_old_message(bot: telegram.Bot,
                       update: telegram.Update):  # ignore old message that are more than 60s ago

    if (datetime.datetime.now() - update.message.date).total_seconds() > 60:
        logger.debug('Telegram message ignored: sent more than 60 seconds ago')
        raise DispatcherHandlerStop()


global_vars.dp.add_handler(MessageHandler(Filters.all & Filters.group,
                                          ignore_old_message),
                           get_plugin_priority(__name__))
コード例 #4
0
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__))

global_vars.dp.add_handler(CommandHandler(command='get_keywords',
                                          callback=get_keywords,
                                          filters=Filters.private,
                                          pass_args=True),
                           group=get_plugin_priority(__name__))
global_vars.dp.add_handler(CommandHandler(command='add_user',
                                          callback=add_user,
                                          filters=Filters.private,
                                          pass_args=True),
コード例 #5
0
import global_vars
import telegram
from telegram import InlineKeyboardButton, InlineKeyboardMarkup
from telegram.ext import CallbackQueryHandler

from main.utils import get_plugin_priority, get_full_user_name

# 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')