Exemple #1
0
def initiate_registration(user: telebot.types.User):
    """
    Запускает процесс регистрации для пользователя
    :param user: пользователь, которого необходимо зарегистрировать
    """
    state = get_state(user.id)

    first_name = user.first_name
    last_name = user.last_name

    bot.send_message(user.id, NEEDS_REG_MSG)

    if state.last_email_date and state.email_attempt >= MAX_NO_LIMIT_ATTEMPTS:
        seconds_passed = (datetime.now() - state.last_email_date).seconds
        seconds_left = EMAIL_LIMIT - seconds_passed

        if seconds_left > 0:
            return bot.send_message(user.id, reg_limit_msg(seconds_left))

    markup = None

    if last_name:
        markup = ReplyKeyboardMarkup(one_time_keyboard=True)
        markup.row(KeyboardButton(f'{first_name} {last_name}'))

    save_state(user.id, state)

    instruction = bot.send_message(user.id,
                                   REG_NAME_SURNAME_MSG,
                                   reply_markup=markup)
    return bot.register_next_step_handler(instruction, check_name_surname)
def contact():
    button_1=KeyboardButton(text.send_number,request_contact=True)
    button_2=KeyboardButton(text.to_main)
    kb=ReplyKeyboardMarkup(resize_keyboard=True)
    kb.row(button_1)
    kb.row(button_2)
    return kb
def go_main():
    button_1=KeyboardButton(text.to_main)
    kb=ReplyKeyboardMarkup(resize_keyboard=True)
    kb.row(button_1)
    return kb

#courses()
Exemple #4
0
def Rate_Ru():
    markup = ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True)
    markup.row(InlineKeyboardButton('1'), InlineKeyboardButton('2'),
               InlineKeyboardButton('3'), InlineKeyboardButton('4'),
               InlineKeyboardButton('5'))
    markup.row(InlineKeyboardButton('Меню'), InlineKeyboardButton('Назад'))
    return markup
Exemple #5
0
def details_handler(message):
    user_id = str(message.from_user.id)
    params["q"] = data[DETAILS_STATE][user_id]
    weather_data = requests.get(weather_api_url, params).json()

    markup = ReplyKeyboardMarkup(resize_keyboard=True)
    markup.row("Say hello", "Show weather")
    if "temperature" in message.text.lower():
        bot.send_message(message.chat.id,
                         "Current temperature in {} is {}°C".format(weather_data["name"], weather_data["main"]["temp"]),
                         reply_markup=markup)
        change_data(user_id, 'states', MAIN_STATE)
    elif "pressure" in message.text.lower():
        bot.send_message(message.chat.id, "Current pressure in {} is {}hPa".format(weather_data["name"],
                                                                                   weather_data["main"]["pressure"]),
                         reply_markup=markup)
        change_data(user_id, 'states', MAIN_STATE)
    elif "humidity" in message.text.lower():
        bot.send_message(message.chat.id,
                         "Current humidity in {} is {}%".format(weather_data["name"], weather_data["main"]["humidity"]),
                         reply_markup=markup)
        change_data(user_id, 'states', MAIN_STATE)
    elif "all" in message.text.lower():
        bot.send_message(message.chat.id, "Current temperature in {} is {}°C, pressure is {}hPa, humidity {}%".format(
            weather_data["name"],
            weather_data["main"][
                "temp"],
            weather_data["main"][
                "pressure"],
            weather_data["main"][
                "humidity"]), reply_markup=markup)
        change_data(user_id, 'states', MAIN_STATE)
    else:
        bot.reply_to(message, "I didn't understand you")
Exemple #6
0
 def costumes(cls):
     markup = ReplyKeyboardMarkup()
     markup.row(btn.btn26)
     markup.row(btn.btn27)
     markup.row(btn.btn13, btn.btn12)
     markup.resize_keyboard = True
     return markup
def get_user_markup(db_user):
    markup = ReplyKeyboardMarkup(True)
    for parameter, name in const.user_parameters.items():
        if name:
            markup.row(f'{name}: {db_user[parameter]}')
    markup.row('Статистика')
    return markup
