예제 #1
0
파일: bot.py 프로젝트: mmdaz/Bot
def get_date_hour(bot, update):
    hour = update.get_effective_message().text
    dispatcher.set_conversation_data(update, "hour", hour)
    user_peer = update.get_effective_user()
    if not 0 <= int(hour) < 24:
        bot.send_message(TemplateMessage(Message.INVALID_INPUT, button_list),
                         user_peer,
                         success_callback=success,
                         failure_callback=failure)
        dispatcher.register_conversation_next_step_handler(
            update, [
                MessageHandler(TextFilter(), get_date_hour),
                MessageHandler(TemplateResponseFilter(keywords="/start"),
                               start_bot)
            ])
    else:
        bot.send_message(TemplateMessage(Message.GET_ALARM_MINUTE,
                                         button_list),
                         user_peer,
                         success_callback=success,
                         failure_callback=failure)
        dispatcher.register_conversation_next_step_handler(
            update, [
                MessageHandler(TextFilter(), get_date_minute),
                MessageHandler(TemplateResponseFilter(keywords="/start"),
                               start_bot)
            ])
예제 #2
0
파일: bot.py 프로젝트: mmdaz/Bot
def get_date_year(bot, update):
    user_peer = update.get_effective_user()
    year = update.get_effective_message().text
    dispatcher.set_conversation_data(update, "year", year)
    if int(year) < 1397:
        bot.send_message(TemplateMessage(Message.INVALID_INPUT, button_list),
                         user_peer,
                         success_callback=success,
                         failure_callback=failure)
        dispatcher.register_conversation_next_step_handler(
            update, [
                MessageHandler(TextFilter(), get_date_year),
                MessageHandler(TemplateResponseFilter(keywords="/start"),
                               start_bot)
            ])
        print("salammmmmmmmmmmmmmmmmmmmmmmmmm")

    else:
        bot.send_message(TemplateMessage(Message.GET_ALARM_MONTH, button_list),
                         user_peer,
                         success_callback=success,
                         failure_callback=failure)
        dispatcher.register_conversation_next_step_handler(
            update, [
                MessageHandler(TextFilter(), get_date_month),
                MessageHandler(TemplateResponseFilter(keywords="/start"),
                               start_bot)
            ])
예제 #3
0
파일: bot.py 프로젝트: mmdaz/Bot
def get_date_day(bot, update):
    day = update.get_effective_message().text
    dispatcher.set_conversation_data(update, "day", day)
    user_peer = update.get_effective_user()
    if not (
        (0 < int(day) < 32
         and 0 < int(dispatcher.get_conversation_data(update, "month")) < 7) or
        (0 < int(day) < 31
         and 6 < int(dispatcher.get_conversation_data(update, "month")) < 13)):
        bot.send_message(TemplateMessage(Message.INVALID_INPUT, button_list),
                         user_peer,
                         success_callback=success,
                         failure_callback=failure)
        dispatcher.register_conversation_next_step_handler(
            update, [
                MessageHandler(TextFilter(), get_date_day),
                MessageHandler(TemplateResponseFilter(keywords="/start"),
                               start_bot)
            ])
    else:
        bot.send_message(TemplateMessage(Message.GET_ALARM_HOUR, button_list),
                         user_peer,
                         success_callback=success,
                         failure_callback=failure)
        dispatcher.register_conversation_next_step_handler(
            update, [
                MessageHandler(TextFilter(), get_date_hour),
                MessageHandler(TemplateResponseFilter(keywords="/start"),
                               start_bot)
            ])
