コード例 #1
0
 • `/report <reason>`*:* reply to a message to report it to admins.
 • `@admin`*:* reply to a message to report it to admins.
*NOTE:* Neither of these will get triggered if used by admins.

*Admins only:*
 • `/reports <on/off>`*:* change report setting, or view current status.
   • If done in pm, toggles your status.
   • If in group, toggles that groups's status.
"""

SETTING_HANDLER = CommandHandler("reports", report_setting, run_async=True)
REPORT_HANDLER = CommandHandler("report",
                                report,
                                filters=Filters.chat_type.groups,
                                run_async=True)
ADMIN_REPORT_HANDLER = MessageHandler(Filters.regex(r"(?i)@admin(s)?"), report)

REPORT_BUTTON_USER_HANDLER = CallbackQueryHandler(buttons, pattern=r"report_")
dispatcher.add_handler(REPORT_BUTTON_USER_HANDLER)

dispatcher.add_handler(SETTING_HANDLER)
dispatcher.add_handler(REPORT_HANDLER, REPORT_GROUP)
dispatcher.add_handler(ADMIN_REPORT_HANDLER, REPORT_GROUP)

__mod_name__ = "Reporting"
__handlers__ = [
    (REPORT_HANDLER, REPORT_GROUP),
    (ADMIN_REPORT_HANDLER, REPORT_GROUP),
    (SETTING_HANDLER),
]
コード例 #2
0

def done(bot, update, args):
    if Helper.not_a_group(update) or Helper.not_authorised(update):
        return

    for arg in args:
        try:
            OrderHandler.update_done_order(bot, update.message.chat.id, int(arg))
        except Exception as error:
            logging.warning('Unable to mark item "%s" as done, error: "%s"' % (arg, error))


# Read config file to get telegram bot token later
with open('config.json') as data_file:
    config_data = json.load(data_file)

updater = Updater(token=config_data['bot_token'])

updater.dispatcher.add_handler(CommandHandler('start', start))
updater.dispatcher.add_handler(CallbackQueryHandler(button))
updater.dispatcher.add_handler(CommandHandler('sub', sub))
updater.dispatcher.add_handler(CommandHandler('unsub', unsub))
updater.dispatcher.add_handler(CommandHandler('help', help))
updater.dispatcher.add_handler(CommandHandler('done', done, pass_args=True))
updater.dispatcher.add_error_handler(error)

updater.start_polling()

updater.idle()
コード例 #3
0
ファイル: welcome.py プロジェクト: kmacprt/HumanoidProBot
                               reset_welcome,
                               filters=Filters.group)
RESET_GOODBYE = CommandHandler("resetgoodbye",
                               reset_goodbye,
                               filters=Filters.group)
WELCOMEMUTE_HANDLER = CommandHandler("welcomemute",
                                     welcomemute,
                                     pass_args=True,
                                     filters=Filters.group)
CLEAN_WELCOME = CommandHandler("cleanwelcome",
                               clean_welcome,
                               pass_args=True,
                               filters=Filters.group)
WELCOME_HELP = CommandHandler("welcomehelp", welcome_help)
WELCOME_MUTE_HELP = CommandHandler("welcomemutehelp", welcome_mute_help)
BUTTON_VERIFY_HANDLER = CallbackQueryHandler(user_button,
                                             pattern=r"user_join_")

dispatcher.add_handler(NEW_MEM_HANDLER)
dispatcher.add_handler(LEFT_MEM_HANDLER)
dispatcher.add_handler(WELC_PREF_HANDLER)
dispatcher.add_handler(GOODBYE_PREF_HANDLER)
dispatcher.add_handler(SET_WELCOME)
dispatcher.add_handler(SET_GOODBYE)
dispatcher.add_handler(RESET_WELCOME)
dispatcher.add_handler(RESET_GOODBYE)
dispatcher.add_handler(CLEAN_WELCOME)
dispatcher.add_handler(WELCOME_HELP)
dispatcher.add_handler(WELCOMEMUTE_HANDLER)
dispatcher.add_handler(BUTTON_VERIFY_HANDLER)
dispatcher.add_handler(WELCOME_MUTE_HELP)
コード例 #4
0
    if query_type == "db_leave_chat":
        if query.from_user.id in admin_list:
            bot.editMessageText("Leaving chats ...", chat_id,
                                message.message_id)
            chat_count = get_muted_chats(update, context, True)
            bot.sendMessage(chat_id, f"Left {chat_count} chats.")
        else:
            query.answer("You are not allowed to use this.")
    elif query_type == "db_cleanup":
        if query.from_user.id in admin_list:
            bot.editMessageText("Cleaning up DB ...", chat_id,
                                message.message_id)
            invalid_chat_count = get_invalid_chats(update, context, True)
            invalid_gban_count = get_invalid_gban(update, context, True)
            reply = "Cleaned up {} chats and {} gbanned users from db.".format(
                invalid_chat_count, invalid_gban_count)
            bot.sendMessage(chat_id, reply)
        else:
            query.answer("You are not allowed to use this.")


DB_CLEANUP_HANDLER = CommandHandler("dbcleanup", dbcleanup)
BUTTON_HANDLER = CallbackQueryHandler(callback_button, pattern="db_.*")

dispatcher.add_handler(DB_CLEANUP_HANDLER)
dispatcher.add_handler(BUTTON_HANDLER)

__mod_name__ = "DB Cleanup"
__handlers__ = [DB_CLEANUP_HANDLER, BUTTON_HANDLER]
コード例 #5
0
def startup():
    print('main called')

    msg_queue = mq.MessageQueue(all_burst_limit=28, all_time_limit_ms=1050)
    request = Request(con_pool_size=8)
    TOKEN = open('campobot/token/token_test.txt', 'r').read().strip()
    campo_bot = MQBot(TOKEN, request=request, mqueue=msg_queue)

    updater = Updater(bot=campo_bot)
    dispatcher = updater.dispatcher
    logging.basicConfig(
        format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
        level=logging.INFO)

    jobs = updater.job_queue
    jobs.run_daily(callback=report_notification_job,
                   time=datetime.time(hour=12, minute=30))

    # Help Handler
    dispatcher.add_handler(
        CallbackQueryHandler(callback=help_callback,
                             pattern=CALLBACK_HELP_INTRO))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=help_callback,
                             pattern=CALLBACK_HELP_HOURS))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=help_callback,
                             pattern=CALLBACK_HELP_CRON))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=help_callback,
                             pattern=CALLBACK_HELP_PUBS))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=help_callback,
                             pattern=CALLBACK_HELP_VIDEOS))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=help_callback,
                             pattern=CALLBACK_HELP_RETURNS))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=help_callback,
                             pattern=CALLBACK_HELP_STUDIES))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=help_callback,
                             pattern=CALLBACK_HELP_REPORT))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=help_callback,
                             pattern=CALLBACK_HELP_HOURS_DEMO))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=help_callback,
                             pattern=CALLBACK_HELP_CRON_DEMO))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=help_callback,
                             pattern=CALLBACK_HELP_VIDEOS_DEMO))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=help_callback,
                             pattern=CALLBACK_HELP_PUBS_DEMO))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=help_callback,
                             pattern=CALLBACK_HELP_RETURNS_DEMO))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=help_callback,
                             pattern=CALLBACK_HELP_STUDIES_DEMO))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=help_callback,
                             pattern=CALLBACK_HELP_REPORT_DEMO))
    dispatcher.add_handler(
        RegexHandler(callback=help_inline,
                     pattern=str(Regex.START_WITH_EMOJI_SLASH +
                                 Regex.HELP_COMMAND)))

    # Cron Handler
    dispatcher.add_handler(
        CallbackQueryHandler(callback=cron_callback,
                             pattern=CALLBACK_CRON_START,
                             pass_user_data=True))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=cron_callback,
                             pattern=CALLBACK_CRON_UPDATE,
                             pass_user_data=True))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=cron_callback,
                             pattern=CALLBACK_CRON_STOP,
                             pass_user_data=True))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=cron_callback,
                             pattern=CALLBACK_CRON_SAVE,
                             pass_user_data=True))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=cron_callback,
                             pattern=CALLBACK_CRON_DISCARD,
                             pass_user_data=True))
    dispatcher.add_handler(
        RegexHandler(callback=cron_inline,
                     pattern=str(Regex.START_WITH_EMOJI_SLASH +
                                 Regex.CRON_COMMAND),
                     pass_user_data=True))

    # Videos Handler
    dispatcher.add_handler(
        CallbackQueryHandler(callback=video_callback,
                             pattern=CALLBACK_VIDEO_ADD_ONE))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=video_callback,
                             pattern=CALLBACK_VIDEO_ADD_THREE))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=video_callback,
                             pattern=CALLBACK_VIDEO_REMOVE_ONE))
    dispatcher.add_handler(
        RegexHandler(callback=video_offline_add_callback,
                     pattern=Regex.VIDEO_OFFLINE_ADD))
    dispatcher.add_handler(
        RegexHandler(callback=video_offline_remove_callback,
                     pattern=Regex.VIDEO_OFFLINE_REMOVE))
    dispatcher.add_handler(
        RegexHandler(callback=video_inline,
                     pattern=str(Regex.START_WITH_EMOJI_SLASH +
                                 Regex.VIDEO_COMMAND)))

    # Report Handler
    dispatcher.add_handler(
        CallbackQueryHandler(callback=reports_callback,
                             pattern=CALLBACK_REPORT_LAST_MONTH))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=reports_callback,
                             pattern=CALLBACK_REPORT_CURRENT_MONTH))
    dispatcher.add_handler(
        RegexHandler(callback=reports_inline,
                     pattern=str(Regex.START_WITH_EMOJI_SLASH +
                                 Regex.REPORT_COMMAND)))

    # Studies Handler
    dispatcher.add_handler(
        CallbackQueryHandler(callback=studies_callback,
                             pattern=CALLBACK_STUDIES_ADD_ONE))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=studies_callback,
                             pattern=CALLBACK_STUDIES_ADD_THREE))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=studies_callback,
                             pattern=CALLBACK_STUDIES_REMOVE_ONE))
    dispatcher.add_handler(
        RegexHandler(callback=studies_offline_add_callback,
                     pattern=Regex.STUDIES_OFFLINE_ADD))
    dispatcher.add_handler(
        RegexHandler(callback=studies_offline_remove_callback,
                     pattern=Regex.STUDIES_OFFLINE_REMOVE))
    dispatcher.add_handler(
        RegexHandler(callback=studies_inline,
                     pattern=str(Regex.START_WITH_EMOJI_SLASH +
                                 Regex.STUDIES_COMMAND)))

    # Pubs Handler
    dispatcher.add_handler(
        CallbackQueryHandler(callback=pubs_callback,
                             pattern=CALLBACK_PUBS_ADD_ONE))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=pubs_callback,
                             pattern=CALLBACK_PUBS_ADD_THREE))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=pubs_callback,
                             pattern=CALLBACK_PUBS_REMOVE_ONE))
    dispatcher.add_handler(
        RegexHandler(callback=pubs_offline_add_callback,
                     pattern=Regex.PUBS_OFFLINE_ADD))
    dispatcher.add_handler(
        RegexHandler(callback=pubs_offline_remove_callback,
                     pattern=Regex.PUBS_OFFLINE_REMOVE))
    dispatcher.add_handler(
        RegexHandler(callback=pubs_inline,
                     pattern=str(Regex.START_WITH_EMOJI_SLASH +
                                 Regex.PUBS_COMMAND)))

    # Hours Handler
    dispatcher.add_handler(
        CallbackQueryHandler(callback=hours_callback,
                             pattern=CALLBACK_HOURS_ADD,
                             pass_user_data=True))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=hours_callback,
                             pattern=CALLBACK_HOURS_MINUTES_ADD,
                             pass_user_data=True))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=hours_callback,
                             pattern=CALLBACK_HOURS_ADD_ONE_HOUR,
                             pass_user_data=True))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=hours_callback,
                             pattern=CALLBACK_HOURS_ADD_TWO_HOURS,
                             pass_user_data=True))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=hours_callback,
                             pattern=CALLBACK_HOURS_REMOVE_ONE_HOUR,
                             pass_user_data=True))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=hours_callback,
                             pattern=CALLBACK_HOURS_REMOVE_TWO_HOURS,
                             pass_user_data=True))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=hours_callback,
                             pattern=CALLBACK_HOURS_ADD_THIRTY_MINUTES))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=hours_callback,
                             pattern=CALLBACK_HOURS_ADD_TEN_MINUTES))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=hours_callback,
                             pattern=CALLBACK_HOURS_ADD_FIVE_MINUTES))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=hours_callback,
                             pattern=CALLBACK_HOURS_REMOVE_THIRTY_MINUTES))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=hours_callback,
                             pattern=CALLBACK_HOURS_REMOVE_TEN_MINUTES))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=hours_callback,
                             pattern=CALLBACK_HOURS_REMOVE_FIVE_MINUTES))
    dispatcher.add_handler(
        RegexHandler(callback=callback_offline_add_hours,
                     pattern=Regex.HOURS_OFFLINE_ADD))
    dispatcher.add_handler(
        RegexHandler(callback=callback_offline_remove_hours,
                     pattern=Regex.HOURS_OFFLINE_REMOVE))
    dispatcher.add_handler(
        RegexHandler(callback=callback_offline_add_minutes,
                     pattern=Regex.HOURS_OFFLINE_ADD_MINUTES))
    dispatcher.add_handler(
        RegexHandler(callback=callback_offline_remove_minutes,
                     pattern=Regex.HOURS_OFFLINE_REMOVE_MINUTES))
    dispatcher.add_handler(
        RegexHandler(callback=hours_inline,
                     pattern=str(Regex.START_WITH_EMOJI_SLASH +
                                 Regex.HOURS_COMMAND)))

    # Returns Handler
    dispatcher.add_handler(
        CallbackQueryHandler(callback=returns_callback,
                             pattern=CALLBACK_RETURNS_ADD_ONE))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=returns_callback,
                             pattern=CALLBACK_RETURNS_ADD_THREE))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=returns_callback,
                             pattern=CALLBACK_RETURNS_REMOVE_ONE))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=returns_callback,
                             pattern=CALLBACK_RETURNS_LIST))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=returns_callback,
                             pattern=CALLBACK_RETURNS_INSTERESTED))
    dispatcher.add_handler(
        RegexHandler(callback=returns_offline_add_callback,
                     pattern=Regex.RETURNS_OFFLINE_ADD))
    dispatcher.add_handler(
        RegexHandler(callback=returns_offline_remove_callback,
                     pattern=Regex.RETURNS_OFFLINE_REMOVE))
    dispatcher.add_handler(
        RegexHandler(callback=returns_inline,
                     pattern=str(Regex.START_WITH_EMOJI_SLASH +
                                 Regex.RETURNS_COMMAND)))
    dispatcher.add_handler(
        RegexHandler(callback=returns_people_callback,
                     pattern=Regex.RETURNS_PEOPLE))
    dispatcher.add_handler(
        RegexHandler(callback=returns_people_remove_callback,
                     pattern=Regex.RETURNS_PEOPLE_REMOVE))

    # Commands Handler
    dispatcher.add_handler(CommandHandler('start', start, pass_user_data=True))
    dispatcher.add_handler(
        RegexHandler(callback=callback_404,
                     pattern=Regex.NOT_FOUND_404))  # Must be last one
    dispatcher.add_error_handler(error)

    # Start MongoDB and Bot
    startup_mongodb()
    updater.start_polling()
コード例 #6
0
def main():
    updater = Updater(token=TOKEN, use_context=True)
    dispatcher = updater.dispatcher
    conv_handler = ConversationHandler(
        entry_points=[CommandHandler('start', init_Proposal)],
        states={
            SELECT_ACTION: [
                CallbackQueryHandler(init_add_docx, pattern=ADD_DOCX),
                CallbackQueryHandler(init_content_dict,
                                     pattern=ADD_CONTENT_DICT),
                CallbackQueryHandler(init_add_info, pattern=ADD_INFO),
                CallbackQueryHandler(show_buttons, pattern=SHOW_BUTTONS),
                CallbackQueryHandler(start, pattern=START),
                CallbackQueryHandler(settings, pattern=SETTINGS),
                CallbackQueryHandler(how_to_use, pattern=HOW_TO_USE),
                CallbackQueryHandler(change_mode, pattern=CHANGE_MODE),

                # CallbackQueryHandler(engineers_settings,
                # pattern=ENGINEERS_SETTINGS),
                CallbackQueryHandler(choose_engineers,
                                     pattern=CHOOSE_ENGINEER),
                CallbackQueryHandler(init_add_new_engineer,
                                     pattern=ADD_NEW_ENGINEER),
                CallbackQueryHandler(add_engineer_to_proposal,
                                     pattern=f'.+{ADD_ENGINEER_TO_PROPOSAL}$'),
                CallbackQueryHandler(init_add_engineers_rate,
                                     pattern=ADD_ENGINEERS_RATE),
                CallbackQueryHandler(edit_title, pattern=f'.+{EDIT_TITLE}$'),
                CallbackQueryHandler(choose_title_to_edit,
                                     pattern=CHOOSE_TITLE_TO_EDIT),
                CallbackQueryHandler(get_test_pdf_dict, pattern=TEST),
                CallbackQueryHandler(generate_html, pattern=CREATE_PDF),
                CommandHandler('stop', end)
            ],
            STORE_DATA: [MessageHandler(Filters.text, store_data)],
            STORE_ENGINEER_TO_DB:
            [MessageHandler(Filters.photo, store_engineer_to_db)],
            STORE_DOCX: [MessageHandler(Filters.document.docx, store_docx)],
        },
        fallbacks=[CallbackQueryHandler(end, pattern=END)],
        allow_reentry=True,
        per_message=False)

    dispatcher.add_handler(conv_handler)

    updater.start_polling()
    updater.idle()
コード例 #7
0
ファイル: warns.py プロジェクト: attitudeking1/LOVELY
 • `/addwarn <keyword> <reply message>`*:* set a warning filter on a certain keyword. If you want your keyword to \
be a sentence, encompass it with quotes, as such: `/addwarn "very angry" This is an angry user`.
 • `/nowarn <keyword>`*:* stop a warning filter
 • `/warnlimit <num>`*:* set the warning limit
 • `/strongwarn <on/yes/off/no>`*:* If set to on, exceeding the warn limit will result in a ban. Else, will just punch.
"""