Exemple #8
0
def get_film(message):
    if message.text[0] == '/':
        mes = bot.send_message(
            message.from_user.id,
            text='Извините, но фильм не может начинаться с "/". Повторите ввод.'
        )
        bot.register_next_step_handler(message, get_film)
        return
    new = utils.BD('BD.sqlite')
    if new.check_film(new.film_name_to_id(message.text)):
        question = 'Я такой знаю. Как он тебе? Оставь оценку.\nОцени сюжет:'
        new.add_seen_user(new.film_name_to_id(message.text),
                          message.from_user.id)
    else:
        question = 'Я такой не знаю. И как он тебе? Оставь оценку.\nОцени сюжет:'
        new.add_film(message.text, message.from_user.id)
    new.add_comment(new.film_name_to_id(message.text), message.from_user.id)
    keyboard = ReplyKeyboardMarkup(one_time_keyboard=True,
                                   resize_keyboard=True)  # наша клавиатура
    keyboard.row("1", "2", "3", "4", "5")
    keyboard.row("6", "7", "8", "9", "10")
    bot.send_message(message.from_user.id,
                     text=question,
                     reply_markup=keyboard)
    file_user = open(dir_user_kash + str(message.from_user.id) + '.txt', "w")
    file_user.write(str(message.text))
    file_user.close()
    bot.register_next_step_handler(message, add_rating1)
Exemple #9
0
def start(message):
    # Dibuja los botones
    cols = 2
    key = ReplyKeyboardMarkup(row_width=cols,
                              resize_keyboard=True,
                              one_time_keyboard=True)
    queryset = Categoria.objects.filter(activo=True).order_by('nombre')
    nro_items = queryset.count()
    vueltas = int(nro_items // cols)
    impar = True if nro_items % cols > 0 else False

    i = 0
    for _ in range(vueltas):
        btn_izq = str(queryset[i])
        i += 1
        btn_der = str(queryset[i])
        i += 1
        key.row(btn_izq, btn_der)

    if impar:
        key.row(str(queryset[i]))

    # Solicita un saludo segun el idioma
    msg = welcome(message)
    #
    user_id = message.from_user.id
    # Verifica el registro
    if not User.objects.filter(user_id=user_id).exists():
        save_new_user(message)
    # Envia una respuesta
    bot.send_message(user_id, msg, reply_markup=key)
Exemple #10
0
def set_faculty(message, response=messages['changeFaculty']):
    global institutes_list
    value = message.text.strip().upper()

    if len([item for item in institutes_list if item == value]) != 0 \
            or redis_db.get('setup-' + str(message.chat.id) + '-i') is not None:

        with db_conn.cursor() as cur:
            keyboard = ReplyKeyboardMarkup()
            sql_query = 'SELECT name FROM group_names WHERE institute_id = ' \
                        '(SELECT id FROM institutes WHERE name = \'{}\') ORDER BY name;'

            bot.send_chat_action(message.chat.id, 'typing')
            cur.execute(sql_query.format(value))
            redis_db.setex('setup-' + str(message.chat.id) + '-i', 64800,
                           value)

            for item in cur:
                groups_list.append(item[0])
                keyboard.row(item[0])

            send = bot.send_message(message.chat.id,
                                    response,
                                    reply_markup=keyboard)
            bot.register_next_step_handler(send, set_group_number)
    else:
        wrong_institute(message)
Exemple #11
0
def check_course(message: Message):
    """
    Обрабатывает введенный пользователем курс материала
    для загрузки
    :param message: сообщение пользователя с курсом материала
    """
    chat_id = message.chat.id

    if message.text in COMMANDS:
        return handle_cancel(message, 'загрузки')

    if not is_text(message) or not is_course_correct(message):
        instruction = bot.send_message(chat_id, INCORRECT_DATA_MSG)
        return bot.register_next_step_handler(instruction, check_course)

    state = get_state(chat_id)
    state.uploading_material.course = message.text

    markup = ReplyKeyboardMarkup(one_time_keyboard=True)
    for subject in SUBJECTS:
        markup.row(KeyboardButton(subject))

    save_state(chat_id, state)

    instruction = bot.send_message(chat_id,
                                   UPLOAD_SUBJECT_MSG,
                                   reply_markup=markup)
    bot.register_next_step_handler(instruction, check_subject)
Exemple #12
0
def main_menu(user):
    text = '---= Главное меню =---'
    keyboard = ReplyKeyboardMarkup(one_time_keyboard=True)
    keyboard.row(KeyboardButton('Играть'), KeyboardButton('Магазин'))
    keyboard.row(KeyboardButton('Настройки аккаунта'))
    user.resend_message(text, keyboard)
    bot.register_next_step_handler_by_chat_id(user.chat_id, main_handler)
Exemple #13
0
def change_subgroup_number(message, response=messages['changeSubgroupNumber']):
    keyboard = ReplyKeyboardMarkup(True, True)
    keyboard.row('1', '2')
    keyboard.row(messages['bothSubgroups'])

    send = bot.send_message(message.chat.id, response, reply_markup=keyboard)
    bot.register_next_step_handler(send, save_new_subgroup)
Exemple #14
0
def cont():
    phone=KeyboardButton("📞 Отправить контакт",request_contact=True)
    back=KeyboardButton('◀️ Назад')
    kb=ReplyKeyboardMarkup(resize_keyboard=True)
    kb.row(phone)
    kb.row(back)
    return kb
Exemple #15
0
def fin2():
    kb=ReplyKeyboardMarkup(resize_keyboard=True)
    b1=KeyboardButton("🎥 Посмотреть")
    b2=KeyboardButton("📲 Главное меню")
    kb.row(b1)
    kb.row(b2)
    return kb
Exemple #16
0
def kv():
    kb=ReplyKeyboardMarkup(resize_keyboard=True)
    b1=KeyboardButton("Зарегистрироваться.")
    b2=KeyboardButton('◀️ Назад.')
    kb.row(b1)
    kb.row(b2)
    return kb
def menu_language(user):
    text = user.text_with_symbols("меню выбора языка")
    keyboard = ReplyKeyboardMarkup(one_time_keyboard=True)
    keyboard.row(KeyboardButton('RU'), KeyboardButton('EN'))
    user.resend_message(text, keyboard)
    bot.register_next_step_handler_by_chat_id(user.chat_id,
                                              menu_language_handler)
Exemple #18
0
def Rate_Uz():
    markup = ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True)
    markup.row(InlineKeyboardButton('1'), InlineKeyboardButton('2'),
               InlineKeyboardButton('3'), InlineKeyboardButton('4'),
               InlineKeyboardButton('5'))
    markup.row(InlineKeyboardButton('Menu'), InlineKeyboardButton('Orqaga'))
    return markup