예제 #4
0
파일: bot.py 프로젝트: mmdaz/Bot
def start_bot(bot, update):
    user_peer = update.get_effective_user()
    input = update.get_effective_message()
    print(input.text)
    btn_list = [
        TemplateMessageButton("ساختن هشدار جدید ", "/create_alarm", 0),
        TemplateMessageButton("اضافه کردن بدهی ", "/add_debt", 0),
        TemplateMessageButton("گرفتن فایل اکسل صورتحساب ها  ", "/get_excel", 0)
    ]
    temlate_message = TemplateMessage(
        general_message=Message.START_BOT_MESSAGE, btn_list=btn_list)
    bot.send_message(temlate_message,
                     user_peer,
                     success_callback=success,
                     failure_callback=failure)
    dispatcher.register_conversation_next_step_handler(update, [
        MessageHandler(TemplateResponseFilter(keywords=["/create_alarm"]),
                       start_creating_alarm),
        MessageHandler(TemplateResponseFilter(keywords=["/add_debt"]),
                       start_get_debt_conversation),
        MessageHandler(TemplateResponseFilter(keywords=["/get_excel"]),
                       send_excel_report),
        MessageHandler(TextFilter(keywords=["/start"]), start_bot),
        MessageHandler(TemplateResponseFilter(keywords=["/start"]), start_bot)
    ])
예제 #5
0
파일: bot.py 프로젝트: mmdaz/Bot
def get_alarm_stop_message(bot, update):
    user_peer = update.get_effective_user()
    alarm_stop_message = update.get_effective_message()
    if check_stop_message_repetition(user_peer.get_json_str(),
                                     alarm_stop_message.text):
        bot.send_message(TemplateMessage(Message.STOP_MESSAGE_REPETIOTION,
                                         button_list),
                         user_peer,
                         success_callback=success,
                         failure_callback=failure)
        dispatcher.register_conversation_next_step_handler(
            update, [
                MessageHandler(TextFilter(), get_alarm_stop_message),
                MessageHandler(TemplateResponseFilter(keywords="/start"),
                               start_bot)
            ])
    else:
        dispatcher.get_conversation_data(
            update, "alarm").stop_message = alarm_stop_message.text
        bot.send_message(TemplateMessage(Message.GET_ALARM_PHOTO, button_list),
                         user_peer,
                         success_callback=success,
                         failure_callback=failure)
        dispatcher.register_conversation_next_step_handler(
            update, [
                MessageHandler(PhotoFilter(), get_alarm_photo),
                MessageHandler(TemplateResponseFilter(keywords="/start"),
                               start_bot)
            ])
예제 #6
0
    def initiate_search_officers(self, bot, update):
        self.handlers.extend(self.dispatcher.message_handlers)
        user = update.get_effective_user()
        message = TemplateMessage(
            TextMessage(ConstantMessage.officer_search_criterion), [
                TemplateMessageButton(ButtonMessage.all_officers),
                TemplateMessageButton(ButtonMessage.main_menu_message)
            ])
        self.send_message(bot, update, message, user,
                          sys._getframe().f_code.co_name)
        self.handlers.extend([
            MessageHandler(
                TemplateResponseFilter(keywords=[ButtonMessage.all_officers]),
                self.handle_customer_criterion_input),
            MessageHandler(
                TemplateResponseFilter(
                    keywords=[ButtonMessage.main_menu_message]),
                self.show_menu),
        ])

        # TODO: This seems odd to me to add two lists, find a better way if possible
        self.dispatcher.register_conversation_next_step_handler(
            update, self.handlers + [
                MessageHandler(TextFilter(),
                               self.handle_customer_criterion_input)
            ])
예제 #7
0
def get_tweet_text(bot, update):
    user_peer = update.get_effective_user()
    user = get_registered_user(bot, update)
    if user:
        dispatcher.set_conversation_data(update, "user", user)
        general_message = TextMessage(ReadyText.send_text_twitter)
        btn_list = [
            TemplateMessageButton(text=ButtonText.cancel,
                                  value=ButtonText.cancel,
                                  action=0)
        ]
        template_message = TemplateMessage(general_message=general_message,
                                           btn_list=btn_list)
        kwargs = {
            "message": template_message,
            "update": update,
            "bot": bot,
            "try_times": 1
        }
        bot.send_message(template_message,
                         user_peer,
                         success_callback=success_send_message,
                         failure_callback=failure_send_message,
                         kwargs=kwargs)
        dispatcher.register_conversation_next_step_handler(
            update, common_handlers + [
                MessageHandler(TextFilter(), send_tweet),
                MessageHandler(DefaultFilter(), start_conversation)
            ])