__mod_name__ = "Warnings"

WARN_HANDLER = CommandHandler(["warn", "dwarn"],
                              warn_user,
                              filters=Filters.group)
RESET_WARN_HANDLER = CommandHandler(["resetwarn", "resetwarns"],
                                    reset_warns,
                                    filters=Filters.group)
CALLBACK_QUERY_HANDLER = CallbackQueryHandler(button, pattern=r"rm_warn")
MYWARNS_HANDLER = DisableAbleCommandHandler("warns",
                                            warns,
                                            filters=Filters.group)
ADD_WARN_HANDLER = CommandHandler("addwarn",
                                  add_warn_filter,
                                  filters=Filters.group)
RM_WARN_HANDLER = CommandHandler(["nowarn", "stopwarn"],
                                 remove_warn_filter,
                                 filters=Filters.group)
LIST_WARN_HANDLER = DisableAbleCommandHandler(["warnlist", "warnfilters"],
                                              list_warn_filters,
                                              filters=Filters.group,
                                              admin_ok=True)
WARN_FILTER_HANDLER = MessageHandler(CustomFilters.has_text & Filters.group,
                                     reply_filter)
コード例 #8
0
ファイル: app.py プロジェクト: lpmatos/corona-tracker
def main():
    # Create the Updater and pass it your bot's token.
    # Make sure to set use_context=True to use the new context based callbacks
    # Post version 12 this will no longer be necessary
    updater = Updater("1125616254:AAF-MKSNL0AjbPZ3ZlGMBHYZ8mCoTOP7GsA",
                      use_context=True)

    # Get the dispatcher to register handlers
    dp = updater.dispatcher

    # Set up third level ConversationHandler (collecting features)
    description_conv = ConversationHandler(
        entry_points=[
            CallbackQueryHandler(select_feature,
                                 pattern='^' + str(MALE) + '$|^' +
                                 str(FEMALE) + '$')
        ],
        states={
            SELECTING_FEATURE: [
                CallbackQueryHandler(ask_for_input,
                                     pattern='^(?!' + str(END) + ').*$')
            ],
            TYPING: [MessageHandler(Filters.text, save_input)],
        },
        fallbacks=[
            CallbackQueryHandler(end_describing, pattern='^' + str(END) + '$'),
            CommandHandler('stop', stop_nested)
        ],
        map_to_parent={
            # Return to second level menu
            END: SELECTING_LEVEL,
            # End conversation alltogether
            STOPPING: STOPPING,
        })

    # Set up second level ConversationHandler (adding a person)
    add_member_conv = ConversationHandler(
        entry_points=[
            CallbackQueryHandler(select_level,
                                 pattern='^' + str(ADDING_MEMBER) + '$')
        ],
        states={
            SELECTING_LEVEL: [
                CallbackQueryHandler(select_gender,
                                     pattern='^{0}$|^{1}$'.format(
                                         str(PARENTS), str(CHILDREN)))
            ],
            SELECTING_GENDER: [description_conv]
        },
        fallbacks=[
            CallbackQueryHandler(show_data, pattern='^' + str(SHOWING) + '$'),
            CallbackQueryHandler(end_second_level,
                                 pattern='^' + str(END) + '$'),
            CommandHandler('stop', stop_nested)
        ],
        map_to_parent={
            # After showing data return to top level menu
            SHOWING: SHOWING,
            # Return to top level menu
            END: SELECTING_ACTION,
            # End conversation alltogether
            STOPPING: END,
        })

    # Set up top level ConversationHandler (selecting action)
    conv_handler = ConversationHandler(
        entry_points=[CommandHandler('start', start)],
        states={
            SHOWING:
            [CallbackQueryHandler(start, pattern='^' + str(END) + '$')],
            SELECTING_ACTION: [
                add_member_conv,
                CallbackQueryHandler(show_data,
                                     pattern='^' + str(SHOWING) + '$'),
                CallbackQueryHandler(adding_self,
                                     pattern='^' + str(ADDING_SELF) + '$'),
                CallbackQueryHandler(end, pattern='^' + str(END) + '$'),
            ],
            DESCRIBING_SELF: [description_conv],
        },
        fallbacks=[CommandHandler('stop', stop)],
    )
    # Because the states of the third level conversation map to the ones of the
    # second level conversation, we need to be a bit hacky about that:
    conv_handler.states[SELECTING_LEVEL] = conv_handler.states[
        SELECTING_ACTION]
    conv_handler.states[STOPPING] = conv_handler.entry_points

    dp.add_handler(conv_handler)

    # log all errors
    dp.add_error_handler(error)

    # Start the Bot
    updater.start_polling()

    # Run the bot until you press Ctrl-C or the process receives SIGINT,
    # SIGTERM or SIGABRT. This should be used most of the time, since
    # start_polling() is non-blocking and will stop the bot gracefully.
    updater.idle()