Exemple #19
0
def set_sum(message, command):
    if command == 'Отменить':
        order_id = orders.get_order_id_by_user(message.from_user.id)
        orders.end_order(order_id)

        response = 'Заказ отменён'
        states.update_user_state('WAITING', message.from_user.id)
        main_markup = ReplyKeyboardMarkup(True, False)
        main_markup.row('Запросить сумму')

        ret = {'Text': response, 'Markup': main_markup, 'Send': False}
    else:
        order_id = orders.get_order_id_by_user(message.from_user.id)
        # TODO здесь собственно вся байда с лимитами проверками суммы и тд
        check = True
        if check:
            states.update_user_state('CONFIRMING', message.from_user.id)
            response = 'Совершите платёж, пришлите файл подтверждения'
            orders.update_order('time', str(datetime.datetime.now()), order_id)

        else:
            response = 'Не получится выполнить такой запрос, ' \
                       'попробуйте ввести другую сумму'
        ret = {'Text': response, 'Markup': None, 'Send': False}
    return ret
Exemple #20
0
def loc():
    locat = KeyboardButton("📌Отправить местоположение", request_location=True)
    back = KeyboardButton('◀️ Назад')
    kb = ReplyKeyboardMarkup(resize_keyboard=True)
    kb.row(locat)
    kb.row(back)
    return kb
Exemple #21
0
 def markup_keyboard():
     keyboard = ReplyKeyboardMarkup(resize_keyboard=True,
                                    one_time_keyboard=False)
     keyboard.row('/start', '/help')
     keyboard.row('Настройки')
     # keyboard.row('Скрыть')
     return keyboard