예제 #8
0
def get_tweet_text(bot, update):
    user_peer = update.get_effective_user()
    user_id = user_peer.peer_id
    user = get_user(user_id=user_id)
    if not check_user_registration(update, user_peer, user):
        return 0
    general_message = TextMessage(ReadyMessage.send_text_twitter)
    btn_list = [
        TemplateMessageButton(text=TMessage.cancel,
                              value=TMessage.cancel,
                              action=0)
    ]
    template_message = TemplateMessage(general_message=general_message,
                                       btn_list=btn_list)
    kwargs = {
        "message": template_message,
        "user_peer": user_peer,
        "try_times": 1
    }
    bot.send_message(template_message,
                     user_peer,
                     success_callback=success,
                     failure_callback=failure,
                     kwargs=kwargs)
    dispatcher.register_conversation_next_step_handler(update, [
        CommandHandler("info", info),
        MessageHandler(TextFilter(), send_tweet),
        MessageHandler(DefaultFilter(), start_conversation)
    ])
예제 #9
0
def reminder_text(bot, update):
    state = dispatcher.get_conversation_data(update, current_state)
    if state == REMINDER_PICTURE:
        message = update.get_effective_message()
        dispatcher.set_conversation_data(update, Attr.file_id, message.file_id)
        dispatcher.set_conversation_data(update, Attr.file_access_hash,
                                         message.access_hash)
        dispatcher.set_conversation_data(update, Attr.file_size,
                                         message.file_size)
        message = TextMessage(ReadyText.enter_reminder_text)
    else:
        message = TextMessage(ReadyText.wrong_answer_pls_text)
    kwargs = {
        UserData.user_peer: update.get_effective_user(),
        UserData.step_name: Step.getting_picture,
        UserData.message: message,
        UserData.attempt: SendingAttempt.first,
        UserData.logger: my_logger,
        UserData.bot: bot
    }
    bot.respond(update,
                message,
                success_send_message,
                failure_send_message,
                kwargs=kwargs)
    dispatcher.set_conversation_data(update, current_state, REMINDER_TEXT)
    dispatcher.register_conversation_next_step_handler(update, [
        MessageHandler(TextFilter(), reminder_finished),
        MessageHandler(DefaultFilter(), reminder_text)
    ])
예제 #10
0
def reminder_amount(bot, update):
    state = dispatcher.get_conversation_data(update, current_state)
    if state == REMINDER_CARD_NUMBER:
        dispatcher.set_conversation_data(update, Attr.card_number,
                                         update.get_effective_message().text)
        message = TextMessage(ReadyText.amount_entering)
    else:
        message = TextMessage(ReadyText.wrong_answer_pls_enter_number)
    kwargs = {
        UserData.user_peer: update.get_effective_user(),
        UserData.step_name: Step.ask_amount,
        UserData.message: message,
        UserData.attempt: SendingAttempt.first,
        UserData.logger: my_logger,
        UserData.bot: bot
    }
    bot.respond(update,
                message,
                success_send_message,
                failure_send_message,
                kwargs=kwargs)
    dispatcher.set_conversation_data(update, current_state, REMINDER_AMOUNT)
    dispatcher.register_conversation_next_step_handler(
        update, common_handlers + [
            MessageHandler(TextFilter(pattern=Pattern.money_amount),
                           reminder_picture),
            MessageHandler(DefaultFilter(), reminder_amount)
        ])