コード例 #9
0
    except:
        pass

def watch(update, context):
    _watch(context.bot, update)

def watchZip(update, context):
    _watch(context.bot, update, True)

def leechWatch(update, context):
    _watch(context.bot, update, isLeech=True)

def leechWatchZip(update, context):
    _watch(context.bot, update, True, True)

watch_handler = CommandHandler(BotCommands.WatchCommand, watch,
                                filters=CustomFilters.authorized_chat | CustomFilters.authorized_user, run_async=True)
zip_watch_handler = CommandHandler(BotCommands.ZipWatchCommand, watchZip,
                                    filters=CustomFilters.authorized_chat | CustomFilters.authorized_user, run_async=True)
leech_watch_handler = CommandHandler(BotCommands.LeechWatchCommand, leechWatch,
                                filters=CustomFilters.authorized_chat | CustomFilters.authorized_user, run_async=True)
leech_zip_watch_handler = CommandHandler(BotCommands.LeechZipWatchCommand, leechWatchZip,
                                    filters=CustomFilters.authorized_chat | CustomFilters.authorized_user, run_async=True)
quality_handler = CallbackQueryHandler(select_format, pattern="qu", run_async=True)

dispatcher.add_handler(watch_handler)
dispatcher.add_handler(zip_watch_handler)
dispatcher.add_handler(leech_watch_handler)
dispatcher.add_handler(leech_zip_watch_handler)
dispatcher.add_handler(quality_handler)
コード例 #10
0
                           language_settings_choice),
            MessageHandler(Filters.regex('^Изменить язык$'),
                           language_settings_choice),
            MessageHandler(Filters.regex('^⬅️ Orqaga$'), main_choice),
            MessageHandler(Filters.regex('^⬅️ Назад$'), main_choice),
            MessageHandler(Filters.all, do_nothing)
        ],
        SAVING_PHONE_SETTINGS: [
            MessageHandler(Filters.regex('^⬅️ Orqaga$'), settings_choice),
            MessageHandler(Filters.regex('^⬅️ Назад$'), settings_choice),
            MessageHandler(Filters.contact, set_user_phone),
            MessageHandler(Filters.all, do_nothing)
        ],
        SAVING_LANGUAGE_SETTINGS: [
            MessageHandler(Filters.regex('^🇺🇿 O\'zbekcha$'), set_user_uzbek),
            MessageHandler(Filters.regex('^🇷🇺 Русский'), set_user_russian),
            MessageHandler(Filters.all, do_nothing)
        ]
    },
    fallbacks=[MessageHandler(Filters.regex('^Done$'), cancel)],
    allow_reentry=True)