Exemple #22
0
def set_institute(message, response=messages['changeInstitute']):
    global institutes_list
    keyboard = ReplyKeyboardMarkup()

    with db_conn.cursor() as cur:
        sql_query = 'SELECT name FROM institutes ORDER BY name'
        cur.execute(sql_query)

        for item in cur:
            institutes_list.append(item[0])
            keyboard.row(item[0])

        bot.send_chat_action(message.chat.id, 'typing')

        if response == messages[
                'changeInstitute'] and message.text != messages['mainMenu']:
            bot.edit_message_reply_markup(chat_id=message.chat.id,
                                          message_id=message.message_id,
                                          reply_markup=InlineKeyboardMarkup(
                                              []))

        send = bot.send_message(message.chat.id,
                                response,
                                reply_markup=keyboard)
        bot.register_next_step_handler(send, set_faculty)
Exemple #23
0
def sel_sost():
    kb=ReplyKeyboardMarkup(resize_keyboard=True)
    b=KeyboardButton("С ремонтом")
    b1=KeyboardButton("Без ремонта")
    bb=KeyboardButton("⬅️ Назад")
    kb.row(b,b1)
    kb.row(bb)
    return kb
def button_settings(user):
    text = user.text_with_symbols("эмоджи на кнопках")
    keyboard = ReplyKeyboardMarkup(one_time_keyboard=True)
    keyboard.row(KeyboardButton(user.text('вкл')),
                 KeyboardButton(user.text('выкл')))
    user.resend_message(text, keyboard)
    bot.register_next_step_handler_by_chat_id(user.chat_id,
                                              button_settings_handler)
Exemple #25
0
def manage_events():
    markup = ReplyKeyboardMarkup(row_width=2)
    markup.add(KeyboardButton("🆕 Neuer Termin"),
               KeyboardButton("🔄 Termin bearbeiten"))
    markup.add(KeyboardButton("ℹ️ Terminzusammenfassung"),
               KeyboardButton("⏹ Termin absagen"))
    markup.row(KeyboardButton("🔙 Admin Menü"))
    return markup
Exemple #26
0
def single_cancel_button_markup() -> object:
    '''
    Function returns markup with only one button '❌ Cancel'.
    :rtype: ReplyKeyboardMarkup.
    '''
    markup = ReplyKeyboardMarkup(one_time_keyboard=True, resize_keyboard=True)
    markup.row(button_titles.CANCEL)
    return markup
Exemple #27
0
    def _form_markup(self) -> ReplyKeyboardMarkup:
        keyboard = ReplyKeyboardMarkup(resize_keyboard=True)

        for btn_row in utils.reply_keyboard_columns_generator(
                btn_names_list=self.TEXT_BUTTONS, col=2):
            keyboard.row(*btn_row)

        return keyboard
def symbols_in_the_title(user):
    text = f'{user.text_with_symbols("знаки в оглавлении")}'
    keyboard = ReplyKeyboardMarkup(one_time_keyboard=True)
    keyboard.row(KeyboardButton(user.button_with_emoji('знаки в начале')),
                 KeyboardButton(user.button_with_emoji('знаки в конце')))
    user.resend_message(text, keyboard)
    bot.register_next_step_handler_by_chat_id(user.chat_id,
                                              symbols_in_the_title_handler)
Exemple #29
0
def master():
    markup = ReplyKeyboardMarkup(row_width=2)
    markup.row(KeyboardButton("📝 Show Table"))
    # markup.add(KeyboardButton("📝 Show Table"), KeyboardButton("SQL Command"))
    markup.add(KeyboardButton("Manage Members"),
               KeyboardButton("Remove Event")),
    markup.row(KeyboardButton("Remove Survey"), KeyboardButton("🔙 Main Menu"))
    return markup
Exemple #30
0
def events():
    markup = ReplyKeyboardMarkup(row_width=2)
    markup.add(KeyboardButton("🎭 Alle Termine mit Details"),
               KeyboardButton("⁉️ Ausstehende Rückmeldungen"))
    markup.add(KeyboardButton("✅ Meine Zusagen"),
               KeyboardButton("❌ Meine Absagen"))
    markup.row(KeyboardButton("Hauptmenü"))
    return markup