예제 #11
0
def read_step_1(bot, update, wrong_input=False):
    user = _get_peer(update)
    text = ""
    if wrong_input:
        text = BotMessage.wrong_input_page + "\n" + BotMessage.choose_page_number

    all_marked = get_all_marked(user.peer_id)
    btn = []
    keywords = []
    my_logger.info(
        "\n\n\n\n\n\n\n all Marked : {}\n\n\n\n\n\n".format(all_marked))
    if len(all_marked) > 0:
        text = BotMessage.choose_page_book_mark + " " + BotMessage.choose_page_number
        for mark in all_marked:
            btn.append(
                TemplateMessageButton(text=ButtonMessage.read_page.format(
                    persian.convert_en_numbers(mark[0])),
                                      value=mark[0],
                                      action=0))
            keywords.append(str(mark[0]))
    else:
        text = BotMessage.choose_page_number

    btn.append(
        TemplateMessageButton(ButtonMessage.return_to_main_menu,
                              ButtonMessage.return_to_main_menu, 0))
    txt_msg = TextMessage(text)
    message = TemplateMessage(txt_msg, btn)
    send_message(message, _get_peer(update))
    dispatcher.register_conversation_next_step_handler(update, [
        MessageHandler(TemplateResponseFilter(keywords=keywords), read_step_2),
        MessageHandler(TextFilter(), read_step_2),
        MessageHandler(DefaultFilter(), start_bot),
    ])
예제 #12
0
파일: bot.py 프로젝트: mmdaz/Bot
def get_date_minute(bot, update):
    minute = update.get_effective_message().text
    dispatcher.set_conversation_data(update, "minute", minute)
    user_peer = update.get_effective_user()
    if not 0 <= int(minute) < 60:
        bot.send_message(TemplateMessage(Message.INVALID_INPUT, button_list),
                         user_peer,
                         success_callback=success,
                         failure_callback=failure)
        dispatcher.register_conversation_next_step_handler(
            update, [
                MessageHandler(TextFilter(), get_date_minute),
                MessageHandler(TemplateResponseFilter(keywords="/start"),
                               start_bot)
            ])
    else:
        # print(create_time(year, month, day, hour, minute))
        dispatcher.get_conversation_data(
            update, "alarm").start_time = create_time(
                dispatcher.get_conversation_data(update, "year"),
                dispatcher.get_conversation_data(update, "month"),
                dispatcher.get_conversation_data(update, "day"),
                dispatcher.get_conversation_data(update, "hour"),
                dispatcher.get_conversation_data(update, "minute"))
        bot.send_message(TemplateMessage(Message.GET_ALARM_REPETITION_PERIOD,
                                         button_list),
                         user_peer,
                         success_callback=success,
                         failure_callback=failure)
        dispatcher.register_conversation_next_step_handler(
            update, [
                MessageHandler(TextFilter(), finish_creating_alarm),
                MessageHandler(TemplateResponseFilter(keywords="/start"),
                               start_bot)
            ])
예제 #13
0
def tafsir_step_1(bot, update, start=1, end=30):
    txt = BotMessage.choose_soore
    txt_msg = TextMessage(txt)
    soore_list = soore_show(start, end)
    btn = []
    for soore in soore_list:
        btn.append(TemplateMessageButton(soore, soore, 0))
    if end < 114:
        btn.append(
            TemplateMessageButton(ButtonMessage.show_more,
                                  ButtonMessage.show_more, 0))
    btn.append(
        TemplateMessageButton(ButtonMessage.return_to_main_menu,
                              ButtonMessage.return_to_main_menu, 0))
    msg = TemplateMessage(txt_msg, btn)
    send_message(msg, _get_peer(update), Step.conversation_starter)
    dispatcher.register_conversation_next_step_handler(update, [
        MessageHandler(TemplateResponseFilter(keywords=soore_show(1, 114)),
                       tafsir_step_2),
        MessageHandler(
            TemplateResponseFilter(keywords=ButtonMessage.show_more),
            functools.partial(tafsir_step_1, start=end + 1, end=end + 30)),
        MessageHandler(
            TemplateResponseFilter(keywords=ButtonMessage.return_to_main_menu),
            start_bot),
        MessageHandler(DefaultFilter(), tafsir_step_1)
    ])