dp.add_handler(MessageHandler(Filters.location, location))
dp.add_handler(conv_handler)
dp.add_handler(CallbackQueryHandler(manage))
dp.add_handler(MessageHandler(Filters.all, echo))
dp.add_error_handler(error)
#dp.add_handler(MessageHandler(Filters.text, verify))

updater.start_polling()
updater.idle()
コード例 #11
0
    """Fetch URL of the latest comic from its individual page"""
    response = requests.get(comic_url_homepage)
    soup = BeautifulSoup(response.content, 'html.parser')
    latest_comic = soup.find('figure')
    # Grab the link for the individual page of the comic as we can start crawling from that
    comic_uri_part = latest_comic.find('meta',
                                       {'itemprop': 'contentUrl'})['content']
    comic_url = f"{URL_BASE}{comic_uri_part}"
    return comic_url


handler_conversation = ConversationHandler(
    entry_points=[CommandHandler('comics', _start)],
    states={
        State.MENU: [
            CallbackQueryHandler(_random_menu,
                                 pattern=f"^{Command.RANDOM_MENU}$"),
            CallbackQueryHandler(_schedule_menu,
                                 pattern=f"^{Command.SCHEDULE_MENU}$"),
            CallbackQueryHandler(helper.cancel, pattern=f"^{Command.CANCEL}$"),
        ],
        State.SCHEDULE: [
            CallbackQueryHandler(helper.cancel, pattern=f"^{Command.CANCEL}$"),
            CallbackQueryHandler(_schedule_post),
        ],
        State.RANDOM: [
            CallbackQueryHandler(helper.cancel, pattern=f"^{Command.CANCEL}$"),
            CallbackQueryHandler(_random_post),
        ]
    },
    fallbacks=[MessageHandler(Filters.all, helper.confused)])
コード例 #12
0
__mod_name__ = "Anti-Flood"

FLOOD_BAN_HANDLER = MessageHandler(Filters.all & ~Filters.status_update
                                   & Filters.chat_type.groups,
                                   check_flood,
                                   run_async=True)
SET_FLOOD_HANDLER = CommandHandler("setflood",
                                   set_flood,
                                   filters=Filters.chat_type.groups,
                                   run_async=True)
SET_FLOOD_MODE_HANDLER = CommandHandler(
    "setfloodmode", set_flood_mode,
    run_async=True)  # , filters=Filters.chat_type.groups)
FLOOD_QUERY_HANDLER = CallbackQueryHandler(flood_button,
                                           pattern=r"unmute_flooder",
                                           run_async=True)
FLOOD_HANDLER = CommandHandler("flood",
                               flood,
                               filters=Filters.chat_type.groups,
                               run_async=True)

dispatcher.add_handler(FLOOD_BAN_HANDLER, FLOOD_GROUP)
dispatcher.add_handler(FLOOD_QUERY_HANDLER)
dispatcher.add_handler(SET_FLOOD_HANDLER)
dispatcher.add_handler(SET_FLOOD_MODE_HANDLER)
dispatcher.add_handler(FLOOD_HANDLER)