예제 #14
0
def add_reminder(bot, update):
    state = dispatcher.get_conversation_data(update, current_state)
    if state == ADD_REMINDER:
        message = TextMessage(ReadyText.wrong_format)
    else:
        message = TextMessage(ReadyText.enter_reminder_date)
    kwargs = {
        UserData.user_peer: update.get_effective_user(),
        UserData.step_name: Step.ask_time,
        UserData.message: message,
        UserData.attempt: SendingAttempt.first,
        UserData.logger: my_logger,
        UserData.bot: bot
    }
    bot.respond(update,
                message,
                success_send_message,
                failure_send_message,
                kwargs=kwargs)
    dispatcher.set_conversation_data(update, current_state, ADD_REMINDER)
    dispatcher.register_conversation_next_step_handler(
        update, common_handlers + [
            MessageHandler(TextFilter(), set_time),
            MessageHandler(DefaultFilter(), add_reminder)
        ])
예제 #15
0
def ask_type(bot, update):
    if notification.get(Attr.periodic_type) is None:
        notification[Attr.iterate_number] = 0
    else:
        notification[Attr.iterate_number] = int(
            update.get_effective_message().text_message)

    general_message = TextMessage(BotMessages.notification_type_selection)
    btn_list = [
        TemplateMessageButton(BotMessages.normal, ResponseValue.normal,
                              MessageButtonAction.default),
        TemplateMessageButton(BotMessages.debt, ResponseValue.debt,
                              MessageButtonAction.default)
    ]
    message = TemplateMessage(general_message=general_message,
                              btn_list=btn_list)
    kwargs = {
        UserData.user_peer: update.get_effective_user(),
        UserData.step_name: Step.ask_type,
        UserData.message: message,
        UserData.attempt: SendingAttempt.first
    }
    bot.respond(update,
                message,
                success_callback=success,
                failure_callback=failure,
                kwargs=kwargs)
    dispatcher.register_conversation_next_step_handler(update, [
        MessageHandler(TemplateResponseFilter(keywords=[ResponseValue.normal]),
                       ask_picture),
        MessageHandler(TemplateResponseFilter(keywords=[ResponseValue.debt]),
                       ask_card_number),
        MessageHandler(DefaultFilter(), wrong_type)
    ])
예제 #16
0
def ask_picture(bot, update):
    if notification.get(Attr.type):
        notification[Attr.money_amount] = update.get_effective_message().text
    else:
        notification[Attr.type] = ResponseValue.normal
    message = TemplateMessage(
        general_message=TextMessage(BotMessages.picture_request),
        btn_list=[
            TemplateMessageButton(BotMessages.no_picture_needed,
                                  ResponseValue.no_picture,
                                  MessageButtonAction.default)
        ])
    kwargs = {
        UserData.user_peer: update.get_effective_user(),
        UserData.step_name: UserData.ask_picture,
        UserData.message: message,
        UserData.attempt: SendingAttempt.first
    }
    bot.respond(update, message, success, failure, kwargs=kwargs)
    dispatcher.register_conversation_next_step_handler(update, [
        MessageHandler(
            TemplateResponseFilter(keywords=[ResponseValue.no_picture]),
            ask_text),
        MessageHandler(PhotoFilter(), getting_picture),
        CommandHandler([Command.start], conversation_starter),
        MessageHandler(DefaultFilter(), wrong_picture)
    ])
예제 #17
0
def periodic_state(bot, update):
    str_date = update.get_effective_message().text
    notification[Attr.date_time] = jdatetime.datetime.strptime(
        str_date, Config.accepted_datetime_format)
    general_message = TextMessage(BotMessages.periodic_state_selection)
    btn_list = [
        TemplateMessageButton(BotMessages.only_once, ResponseValue.only_once,
                              MessageButtonAction.default),
        TemplateMessageButton(BotMessages.iterative, ResponseValue.iterative,
                              MessageButtonAction.default)
    ]
    message = TemplateMessage(general_message=general_message,
                              btn_list=btn_list)
    kwargs = {
        UserData.user_peer: update.get_effective_user(),
        UserData.step_name: Step.periodic_state,
        UserData.message: message,
        UserData.attempt: SendingAttempt.first
    }
    bot.respond(update,
                message,
                success_callback=success,
                failure_callback=failure,
                kwargs=kwargs)
    dispatcher.register_conversation_next_step_handler(update, [
        MessageHandler(
            TemplateResponseFilter(keywords=[ResponseValue.only_once]),
            ask_type),
        MessageHandler(
            TemplateResponseFilter(keywords=[ResponseValue.iterative]),
            period_type),
        CommandHandler([Command.start], conversation_starter),
        MessageHandler(DefaultFilter(), wrong_periodic_state)
    ])
예제 #18
0
def period_type(bot, update):
    general_message = TextMessage(BotMessages.periodic_type_selection)
    btn_list = [
        TemplateMessageButton(BotMessages.daily, ResponseValue.daily,
                              MessageButtonAction.default),
        TemplateMessageButton(BotMessages.weekly, ResponseValue.weekly,
                              MessageButtonAction.default),
        TemplateMessageButton(BotMessages.monthly, ResponseValue.monthly,
                              MessageButtonAction.default)
    ]
    message = TemplateMessage(general_message=general_message,
                              btn_list=btn_list)
    kwargs = {
        UserData.user_peer: update.get_effective_user(),
        UserData.step_name: Step.period_type,
        UserData.message: message,
        UserData.attempt: SendingAttempt.first
    }
    bot.respond(update,
                message,
                success_callback=success,
                failure_callback=failure,
                kwargs=kwargs)
    dispatcher.register_conversation_next_step_handler(update, [
        MessageHandler(TemplateResponseFilter(keywords=[ResponseValue.daily]),
                       ask_iterate_number),
        MessageHandler(TemplateResponseFilter(keywords=[ResponseValue.weekly]),
                       ask_iterate_number),
        MessageHandler(
            TemplateResponseFilter(keywords=[ResponseValue.monthly]),
            ask_iterate_number),
        CommandHandler([Command.start], conversation_starter),
        MessageHandler(DefaultFilter(), wrong_period_type)
    ])
예제 #19
0
def remove_from_book_mark(bot, update, page_number):
    user = _get_peer(update)
    is_removed = remove_book_mark(peer_id=user.peer_id,
                                  page_number=page_number)
    if is_removed == 1:
        text_message = TextMessage(
            BotMessage.removed_from_book_mark.format(
                persian.convert_en_numbers(page_number)))
        btn = [
            TemplateMessageButton(
                ButtonMessage.back_to_read.format(
                    persian.convert_en_numbers(page_number)),
                ButtonMessage.back_to_read.format(
                    persian.convert_en_numbers(page_number)), 0),
            TemplateMessageButton(ButtonMessage.return_to_main_menu,
                                  ButtonMessage.return_to_main_menu, 0)
        ]
        message = TemplateMessage(text_message, btn)
        send_message(message=message, peer=user)
        dispatcher.register_conversation_next_step_handler(
            update, [
                MessageHandler(
                    TemplateResponseFilter(
                        keywords=ButtonMessage.back_to_read.format(
                            persian.convert_en_numbers(page_number))),
                    functools.partial(read_step_2, change_page=page_number)),
                MessageHandler(DefaultFilter(), start_bot)
            ])
    else:
        check_message("asdasdasd", update)
예제 #20
0
def ask_question(bot, update):
    user_peer = update.get_effective_user()
    my_message = TextMessage("*Your Template Message created!*")
    kwargs = {"update": update}
    bot.send_message(my_message,
                     user_peer,
                     success_callback=success_send_message,
                     failure_callback=failure_send_message,
                     kwargs=kwargs)
    # Set client message as general message of a template message
    general_message = update.get_effective_message()
    # Create how many buttons you like with TemplateMessageButton class
    btn_list = [
        TemplateMessageButton(text="yes", value="yes", action=0),
        TemplateMessageButton(text="no", value="no", action=0)
    ]
    # Create a Template Message
    template_message = TemplateMessage(general_message=general_message,
                                       btn_list=btn_list)
    bot.send_message(template_message,
                     user_peer,
                     success_callback=success_send_message,
                     failure_callback=failure_send_message,
                     kwargs=kwargs)
    dispatcher.register_conversation_next_step_handler(update, [
        MessageHandler(TemplateResponseFilter(keywords=["yes"]),
                       positive_answer),
        MessageHandler(TemplateResponseFilter(keywords=["no"]),
                       negative_answer)
    ])