__handlers__ = [
    (FLOOD_BAN_HANDLER, FLOOD_GROUP),
    SET_FLOOD_HANDLER,
コード例 #13
0
ファイル: warns.py プロジェクト: hyper-ub/MissMarvel
*Admin only:*
 - /warn <userhandle>: warn a user. After 3 warns, the user will be banned from the group. Can also be used as a reply.
 - /resetwarn <userhandle>: reset the warnings for a user. Can also be used as a reply.
 - /addwarn <keyword> <reply message>: set a warning filter on a certain keyword. If you want your keyword to \
be a sentence, encompass it with quotes, as such: `/addwarn "very angry" This is an angry user`. 
 - /nowarn <keyword>: stop a warning filter
 - /warnlimit <num>: set the warning limit
 - /strongwarn <on/yes/off/no>: If set to on, exceeding the warn limit will result in a ban. Else, will just kick.
"""

__mod_name__ = "Warnings"

WARN_HANDLER = CommandHandler("warn", warn_user, pass_args=True, filters=Filters.group)
RESET_WARN_HANDLER = CommandHandler(["resetwarn", "resetwarns"], reset_warns, pass_args=True, filters=Filters.group)
RMWARN_QUERY_HANDLER = CallbackQueryHandler(rmwarn_handler, pattern=r"rm_warn")
SENDRULES_QUERY_HANDLER = CallbackQueryHandler(sendrules_handler, pattern=r"send_rules")
MYWARNS_HANDLER = DisableAbleCommandHandler("warns", warns, pass_args=True, filters=Filters.group)
ADD_WARN_HANDLER = CommandHandler("addwarn", add_warn_filter, filters=Filters.group)
RM_WARN_HANDLER = CommandHandler(["nowarn", "stopwarn"], remove_warn_filter, filters=Filters.group)
LIST_WARN_HANDLER = DisableAbleCommandHandler(["warnlist", "warnfilters"], list_warn_filters, filters=Filters.group, admin_ok=True)
WARN_FILTER_HANDLER = MessageHandler(CustomFilters.has_text & Filters.group, reply_filter)
WARN_LIMIT_HANDLER = CommandHandler("warnlimit", set_warn_limit, pass_args=True, filters=Filters.group)
WARN_STRENGTH_HANDLER = CommandHandler("strongwarn", set_warn_strength, pass_args=True, filters=Filters.group)

dispatcher.add_handler(WARN_HANDLER)
dispatcher.add_handler(RMWARN_QUERY_HANDLER)
dispatcher.add_handler(SENDRULES_QUERY_HANDLER)
dispatcher.add_handler(RESET_WARN_HANDLER)
dispatcher.add_handler(MYWARNS_HANDLER)
dispatcher.add_handler(ADD_WARN_HANDLER)
コード例 #14
0
ファイル: main.py プロジェクト: arimasterskkk/royal-mifia

updater.dispatcher.add_handler(CommandHandler('ping', ping))
updater.dispatcher.add_handler(CommandHandler('newgame', newgame))
updater.dispatcher.add_handler(CommandHandler('join', join))
updater.dispatcher.add_handler(CommandHandler('debugjoin', debugjoin))
updater.dispatcher.add_handler(CommandHandler('endjoin', endjoin))
updater.dispatcher.add_handler(CommandHandler('endday', endday))
updater.dispatcher.add_handler(CommandHandler('power', power))
updater.dispatcher.add_handler(CommandHandler('status', status))
updater.dispatcher.add_handler(CommandHandler('role', role))
updater.dispatcher.add_handler(CommandHandler('debug', debug))
updater.dispatcher.add_handler(CommandHandler('debuggameslist',
                                              debuggameslist))
updater.dispatcher.add_handler(CommandHandler('kill', kill))
updater.dispatcher.add_handler(CommandHandler('save', save))
updater.dispatcher.add_handler(CommandHandler('load', load))
updater.dispatcher.add_handler(CommandHandler('delete', delete))
updater.dispatcher.add_handler(
    CommandHandler('debugchangerole', debugchangerole))
updater.dispatcher.add_handler(CallbackQueryHandler(inlinekeyboard))
updater.dispatcher.add_error_handler(breakpoint_here)

if __name__ == "__main__":
    updater.start_polling()
    while True:
        try:
            updater.idle()
        except TimedOut:
            time.sleep(10)
コード例 #15
0
                caption=tl(
                    update.effective_message,
                    "*Berhasil!*\n\nKerja bagus manusia, kini Anda dapat chatting di: *{}*"
                ).format(chat_name),
                parse_mode="markdown"))
        query.answer(text=tl(
            update.effective_message,
            "Berhasil! Anda dapat chatting di {} sekarang").format(chat_name),
                     show_alert=True)
    else:
        context.bot.edit_message_media(
            chat.id,
            message_id=query.message.message_id,
            media=InputMediaPhoto(
                media="https://telegra.ph/file/d81cdcbafb240071add84.jpg",
                caption=tl(
                    update.effective_message,
                    "Maaf robot, kamu telah salah klik tombol verifikasi.\n\nCoba lagi dengan klik tombol verifikasi pada pesan selamat datang."
                ),
                parse_mode="markdown"))
        query.answer(text=tl(
            update.effective_message,
            "Gagal! Kamu telah salah mengklik tombol verifikasi"),
                     show_alert=True)


verify_callback_handler = CallbackQueryHandler(verify_button_pressed,
                                               pattern=r"verify_me")

dispatcher.add_handler(verify_callback_handler)
コード例 #16
0
ファイル: support.py プロジェクト: VID-STUDY/Moplan
                                                                                           'user'].get('name'),
                                                                                       date=now_date,
                                                                                       question=question_text)
        support_keyboard = keyboards.get_support_keyboard(link=(Config.APP_URL + '/users/' + str(user_id) + '/edit'))
        context.bot.send_message(chat_id=Config.TELEGRAM_SUPPORT_GROUP, text=support_message, parse_mode=ParseMode.HTML,
                                 reply_markup=support_keyboard)
        message = context.user_data['support_message']
        context.bot.delete_message(chat_id=message.chat_id, message_id=message.message_id)
        success_message = strings.get_string('support.success', language)
        update.message.reply_text(text=success_message)
        Navigation.to_account(update, context, new_message=True)
        del context.user_data['has_action']
        return ConversationHandler.END
    else:
        return SUPPORT


support_conversation = ConversationHandler(
    entry_points=[CallbackQueryHandler(start, pattern='account:support')],
    states={
        SUPPORT: [MessageHandler(TelegramFilters.text, support)]
    },
    fallbacks=[
        account.account_handler,
        referral.referral_handler,
        faq.faq_handler,
        about.about_handler,
        news.news_handler
    ]
)
コード例 #17
0
def main(poll=True):
    telegram_token = os.environ['TELEGRAM_TOKEN']
    updater = Updater(telegram_token)
    disp = updater.dispatcher
    disp.add_error_handler(error)

    conv_handler = ConversationHandler(
        entry_points=[CommandHandler('start', start, pass_user_data=True), ],

        states={
            CHOICE: [CallbackQueryHandler(start_button, pass_user_data=True)],
            LOCATION: [MessageHandler(Filters.location, got_location, pass_user_data=True)],
            GET_DATA: [CallbackQueryHandler(data_from_db, pass_user_data=True)],
            FILTERS: [CallbackQueryHandler(filters, pass_user_data=True)],
            SELECT_STATION: [CallbackQueryHandler(select_station, pass_user_data=True)],
            PHOTO: [(MessageHandler(Filters.document, send_file_dbx, pass_user_data=True)),
                    MessageHandler(Filters.photo, send_file_dbx, pass_user_data=True)],
            PAGINATION: [CallbackQueryHandler(pagin_handler, pass_user_data=True)],
            STEPCHANGE: [CallbackQueryHandler(step_set, pass_user_data=True),
                         RegexHandler(r'\d{1,3}', step_set, pass_user_data=True)],
            FILTERS_CHANGE: [CallbackQueryHandler(filters_change, pass_user_data=True)],
            DATE_CHOICE: [CallbackQueryHandler(date_choice, pass_user_data=True)],
            DATE_OR_RANGE: [CallbackQueryHandler(date_range_or_spec, pass_user_data=True)],
            DATE_RANGE_CHOICE: [CallbackQueryHandler(date_range_choice, pass_user_data=True)],
            FILTER_SELECTION: [CallbackQueryHandler(filter_selection,
                                                            pass_user_data=True)],
            STAT_FUNCTION: [CallbackQueryHandler(stat_function, pass_user_data=True)]
        },

        fallbacks=[CommandHandler('cancel', cancel, pass_user_data=True)]
    )
    disp.add_handler(conv_handler)
    disp.add_handler(CommandHandler("help", helpme))
    disp.add_handler(CommandHandler("start", start, pass_user_data=True))
    disp.add_error_handler(error)

    if poll:
        updater.start_polling()
        updater.idle()
    else:
        updater.start_webhook(listen="0.0.0.0",
                              port=int(os.environ['PORT']),
                              url_path=telegram_token)
        updater.bot.setWebhook(f'{os.environ["URL_PATH"]}/{telegram_token}')
        updater.idle()
コード例 #18
0
ファイル: main_bot.py プロジェクト: DenKol-hub/LokNedbot
def main():
    updater = Updater("1549956005:AAGbQQsAjmO6ZWHxY4hdpIKCITrZglKQRC0", use_context=True)

    dp = updater.dispatcher

    dp.add_handler(CommandHandler("start", start))
    dp.add_handler(CommandHandler("help", help))
    dp.add_handler(CallbackQueryHandler( kafedra_KMAD  , pattern = 'kafedra_KMAD'))
    dp.add_handler(CallbackQueryHandler( umovy_vstupu  , pattern = 'umovy_vstupu'))
    dp.add_handler(CallbackQueryHandler(moglyv_stud, pattern = 'moglyv_stud'))
    
    #kafedra_kmad
    dp.add_handler(CallbackQueryHandler(vykladach,
                                        pattern ='vykladach'))

    dp.add_handler(CallbackQueryHandler(vidmin_kaf,
                                        pattern ='vidmin_kaf'))

    dp.add_handler(CallbackQueryHandler(hist_kaf,
                                        pattern ='hist_kaf'))

    dp.add_handler(CallbackQueryHandler(aud_kaf,
                                        pattern ='aud_kaf'))

    dp.add_handler(CallbackQueryHandler(n_vypuskniki,
                                        pattern ='n_vypuskniki'))

    
    dp.add_handler(CallbackQueryHandler(proekt_nav, pattern = 'proekt_nav'))
    dp.add_handler(CallbackQueryHandler(du_osvita, pattern = 'du_osvita'))
    dp.add_handler(CallbackQueryHandler(pracevl, pattern = 'pracevl'))
    dp.add_handler(CallbackQueryHandler(prakt, pattern = 'prakt'))
       
      #umovy_vstupu
    
    dp.add_handler(CallbackQueryHandler(konk_pred_ZNO,
                                        pattern ='konk_pred_ZNO'))
    dp.add_handler(CallbackQueryHandler(pozp_konk_bal,
                                        pattern ='pozp_konk_bal'))
    dp.add_handler(CallbackQueryHandler(etap_vstup_komp,
                                        pattern ='etap_vstup_komp'))
    dp.add_handler(CallbackQueryHandler(kor_pos,
                                        pattern ='kor_pos'))
    dp.add_handler(CallbackQueryHandler(mt_budj_kont_mt_vstup,
                                        pattern ='mt_budj_kont_mt_vstup'))
    
    '''
    dp.add_handler(CallbackQueryHandler(about_of_CMAD_department,
                                    pattern = 'about_of_CMAD_department'))
    dp.add_handler(CallbackQueryHandler(opportunties_for_the_student,
                                    pattern = 'opportunties_for_the_student'))
    dp.add_handler(CallbackQueryHandler(conditions_of_entry,
                                    pattern = 'conditions_of_entry'))
    ''' 
     #dfdua

      

    #djfdsfusdu

      

    dp.add_handler(MessageHandler(Filters.text, echo))

    dp.add_error_handler(error)
    updater.start_polling()
    updater.idle()
    
    dp.add_handler(CallbackQueryHandler(vykladach,
                                        pattern ='Викладачі'))

    dp.add_handler(CallbackQueryHandler(vidmin_kaf,
                                        pattern ='Відомості о Кафедрі'))

    dp.add_handler(CallbackQueryHandler(hist_kaf,
                                        pattern ='Історична Кафедра'))

    dp.add_handler(CallbackQueryHandler(aud_kaf,
                                        pattern ='Аудеторія Кафедри'))

    dp.add_handler(CallbackQueryHandler(n_vypuskniki,
                                        pattern ='Наші Випусники'))
コード例 #19
0
ファイル: approve.py プロジェクト: RyomenSukuna/Sukuna
                "Removing of all approved users has been cancelled.")
            return ""
        if member.status == "administrator":
            query.answer("Only owner of the chat can do this.")
        if member.status == "member":
            query.answer("You need to be admin to do this.")

from tg_bot.modules.language import gs

def get_help(chat):
    return gs(chat, "approve_help")

APPROVE = DisableAbleCommandHandler("approve", approve, run_async=True, filters=Filters.chat_type.groups)
DISAPPROVE = DisableAbleCommandHandler("unapprove", disapprove, run_async=True, filters=Filters.chat_type.groups)
APPROVED = DisableAbleCommandHandler("approved", approved, run_async=True, filters=Filters.chat_type.groups)
APPROVAL = DisableAbleCommandHandler("approval", approval, run_async=True, filters=Filters.chat_type.groups)
UNAPPROVEALL = DisableAbleCommandHandler("unapproveall", unapproveall, run_async=True, filters=Filters.chat_type.groups)
UNAPPROVEALL_BTN = CallbackQueryHandler(
    unapproveall_btn, pattern=r"unapproveall_.*")

dispatcher.add_handler(APPROVE)
dispatcher.add_handler(DISAPPROVE)
dispatcher.add_handler(APPROVED)
dispatcher.add_handler(APPROVAL)
dispatcher.add_handler(UNAPPROVEALL)
dispatcher.add_handler(UNAPPROVEALL_BTN)

__mod_name__ = "Approvals"
__command_list__ = ["approve", "unapprove", "approved", "approval"]
__handlers__ = [APPROVE, DISAPPROVE, APPROVED, APPROVAL]
コード例 #20
0
 def callback_handler(handler_func):
     """Create a callback handler."""
     return CallbackQueryHandler(handler_func, pass_user_data=True)
コード例 #21
0
ファイル: main.py プロジェクト: dimcey357/peremogy-neighbors
def main():
    updater = Updater(KEY)

    dispatcher = updater.dispatcher
    # group filters
    dispatcher.add_handler(
        MessageHandler(Filters.status_update.new_chat_members, greeting))
    dispatcher.add_handler(
        MessageHandler((Filters.command & Filters.group), del_command))
    dispatcher.add_handler(
        MessageHandler((Filters.group & block_filter), del_msg))
    dispatcher.add_handler(
        MessageHandler((Filters.text & Filters.group), group_chat_logging))

    dispatcher.add_handler(CommandHandler("start", start_command))
    dispatcher.add_handler(CommandHandler("help", help_command))
    dispatcher.add_handler(CommandHandler("about", about_command))

    dispatcher.add_handler(MessageHandler(filt_integers, apartment_save))
    dispatcher.add_handler(MessageHandler(filt_call_err, talkative))
    dispatcher.add_handler(MessageHandler(Filters.text, msg_handler))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=start_command, pattern='^_menu$'))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=building, pattern='^building$'))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=statistics, pattern='^statistics$'))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=charts, pattern='^charts$'))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=notifications_kbd,
                             pattern='^notifications$'))
    dispatcher.add_handler(
        CallbackQueryHandler(
            callback=notifications_save,
            pattern='^_notify_section$|^_notify_house$|^_notify_OFF$'))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=houses_kbd, pattern='^show$'))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=show_house, pattern='^show_this_house$'))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=section_kbd, pattern='^p_h'))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=save_params, pattern='^p_s'))
    dispatcher.add_handler(
        CallbackQueryHandler(
            callback=check_owns,
            pattern='^edit$|^house_neighbors$|section_neighbors'))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=owns_selected, pattern='^set_owns'))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=set_section_kbd, pattern='^_h'))
    dispatcher.add_handler(
        CallbackQueryHandler(
            callback=save_user_data,
            pattern='^_apart_reject$|^_floor_reject$|^_section_reject$'))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=set_floor_kbd, pattern='^_s'))
    dispatcher.add_handler(
        CallbackQueryHandler(callback=set_apartment_kbd, pattern='^_f'))

    dispatcher.add_error_handler(catch_err)

    updater.start_polling()
    updater.idle()
コード例 #22
0
 def callcommand_handler(command_message, handler_func):
     """Create a callback handler that only handles specific commands."""
     return CallbackQueryHandler(handler_func,
                                 pattern=command_message + "$",
                                 pass_user_data=True)
コード例 #23
0
    def start(self):
        self.updater.dispatcher.add_handler(
            CommandHandler('start', self.do_start))
        self.updater.dispatcher.add_handler(
            CommandHandler('help', self.do_help))
        self.updater.dispatcher.add_handler(
            MessageHandler(Filters.regex(r'^\d+$'), self.do_digit_command))
        self.updater.dispatcher.add_handler(
            MessageHandler(Filters.regex(r'\w+'), self.do_text_command))

        self.updater.dispatcher.add_handler(
            CallbackQueryHandler(main_menu, pattern='main'))

        #find gas station
        self.updater.dispatcher.add_handler(
            MessageHandler(Filters.location, filtered_gas_stations))
        self.updater.dispatcher.add_handler(
            CallbackQueryHandler(submit_target_gas_station,
                                 pattern=r'targetgasstation_\d+'))
        #choose active filter
        self.updater.dispatcher.add_handler(
            CallbackQueryHandler(choose_active_filter,
                                 pattern='choose_active_filter'))
        self.updater.dispatcher.add_handler(
            CallbackQueryHandler(submit_active_filter,
                                 pattern=r'activefilter_\d+'))
        #edit filter
        self.updater.dispatcher.add_handler(
            CallbackQueryHandler(add_filter_menu, pattern='m1_add_filter'))
        self.updater.dispatcher.add_handler(
            CallbackQueryHandler(tune_filters_menu, pattern='tune_filters'))
        self.updater.dispatcher.add_handler(
            CallbackQueryHandler(choose_filter, pattern=r'editfilter_\d+'))
        self.updater.dispatcher.add_handler(
            CallbackQueryHandler(change_filter_name,
                                 pattern='change_filter_name'))
        self.updater.dispatcher.add_handler(
            CallbackQueryHandler(change_filter_radius,
                                 pattern='change_filter_radius'))
        self.updater.dispatcher.add_handler(
            CallbackQueryHandler(change_target_fuel,
                                 pattern='change_target_fuel'))
        self.updater.dispatcher.add_handler(
            CallbackQueryHandler(submit_fuel_type, pattern=r'fueltype_\w+'))
        for property in GasStationProperties._meta.get_fields():
            self.updater.dispatcher.add_handler(
                CallbackQueryHandler(select_filter_property,
                                     pattern=property.name))
        #price statistic
        self.updater.dispatcher.add_handler(
            CallbackQueryHandler(price_statistic, pattern='price_statistic'))
        self.updater.dispatcher.add_handler(
            CallbackQueryHandler(submit_price_statistic,
                                 pattern=r'pricestatistic_\w+'))

        self.updater.start_polling()
        self.updater.idle()
コード例 #24
0
            chat_id=update.effective_message.chat_id,
            text='Сообщение было успешно разослано!',
            reply_markup=get_base_reply_keyboard(context.user_data['Role'])
        )
        return ConversationHandler.END
    else:
        update.message.reply_text(
            'Отправка материала была отменена',
            reply_markup=get_base_reply_keyboard(member_role=context.user_data['Role'])
        )
        return ConversationHandler.END


send_newsletter_handler = ConversationHandler(
    entry_points=[
        CallbackQueryHandler(callback=send_newsletter_start, pattern='For *')
    ],
    states={
        NEWSLETTER_TEXT: [
            MessageHandler(Filters.all, send_newsletter)
        ]
    },
    fallbacks=[]
)


@debug_requests
def setup_new_member_start(update: Update, context: CallbackContext):
    context.user_data['Name'], context.user_data['Role'], context.user_data['Chat_ID'] = get_user_info(
        user_id=update.effective_user.id)
    context.bot.send_message(
コード例 #25
0
ファイル: cust_filters.py プロジェクト: kari-36/ElizaRobot-
 Reply 3`
 • `/stop <filter keyword>`*:* Stop that filter.
*Chat creator only:*
 • `/removeallfilters`*:* Remove all chat filters at once.
*Note*: Filters also support markdown formatters like: {first}, {last} etc.. and buttons.
Check `/markdownhelp` to know more!
"""

__mod_name__ = "Filters"

FILTER_HANDLER = CommandHandler("filter", filters)
STOP_HANDLER = CommandHandler("stop", stop_filter)
RMALLFILTER_HANDLER = CommandHandler("removeallfilters",
                                     rmall_filters,
                                     filters=Filters.group)
RMALLFILTER_CALLBACK = CallbackQueryHandler(rmall_callback,
                                            pattern=r"filters_.*")
LIST_HANDLER = DisableAbleCommandHandler("filters",
                                         list_handlers,
                                         admin_ok=True)
CUST_FILTER_HANDLER = MessageHandler(
    CustomFilters.has_text & ~Filters.update.edited_message, reply_filter)

dispatcher.add_handler(FILTER_HANDLER)
dispatcher.add_handler(STOP_HANDLER)
dispatcher.add_handler(LIST_HANDLER)
dispatcher.add_handler(CUST_FILTER_HANDLER, HANDLER_GROUP)
dispatcher.add_handler(RMALLFILTER_HANDLER)
dispatcher.add_handler(RMALLFILTER_CALLBACK)

__handlers__ = [
    FILTER_HANDLER, STOP_HANDLER, LIST_HANDLER,
コード例 #26
0
ファイル: connection.py プロジェクト: ninja7-bot/ZeroTwo
__mod_name__ = "Connection"

__help__ = """
Sometimes, you just want to add some notes and filters to a group chat, but you don't want everyone to see; This is where connections come in...
This allows you to connect to a chat's database, and add things to it without the commands appearing in chat! For obvious reasons, you need to be an admin to add things; but any member in the group can view your data.

 • /connect: Connects to chat (Can be done in a group by /connect or /connect <chat id> in PM)
 • /connection: List connected chats
 • /disconnect: Disconnect from a chat
 • /helpconnect: List available commands that can be used remotely

*Admin only:*
 • /allowconnect <yes/no>: allow a user to connect to a chat
"""

CONNECT_CHAT_HANDLER = CommandHandler("connect", connect_chat, pass_args=True)
CONNECTION_CHAT_HANDLER = CommandHandler("connection", connection_chat)
DISCONNECT_CHAT_HANDLER = CommandHandler("disconnect", disconnect_chat)
ALLOW_CONNECTIONS_HANDLER = CommandHandler(
    "allowconnect", allow_connections, pass_args=True)
HELP_CONNECT_CHAT_HANDLER = CommandHandler("helpconnect", help_connect_chat)
CONNECT_BTN_HANDLER = CallbackQueryHandler(connect_button, pattern=r"connect")

dispatcher.add_handler(CONNECT_CHAT_HANDLER)
dispatcher.add_handler(CONNECTION_CHAT_HANDLER)
dispatcher.add_handler(DISCONNECT_CHAT_HANDLER)
dispatcher.add_handler(ALLOW_CONNECTIONS_HANDLER)
dispatcher.add_handler(HELP_CONNECT_CHAT_HANDLER)
dispatcher.add_handler(CONNECT_BTN_HANDLER)
コード例 #27
0
ファイル: welcome.py プロジェクト: shashihacker03/MissSabrina
                               pass_args=True,
                               filters=Filters.group)
SECURITY_MUTE_HANDLER = CommandHandler("welcomemutetime",
                                       security_mute,
                                       pass_args=True,
                                       filters=Filters.group)
SECURITY_HANDLER = CommandHandler("welcomesecurity",
                                  security,
                                  pass_args=True,
                                  filters=Filters.group)
CLEAN_SERVICE_HANDLER = CommandHandler("cleanservice",
                                       cleanservice,
                                       pass_args=True,
                                       filters=Filters.group)

help_callback_handler = CallbackQueryHandler(check_bot_button,
                                             pattern=r"check_bot_")

dispatcher.add_handler(NEW_MEM_HANDLER)
dispatcher.add_handler(LEFT_MEM_HANDLER)
dispatcher.add_handler(WELC_PREF_HANDLER)
dispatcher.add_handler(GOODBYE_PREF_HANDLER)
dispatcher.add_handler(SET_WELCOME)
dispatcher.add_handler(SET_GOODBYE)
dispatcher.add_handler(RESET_WELCOME)
dispatcher.add_handler(RESET_GOODBYE)
dispatcher.add_handler(CLEAN_WELCOME)
dispatcher.add_handler(SECURITY_HANDLER)
dispatcher.add_handler(SECURITY_MUTE_HANDLER)
dispatcher.add_handler(CLEAN_SERVICE_HANDLER)
dispatcher.add_handler(help_callback_handler)
コード例 #28
0
 Reply 3`
 ❍ /clear <notename>*:* clear note with this name
 ❍ /removeallnotes*:* removes all notes from the group
 *Note:* Note names are case-insensitive, and they are automatically converted to lowercase before getting saved.

"""

__mod_name__ = "Notes"

GET_HANDLER = CommandHandler("get", cmd_get)
HASH_GET_HANDLER = MessageHandler(Filters.regex(r"^#[^\s]+"), hash_get)
SLASH_GET_HANDLER = MessageHandler(Filters.regex(r"^/\d+$"), slash_get)
SAVE_HANDLER = CommandHandler("save", save)
DELETE_HANDLER = CommandHandler("clear", clear)

LIST_HANDLER = DisableAbleCommandHandler(["notes", "saved"],
                                         list_notes,
                                         admin_ok=True)

CLEARALL = DisableAbleCommandHandler("removeallnotes", clearall)
CLEARALL_BTN = CallbackQueryHandler(clearall_btn, pattern=r"notes_.*")

dispatcher.add_handler(GET_HANDLER)
dispatcher.add_handler(SAVE_HANDLER)
dispatcher.add_handler(LIST_HANDLER)
dispatcher.add_handler(DELETE_HANDLER)
dispatcher.add_handler(HASH_GET_HANDLER)
dispatcher.add_handler(SLASH_GET_HANDLER)
dispatcher.add_handler(CLEARALL)
dispatcher.add_handler(CLEARALL_BTN)
コード例 #29
0
ファイル: anime.py プロジェクト: asadali32117/Senku
 • `/imdb` <anime/movie name> *:* get IMDb details of the anime or movie

 ➩ *Anime Fun:*
 • `/aq` *:* get random anime quotes

 """

ANIME_HANDLER = DisableAbleCommandHandler("anime", anime)
AIRING_HANDLER = DisableAbleCommandHandler("airing", airing)
CHARACTER_HANDLER = DisableAbleCommandHandler("character", character)
MANGA_HANDLER = DisableAbleCommandHandler("manga", manga)
USER_HANDLER = DisableAbleCommandHandler("user", user)
UPCOMING_HANDLER = DisableAbleCommandHandler("upcoming", upcoming)
KAIZOKU_SEARCH_HANDLER = DisableAbleCommandHandler("kaizoku", kaizoku)
KAYO_SEARCH_HANDLER = DisableAbleCommandHandler("kayo", kayo)
BUTTON_HANDLER = CallbackQueryHandler(button, pattern='anime_.*')

dispatcher.add_handler(BUTTON_HANDLER)
dispatcher.add_handler(ANIME_HANDLER)
dispatcher.add_handler(CHARACTER_HANDLER)
dispatcher.add_handler(MANGA_HANDLER)
dispatcher.add_handler(AIRING_HANDLER)
dispatcher.add_handler(USER_HANDLER)
dispatcher.add_handler(KAIZOKU_SEARCH_HANDLER)
dispatcher.add_handler(KAYO_SEARCH_HANDLER)
dispatcher.add_handler(UPCOMING_HANDLER)

__mod_name__ = "Anime"
__command_list__ = [
    "anime", "manga", "character", "user", "upcoming", "kaizoku", "airing",
    "kayo"
コード例 #30
0
    if query_type == "db_leave_chat":
        if query.from_user.id in admin_list:
            bot.editMessageText("Dejando chats...", chat_id, message.message_id)
            chat_count = get_muted_chats(update, context, True)
            bot.sendMessage(chat_id, f"Chats abandonados: {chat_count}.")
        else:
            query.answer("No tienes permitido usar esto.")
    elif query_type == "db_cleanup":
        if query.from_user.id in admin_list:
            bot.editMessageText("Limpiando BD...", chat_id, message.message_id)
            invalid_chat_count = get_invalid_chats(update, context, True)
            invalid_gban_count = get_invalid_gban(update, context, True)
            reply = "Se limpiaron {} chats y {} usuarios bloqueados globalmente de la BD.".format(
                invalid_chat_count, invalid_gban_count
            )
            bot.sendMessage(chat_id, reply)
        else:
            query.answer("No tienes permitido usar esto.")


DB_CLEANUP_HANDLER = CommandHandler("dbcleanup", dbcleanup, run_async=True)
BUTTON_HANDLER = CallbackQueryHandler(callback_button, pattern="db_.*", run_async=True)

dispatcher.add_handler(DB_CLEANUP_HANDLER)
dispatcher.add_handler(BUTTON_HANDLER)

__mod_name__ = "DB Cleanup"
__handlers__ = [DB_CLEANUP_HANDLER, BUTTON_HANDLER]
__command_list__ = ["dbcleanup"]