예제 #21
0
파일: bot.py 프로젝트: mmdaz/Bot
def get_debt_date_day(bot, update):
    user_peer = update.get_effective_user()
    debt_day = update.get_effective_message()
    dispatcher.set_conversation_data(update, "debt_day", debt_day.text)
    if not ((0 < int(debt_day.text) < 32 and 0 < int(
            dispatcher.get_conversation_data(update, "debt_month")) < 7) or
            (0 < int(debt_day.text) < 31 and 6 < int(
                dispatcher.get_conversation_data(update, "debt_month")) < 13)):
        bot.send_message(TemplateMessage(Message.INVALID_INPUT, button_list),
                         user_peer,
                         success_callback=success,
                         failure_callback=failure)
        dispatcher.register_conversation_next_step_handler(
            update, [
                MessageHandler(TextFilter(), get_debt_date_day),
                MessageHandler(TemplateResponseFilter(keywords="/start"),
                               start_bot)
            ])
    else:
        dispatcher.get_conversation_data(
            update, "debt").date = "{}:{}:{}".format(
                dispatcher.get_conversation_data(update, "debt_year"),
                dispatcher.get_conversation_data(update, "debt_month"),
                dispatcher.get_conversation_data(update, "debt_day"))
        print(dispatcher.get_conversation_data(update, "debt").user_id)
        bot.send_message(TemplateMessage(Message.GET_DEBT_PHOTO, button_list),
                         user_peer,
                         success_callback=success,
                         failure_callback=failure)
        dispatcher.register_conversation_next_step_handler(
            update, [
                MessageHandler(PhotoFilter(), get_debt_photo),
                MessageHandler(TemplateResponseFilter(keywords="/start"),
                               start_bot)
            ])
예제 #22
0
파일: bot.py 프로젝트: mmdaz/Bot
def get_debt_date_month(bot, update):
    user_peer = update.get_effective_user()
    debt_month = update.get_effective_message()
    dispatcher.set_conversation_data(update, "debt_month", debt_month.text)
    if not (0 < int(debt_month.text) < 13):
        bot.send_message(TemplateMessage(Message.INVALID_INPUT, button_list),
                         user_peer,
                         success_callback=success,
                         failure_callback=failure)
        dispatcher.register_conversation_next_step_handler(
            update, [
                MessageHandler(TextFilter(), get_debt_date_month),
                MessageHandler(TemplateResponseFilter(keywords="/start"),
                               start_bot)
            ])
    else:
        bot.send_message(TemplateMessage(Message.GET_DEBT_DAY, button_list),
                         user_peer,
                         success_callback=success,
                         failure_callback=failure)
        dispatcher.register_conversation_next_step_handler(
            update, [
                MessageHandler(TextFilter(), get_debt_date_day),
                MessageHandler(TemplateResponseFilter(keywords="/start"),
                               start_bot)
            ])
예제 #23
0
def number_of_repetitions(bot, update):
    state = dispatcher.get_conversation_data(update, current_state)
    if state == SET_DATE:
        message = update.get_effective_message()
        dispatcher.set_conversation_data(update, Attr.periodic_type,
                                         message.text)
        message = TextMessage(ReadyText.iterate_number_selection)
    else:
        message = TextMessage(ReadyText.wrong_answer_pls_enter_number)
    kwargs = {
        UserData.user_peer: update.get_effective_user(),
        UserData.step_name: Step.ask_iterate_number,
        UserData.message: message,
        UserData.attempt: SendingAttempt.first,
        UserData.logger: my_logger,
        UserData.bot: bot
    }
    bot.respond(update,
                message,
                success_send_message,
                failure_send_message,
                kwargs=kwargs)
    dispatcher.set_conversation_data(update, current_state,
                                     NUMBER_OF_REPETITIONS)
    dispatcher.register_conversation_next_step_handler(
        update, common_handlers + [
            MessageHandler(TextFilter(pattern=Pattern.number), reminder_type),
            MessageHandler(DefaultFilter(), number_of_repetitions)
        ])
예제 #24
0
def purchase_message(bot, update):
    message = update.get_effective_message()
    user_peer = update.get_effective_user()
    first_purchase_message = PurchaseMessage(msg=message, account_number=6037991067471130, amount=100,
                                             money_request_type=MoneyRequestType.normal)
    bot.send_message(first_purchase_message, user_peer, success_callback=success, failure_callback=failure)
    dispatcher.register_conversation_next_step_handler(update, [MessageHandler(BankMessageFilter(), payment),
                                                                MessageHandler(DefaultFilter(), default_handler)])
예제 #25
0
def conversation_starter(bot, update):
    message = TextMessage("*Hi , nice to meet you*\nplease tell me your name.")
    # Get client user object by a function called (get_effective_user)
    user_peer = update.get_effective_user()
    # Set any user data in kwargs mode
    kwargs = {"message": message, "update": update}
    bot.send_message(message, user_peer, success_callback=success_send_message, failure_callback=failure_send_message,
                     kwargs=kwargs)
    # You can put more than one Filters for your handler
    dispatcher.register_conversation_next_step_handler(update, [MessageHandler(TextFilter(), ask_name),
                                                                MessageHandler(DefaultFilter(), skip_name)])
def conversation_starter(bot, update):
    user_peer = update.get_effective_user()
    general_message = TextMessage("Hi ,Are you hungry?")
    btn_list = [TemplateMessageButton(text="yes", value="yes", action=0),
                TemplateMessageButton(text="no", value="no", action=0)]
    template_message = TemplateMessage(general_message=general_message, btn_list=btn_list)
    bot.send_message(template_message, user_peer, success_callback=success, failure_callback=failure)
    dispatcher.register_conversation_next_step_handler(update, [MessageHandler(TemplateResponseFilter(keywords=["yes"]),
                                                                               find_location),
                                                                MessageHandler(TemplateResponseFilter(keywords=["no"]),
                                                                               no_thanks)])
def conversation_starter(bot, update):
    message = TextMessage(
        "Hi , nice to meet you :)\nplease send me a contact.")
    user_peer = update.get_effective_user()
    bot.send_message(message,
                     user_peer,
                     success_callback=success,
                     failure_callback=failure)
    dispatcher.register_conversation_next_step_handler(update, [
        MessageHandler(ContactFilter(), ask_contact),
        MessageHandler(DefaultFilter(), no_contact)
    ])
예제 #28
0
파일: bot.py 프로젝트: mmdaz/Bot
def get_name_creditor(bot, update):
    user_peer = update.get_effective_user()
    creditor_name = update.get_effective_message()
    dispatcher.get_conversation_data(update,
                                     "debt").creditor_name = creditor_name.text
    bot.send_message(TemplateMessage(Message.GET_DEBT_YEAR, button_list),
                     user_peer,
                     success_callback=success,
                     failure_callback=failure)
    dispatcher.register_conversation_next_step_handler(update, [
        MessageHandler(TextFilter(), get_debt_date_year),
        MessageHandler(TemplateResponseFilter(keywords="/start"), start_bot)
    ])
예제 #29
0
파일: bot.py 프로젝트: mmdaz/Bot
def get_amount(bot, update):
    user_peer = update.get_effective_user()
    amount = update.get_effective_message()
    dispatcher.get_conversation_data(update, "debt").amount = amount.text
    bot.send_message(TemplateMessage(Message.GET_DEBT_CARD_NUMBER,
                                     button_list),
                     user_peer,
                     success_callback=success,
                     failure_callback=failure)
    dispatcher.register_conversation_next_step_handler(update, [
        MessageHandler(TextFilter(), get_card_number),
        MessageHandler(TemplateResponseFilter(keywords="/start"), start_bot)
    ])