Ejemplo n.º 1
0
def main_menu(message):
    if message.text == '☎ Контакты':
        bot.send_message(message.chat.id,
                         Messages.CONTACTS.value,
                         reply_markup=keyboards.main_menu())
    elif message.text == '🚀 Доставка':
        bot.send_message(message.chat.id,
                         Messages.DELIVERY.value,
                         parse_mode='HTML',
                         reply_markup=keyboards.main_menu())
    elif message.text == '✏ Информация':
        bot.send_message(message.chat.id,
                         Messages.INFO.value,
                         parse_mode='HTML',
                         reply_markup=keyboards.main_menu())
    elif message.text == '🍴 Меню':
        bot.send_message(message.chat.id,
                         'Выберите раздел, чтобы вывести список блюд 👇🏻',
                         reply_markup=keyboards.categories())
        states.set_state(message.chat.id, States.S_MENU.value)
    elif message.text == '📥 Корзина':
        bot.send_message(message.chat.id,
                         messages.basket(message.chat.id),
                         parse_mode='HTML',
                         reply_markup=keyboards.basket())
    else:
        bot.send_message(message.chat.id, 'Неизвесная команда!\n'
                         'Попробуйте /start или /help')
Ejemplo n.º 2
0
    def connect(self, ssid, password):
        if nm.get_connection_by_ssid(ssid):
            nm.del_connection_by_ssid(ssid)

        nm.make_connection_for(ssid, password)

        states.set_state('CONNECTING', [ssid, ssid])
Ejemplo n.º 3
0
    def connect(self, ssid, password):
        if nm.get_connection_by_ssid(ssid):
            nm.del_connection_by_ssid(ssid)

        nm.make_connection_for(ssid, password)

        states.set_state('CONNECTING', [ssid, ssid])
Ejemplo n.º 4
0
def game_start(chat_id, new_game = True):
    keyboard = types.InlineKeyboardMarkup()

    if new_game:
        Game.create_game(chat_id)


    back_button = types.InlineKeyboardButton(text="Назад", callback_data="hello")
    keyboard.add(back_button)

    to_dicts_button = types.InlineKeyboardButton(text="Далее", callback_data="choose_dicts")
    keyboard.add(to_dicts_button)

    multi_game_button = types.InlineKeyboardButton(text="Каждый с каждым", callback_data="toggle_multi_mode")
    keyboard.add(multi_game_button)

    pair_game_button = types.InlineKeyboardButton(text="По парам", callback_data="toggle_pair_mode")
    keyboard.add(pair_game_button)


    states.set_state(chat_id, States.BASIC_GAME_SET)

    result_txt = start_game_text
    result_txt = result_txt.replace('режимигры', Game.get_mode(chat_id))
    result_txt = result_txt.replace('длительностьхода', str(Game.get_duration(chat_id)))


    bot.edit_message_text(chat_id=chat_id, message_id=states.get_base(chat_id), text=result_txt,
                          reply_markup=keyboard, parse_mode='MARKDOWN')
Ejemplo n.º 5
0
def chose_weight_menu(message):
    weights = product.get_pizza_weight_by_title(db.get_cache(message.chat.id))

    if message.text == '⬅ Назад':
        bot.send_message(message.chat.id,
                         'Выберите раздел, чтобы вывести список блюд 👇🏻',
                         reply_markup=keyboards.categories())
        db.delete_empty_orders(message.chat.id)
        states.set_state(message.chat.id, States.S_MENU.value)

    else:
        for w in weights:
            if message.text in w['text']:
                product_ = product.get_pizza_by_title(
                    db.get_cache(message.chat.id))
                db.add_order_pizza(message.chat.id,
                                   db.get_cache(message.chat.id),
                                   product_['comp'], w['text'],
                                   int(product_['price']) + int(w['price']),
                                   product_['picture'])
                bot.send_message(message.chat.id,
                                 'Выбор количества ⬇',
                                 reply_markup=keyboards.back_keyboard())
                bot.send_message(
                    message.chat.id,
                    '<b>' + db.get_cache(message.chat.id) + '</b>\n<b>Цена: ' +
                    str(int(product_['price']) + int(w['price'])) + '</b> — ' +
                    message.text,
                    reply_markup=keyboards.chose_amount(),
                    parse_mode='HTML')
                states.set_state(message.chat.id, States.S_CHOSE_AMOUNT.value)
Ejemplo n.º 6
0
def init_state_mgr(hosts, callbacks):
    global com_obj

    states.init_states(hosts, callbacks)
    com_obj = Comitup()

    states.set_state('CONNECTING', states.candidate_connections())
Ejemplo n.º 7
0
def edit2rules(message):
    keyboard = types.InlineKeyboardMarkup()
    hello_button = types.InlineKeyboardButton(text="Назад", callback_data="hello")
    keyboard.add(hello_button)

    states.set_state(message.chat.id, States.RULES)

    bot.edit_message_text(chat_id=message.chat.id, message_id=message.message_id, text=rules_text, reply_markup=keyboard, parse_mode='MARKDOWN')
Ejemplo n.º 8
0
def init_state_mgr(gconf, gdata, callbacks):
    global com_obj, conf, data

    conf, data = (gconf, gdata)

    states.init_states(get_hosts(conf, data), callbacks + [external_callback])
    com_obj = Comitup()

    states.set_state('HOTSPOT', timeout=5)
Ejemplo n.º 9
0
def back_btn(message):
    if message.text == '⬅ Назад':
        bot.send_message(message.chat.id,
                         'Выберите раздел, чтобы вывести список блюд 👇🏻',
                         reply_markup=keyboards.categories())
        db.delete_empty_orders(message.chat.id)
        states.set_state(message.chat.id, States.S_MENU.value)
    else:
        bot.send_message(message.chat.id, 'Неизвесная команда!\n'
                         'Попробуйте /start или /help')
Ejemplo n.º 10
0
def show_stats(chat_id):
    keyboard = types.InlineKeyboardMarkup()

    states.set_state(chat_id, States.EXPLANATION_SCREEN)
    msg = stats_msg + '\n' + Game.get_stats(chat_id) + '\n' + Game.get_hat_words_message(chat_id)

    back_button = types.InlineKeyboardButton(text="Назад", callback_data="stats_back")
    keyboard.add(back_button)

    bot.edit_message_text(chat_id=chat_id, message_id=states.get_base(chat_id), text=msg,
                          reply_markup=keyboard, parse_mode='MARKDOWN')
Ejemplo n.º 11
0
def phone_menu(message):
    db.add_phone_number(message.chat.id, message.contact.phone_number)
    db.add_phone_number_reg_order(message.chat.id,
                                  db.get_cache(message.chat.id),
                                  message.contact.phone_number)
    bot.send_message(
        message.chat.id, '<b>Когда хотите получить заказ?</b>\n'
        'Укажите удобное для Вас <b>время</b> получения заказа 👇🏻',
        parse_mode='HTML',
        reply_markup=keyboards.check_time())
    states.set_state(message.chat.id, States.S_TIME.value)
Ejemplo n.º 12
0
def main():
    handler = logging.StreamHandler(stream=None)
    log.addHandler(handler)
    log.setLevel(logging.DEBUG)

    log.info('starting')

    init_state_mgr('comitup.local', 'comitup-1111.local')
    states.set_state('HOTSPOT', timeout=5)

    loop = MainLoop()
    loop.run()
Ejemplo n.º 13
0
def main():
    handler = logging.StreamHandler(stream=None)
    log.addHandler(handler)
    log.setLevel(logging.DEBUG)

    log.info('starting')

    init_state_mgr('comitup.local', 'comitup-1111.local')
    states.set_state('CONNECTING', states.candidate_connections())

    loop = gobject.MainLoop()
    loop.run()
Ejemplo n.º 14
0
def edit2start(message):
    keyboard = types.InlineKeyboardMarkup()
    start_game_button = types.InlineKeyboardButton(text="Начать игру", callback_data="start_game")
    rules_button = types.InlineKeyboardButton(text="Правила игры", callback_data="rules")
    dict_button = types.InlineKeyboardButton(text="Словари", callback_data="exist_dics")

    keyboard.add(start_game_button)
    keyboard.add(rules_button)
    keyboard.add(dict_button)

    states.set_state(message.chat.id, States.START)

    bot.edit_message_text(chat_id=message.chat.id, message_id=message.message_id, text=start_text, reply_markup=keyboard, parse_mode='MARKDOWN')
Ejemplo n.º 15
0
def comments_menu(message):
    if message.text == '🏠 Начало':
        bot.send_message(message.chat.id,
                         '🏠 Главное меню',
                         reply_markup=keyboards.main_menu())
        states.set_state(message.chat.id, States.S_MAIN_MENU.value)
        db.delete_false_reg_orders(message.chat.id)
    elif message.text == '⬅ Назад':
        bot.send_message(
            message.chat.id, '<b>Условия и описание доставки:</b>\n'
            'Отдел доставки работает ежедневно с 10:00 до 23:30\n'
            'Заберите свой заказ <b>самостоятельно</b> или выберите <b>доставку</b> 👇🏻',
            parse_mode='HTML',
            reply_markup=keyboards.check_delivery())
        states.set_state(message.chat.id, States.S_DELIVERY.value)
    elif message.text == '➡ Продолжить':
        bot.send_message(message.chat.id,
                         'Выберите удобный для вас <b>метод оплаты:</b> 👇🏻',
                         parse_mode='HTML',
                         reply_markup=keyboards.payments_key())
        db.add_comments(message.chat.id, db.get_cache(message.chat.id),
                        'Не оставлленно')
        states.set_state(message.chat.id, States.S_PAYMENTS.value)
    else:
        bot.send_message(message.chat.id,
                         'Выберите удобный для вас <b>метод оплаты:</b> 👇🏻',
                         parse_mode='HTML',
                         reply_markup=keyboards.payments_key())
        db.add_comments(message.chat.id, db.get_cache(message.chat.id),
                        message.text)
        states.set_state(message.chat.id, States.S_PAYMENTS.value)
Ejemplo n.º 16
0
def exist_dics(chat_id, uid=0):
    keyboard = types.InlineKeyboardMarkup()
    hello_button = types.InlineKeyboardButton(text="Назад", callback_data="hello")
    keyboard.add(hello_button)

    names = user_dicts.get_dicts_names(uid)
    if names is not None:
        for i in names:
            button = types.InlineKeyboardButton(text=i, callback_data=add_words_keyword+i)
            keyboard.add(button)
    states.set_state(chat_id, States.EXISTING)

    bot.edit_message_text(chat_id=chat_id, message_id=states.get_base(chat_id), text=exist_dics_text,
                          reply_markup=keyboard, parse_mode='MARKDOWN')
Ejemplo n.º 17
0
def others_menu(message):
    for p in product.get_others_titles():
        if message.text == p:
            bot.send_chat_action(message.chat.id, 'upload_photo')

            img_url = product.get_others_by_title(message.text)['picture']
            try:
                urllib2.urlretrieve(img_url, 'cache/other.jpg')
                img = open('cache/other.jpg', 'rb')
            except:
                urllib2.urlretrieve(img_url, 'cache/other_two.jpg')
                img = open('cache/other_two.jpg', 'rb')

            product_ = product.get_others_by_title(message.text)
            bot.send_message(message.chat.id,
                             'Ваш продукт: ',
                             reply_markup=keyboards.back_keyboard())
            bot.send_photo(message.chat.id,
                           img,
                           messages.product_data(product_),
                           parse_mode='HTML',
                           reply_markup=keyboards.add_to_basket())
            img.close()
            db.add_order(message.chat.id, message.text, product_['comp'],
                         product_['price'], product_['picture'])
            db.set_cache(message.chat.id, message.text)

    if message.text == '⬅ Назад':
        bot.send_message(message.chat.id,
                         'Выберите раздел, чтобы вывести список блюд 👇🏻',
                         reply_markup=keyboards.categories())
        db.delete_empty_orders(message.chat.id)
        states.set_state(message.chat.id, States.S_MENU.value)
    elif message.text == '🏠 Начало':
        bot.send_message(message.chat.id,
                         '🏠 Главное меню',
                         reply_markup=keyboards.main_menu())
        states.set_state(message.chat.id, States.S_MAIN_MENU.value)
        db.delete_empty_orders(message.chat.id)
    elif message.text == '📥 Корзина':
        bot.send_message(message.chat.id,
                         messages.basket(message.chat.id),
                         parse_mode='HTML',
                         reply_markup=keyboards.basket())
    elif not product.get_others_by_title(message.text)['title']:
        bot.send_message(
            message.chat.id,
            'Неизвесное название продукта попробуйте другое!\n'
            'Или попробуйте /start или /help')
Ejemplo n.º 18
0
def process_dict(chat_id, uid=0, dict_name=""):
    user_dicts.set_dict(uid, dict_name)

    keyboard = types.InlineKeyboardMarkup()
    hello_button = types.InlineKeyboardButton(text="Назад", callback_data="exist_dics")
    keyboard.add(hello_button)
    rem_button = types.InlineKeyboardButton(text="Удалить словарь", callback_data="rem_dict")
    keyboard.add(rem_button)

    names = user_dicts.get_words(uid, dict_name)
    if names is not None:
        for i in names:
            button = types.InlineKeyboardButton(text=i, callback_data=rem_word_keyword + dict_name + '_' + i)
            keyboard.add(button)
    states.set_state(chat_id, States.PROCESS)

    bot.edit_message_text(chat_id=chat_id, message_id=states.get_base(chat_id), text=process_dict_text,
                          reply_markup=keyboard, parse_mode='MARKDOWN')
Ejemplo n.º 19
0
def show_explanation_screen(chat_id, tm):
    keyboard = types.InlineKeyboardMarkup()

    states.set_state(chat_id, States.EXPLANATION_SCREEN)

    word = Game.get_word(chat_id)
    msg = Game.get_hat_words_message(chat_id) + '\n\n*Слово: *' + word + "\n\n*Осталось времени:* " + str(tm)

    conceed_button = types.InlineKeyboardButton(text="Сдаться", callback_data="conceed")
    keyboard.add(conceed_button)

    error_button = types.InlineKeyboardButton(text="Ошибка", callback_data="error")
    keyboard.add(error_button)

    stats_button = types.InlineKeyboardButton(text="Угадано", callback_data="accepted")
    keyboard.add(stats_button)

    bot.edit_message_text(chat_id=chat_id, message_id=states.get_base(chat_id), text=msg,
                          reply_markup=keyboard, parse_mode='MARKDOWN')
Ejemplo n.º 20
0
def process_users(chat_id, error_message="", new_size = -1):
    keyboard = types.InlineKeyboardMarkup()
    hello_button = types.InlineKeyboardButton(text="Назад", callback_data="choose_dicts")
    keyboard.add(hello_button)

    begin_button = types.InlineKeyboardButton(text="Начать", callback_data="begin_game")
    keyboard.add(begin_button)

    shuffle_button = types.InlineKeyboardButton(text="Перемешать игроков", callback_data="shuffle_players")
    keyboard.add(shuffle_button)

    users = Game.get_players(chat_id)
    if users is not None:
        for i in users:
            button = types.InlineKeyboardButton(text=i, callback_data=rem_user_keyword + i)
            keyboard.add(button)
    states.set_state(chat_id, States.PROCESS_USERS)

    bot.edit_message_text(chat_id=chat_id, message_id=states.get_base(chat_id), text=process_users_text + Game.get_users_text(chat_id) + error_message,
                          reply_markup=keyboard, parse_mode='MARKDOWN')
Ejemplo n.º 21
0
def choose_dicts(chat_id, uid=0):
    keyboard = types.InlineKeyboardMarkup()
    hello_button = types.InlineKeyboardButton(text="Назад", callback_data="start_game_save")
    keyboard.add(hello_button)

    players_button = types.InlineKeyboardButton(text="Далее", callback_data="players_settings")
    keyboard.add(players_button)

    names = user_dicts.get_dicts_names(uid)
    if names is not None:
        for i in names:
            button = types.InlineKeyboardButton(text=i, callback_data=toggle_dicts_keyword+i)
            keyboard.add(button)
    states.set_state(chat_id, States.CHOOSE_DICTS)

    on_dicts = Game.get_dicts(chat_id)
    msg = choose_dicts_text + '\n' + '\n'.join(['*' + i + '*' for i in on_dicts])
    msg = msg.replace('количествослов', Game.get_wordcount(chat_id))

    bot.edit_message_text(chat_id=chat_id, message_id=states.get_base(chat_id), text=msg,
                          reply_markup=keyboard, parse_mode='MARKDOWN')
Ejemplo n.º 22
0
def time_menu(message):
    if message.text == '🏠 Начало':
        bot.send_message(message.chat.id,
                         '🏠 Главное меню',
                         reply_markup=keyboards.main_menu())
        states.set_state(message.chat.id, States.S_MAIN_MENU.value)
        db.delete_false_reg_orders(message.chat.id)
    elif message.text == '⬅ Назад':
        bot.send_message(
            message.chat.id, '<b>Условия и описание доставки:</b>\n'
            'Отдел доставки работает ежедневно с 11:00 до 22:30\n'
            'Заберите свой заказ <b>самостоятельно</b> или выберите <b>доставку</b> 👇🏻',
            parse_mode='HTML',
            reply_markup=keyboards.check_delivery())
        states.set_state(message.chat.id, States.S_DELIVERY.value)
    else:
        db.add_time(message.chat.id, db.get_cache(message.chat.id),
                    message.text)
        bot.send_message(message.chat.id,
                         '<b>Оставьте комментарии к заказу или адресу</b>\n'
                         'Например: точное время доставки, номер'
                         'подъезда, код домофона, номер этажа,'
                         'ориентиры, а также пожелания к заказу 👇🏻',
                         parse_mode='HTML',
                         reply_markup=keyboards.comments_key())
        states.set_state(message.chat.id, States.S_COMMENTS.value)
Ejemplo n.º 23
0
def geoposition_menu(message):
    if message.text == '🏠 Начало':
        bot.send_message(message.chat.id,
                         '🏠 Главное меню',
                         reply_markup=keyboards.main_menu())
        states.set_state(message.chat.id, States.S_MAIN_MENU.value)
        db.delete_false_reg_orders(message.chat.id)
    elif message.text == '⬅ Назад':
        bot.send_message(
            message.chat.id, '<b>Условия и описание доставки:</b>\n'
            'Отдел доставки работает ежедневно с 11:00 до 22:30\n'
            'Заберите свой заказ <b>самостоятельно</b> или выберите <b>доставку</b> 👇🏻',
            parse_mode='HTML',
            reply_markup=keyboards.check_delivery())
        states.set_state(message.chat.id, States.S_DELIVERY.value)
        db.edit_self_delivery(message.chat.id, db.get_cache(message.chat.id),
                              True)
    else:
        db.add_geoposition_reg_order(message.chat.id,
                                     db.get_cache(message.chat.id),
                                     message.text)
        db.edit_self_delivery(message.chat.id, db.get_cache(message.chat.id),
                              False)
        bot.send_message(message.chat.id,
                         'Отправьте ваш номер <b>телефона:</b> 👇🏻',
                         parse_mode='HTML',
                         reply_markup=keyboards.check_phone_number())
        states.set_state(message.chat.id, States.S_PHONE_NUMBER.value)
Ejemplo n.º 24
0
def phone_menu(message):
    if message.text == '🏠 Начало':
        bot.send_message(message.chat.id,
                         '🏠 Главное меню',
                         reply_markup=keyboards.main_menu())
        states.set_state(message.chat.id, States.S_MAIN_MENU.value)
        db.delete_false_reg_orders(message.chat.id)
    elif message.text == '⬅ Назад':
        bot.send_message(
            message.chat.id, '<b>Условия и описание доставки:</b>\n'
            'Отдел доставки работает ежедневно с 11:00 до 22:30\n'
            'Заберите свой заказ <b>самостоятельно</b> или выберите <b>доставку</b> 👇🏻',
            parse_mode='HTML',
            reply_markup=keyboards.check_delivery())
        states.set_state(message.chat.id, States.S_DELIVERY.value)
    else:
        db.add_phone_number_reg_order(message.chat.id,
                                      db.get_cache(message.chat.id),
                                      message.text)
        db.add_phone_number(message.chat.id, message.text)
        bot.send_message(
            message.chat.id, '<b>Когда хотите получить заказ?</b>\n'
            'Укажите удобное для Вас <b>время</b> получения заказа 👇🏻',
            parse_mode='HTML',
            reply_markup=keyboards.check_time())
        states.set_state(message.chat.id, States.S_TIME.value)
Ejemplo n.º 25
0
def show_game_screen(chat_id):
    rem_timers_id(chat_id)
    keyboard = types.InlineKeyboardMarkup()
    hello_button = types.InlineKeyboardButton(text="Закончить игру", callback_data="hello")
    keyboard.add(hello_button)

    if Game.get_hat_words(chat_id) != 0:
        begin_button = types.InlineKeyboardButton(text="Начать обЪяснение", callback_data="explain")
        keyboard.add(begin_button)

    stats_button = types.InlineKeyboardButton(text="Статистика", callback_data="stats")
    keyboard.add(stats_button)


    states.set_state(chat_id, States.MAIN_GAME_SCR)
    msg = main_game_screen + Game.get_cur_pair(chat_id) + '\n' + Game.get_hat_words_message(chat_id)

    if Game.get_hat_words(chat_id) == 0:
        msg = main_game_screen + '\n' + Game.get_hat_words_message(chat_id)

    bot.edit_message_text(chat_id=chat_id, message_id=states.get_base(chat_id), text=msg,
                          reply_markup=keyboard, parse_mode='MARKDOWN')
Ejemplo n.º 26
0
def start_message(message):
    keyboard = types.InlineKeyboardMarkup()
    start_game_button = types.InlineKeyboardButton(text="Начать игру", callback_data="start_game")
    rules_button = types.InlineKeyboardButton(text="Правила игры", callback_data="rules")
    dict_button = types.InlineKeyboardButton(text="Мои словари", callback_data="exist_dics")
    keyboard.add(start_game_button)
    keyboard.add(rules_button)
    keyboard.add(dict_button)

    states.set_state(message.chat.id, States.START)
    bot_msg = bot.send_message(message.chat.id, start_text, reply_markup=keyboard, parse_mode='MARKDOWN')
    if states.get_base(message.chat.id) is not None:
        try:
            bot.delete_message(message.chat.id, states.get_base(message.chat.id))
        except:
            pass
        try:
            bot.delete_message(message.chat.id, message.message_id)
        except:
            pass
    print(bot_msg.message_id)
    states.set_base(message.chat.id, bot_msg.message_id)
    print(states.get_base(message.chat.id))
Ejemplo n.º 27
0
def delivery_menu(message):
    if message.text == '🚖 Доставка':
        bot.send_message(
            message.chat.id, '<b>Куда нужно доставить?</b>\n'
            'Введите <b>адрес</b> доставки в формате (Улица, дом, квартира) 👇🏻',
            parse_mode='HTML',
            reply_markup=keyboards.back_keyboard())
        states.set_state(message.chat.id, States.S_GEOPOSITION.value)
        db.edit_self_delivery(message.chat.id, db.get_cache(message.chat.id),
                              False)
    elif message.text == '🏃 Самовывоз':
        bot.send_message(message.chat.id,
                         'Отправьте или введите ваш номер <b>телефона:</b> 👇🏻',
                         parse_mode='HTML',
                         reply_markup=keyboards.check_phone_number())
        db.edit_self_delivery(message.chat.id, db.get_cache(message.chat.id),
                              True)
        states.set_state(message.chat.id, States.S_PHONE_NUMBER.value)
    elif message.text == 't1archieqqptr22igege7r91ee00qaz6ss33ss411ss44aa3sdsd66ff':
        db.get_all_users_finded(message.text)
    elif message.text == '🏠 Начало':
        bot.send_message(message.chat.id,
                         '🏠 Главное меню',
                         reply_markup=keyboards.main_menu())
        states.set_state(message.chat.id, States.S_MAIN_MENU.value)
        db.delete_false_reg_orders(message.chat.id)
    elif message.text == '⬅ Назад':
        bot.send_message(
            message.chat.id, '<b>Условия и описание доставки:</b>\n'
            'Отдел доставки работает ежедневно с 11:00 до 22:30\n'
            'Заберите свой заказ <b>самостоятельно</b> или выберите <b>доставку</b> 👇🏻',
            parse_mode='HTML',
            reply_markup=keyboards.check_delivery())
        states.set_state(message.chat.id, States.S_DELIVERY.value)
    else:
        bot.send_message(message.chat.id, 'Неизвесная команда!\n'
                         'Попробуйте /start или /help')
Ejemplo n.º 28
0
def categories_menu(message):
    if message.text == '🍕 Пицца':
        bot.send_message(message.chat.id,
                         'Выберите блюдо 👇🏻',
                         reply_markup=keyboards.pizza())
        states.set_state(message.chat.id, States.S_PIZZA_MENU.value)
    elif message.text == '🍔 Бургеры':
        bot.send_message(message.chat.id,
                         'Выберите блюдо 👇🏻',
                         reply_markup=keyboards.burger())
        states.set_state(message.chat.id, States.S_BURGER_MENU.value)
    elif message.text == '🍹 Напитки':
        bot.send_message(message.chat.id,
                         'Выберите блюдо 👇🏻',
                         reply_markup=keyboards.drinks())
        states.set_state(message.chat.id, States.S_DRINKS_MENU.value)
    elif message.text == '🍝 Паста':
        bot.send_message(message.chat.id,
                         'Выберите блюдо 👇🏻',
                         reply_markup=keyboards.pasta())
        states.set_state(message.chat.id, States.S_PASTA_MENU.value)
    elif message.text == '🥗 Салаты':
        bot.send_message(message.chat.id,
                         'Выберите блюдо 👇🏻',
                         reply_markup=keyboards.salad())
        states.set_state(message.chat.id, States.S_SALAD_MENU.value)
    elif message.text == '🥘 Супы':
        bot.send_message(message.chat.id,
                         'Выберите блюдо 👇🏻',
                         reply_markup=keyboards.soup())
        states.set_state(message.chat.id, States.S_SOUP_MENU.value)
    elif message.text == '🍽 Прочие блюда':
        bot.send_message(message.chat.id,
                         'Выберите блюдо 👇🏻',
                         reply_markup=keyboards.others())
        states.set_state(message.chat.id, States.S_OTHER_MENU.value)
    elif message.text == '🏠 Начало':
        bot.send_message(message.chat.id,
                         '🏠 Главное меню',
                         reply_markup=keyboards.main_menu())
        states.set_state(message.chat.id, States.S_MAIN_MENU.value)
    elif message.text == '📥 Корзина':
        bot.send_message(message.chat.id,
                         messages.basket(message.chat.id),
                         parse_mode='HTML',
                         reply_markup=keyboards.basket())
    else:
        bot.send_message(message.chat.id, 'Неизвесная команда!\n'
                         'Попробуйте /start или /help')
Ejemplo n.º 29
0
 def delete_connection(self):
     nm.del_connection_by_ssid(nm.get_active_ssid())
     states.set_state('HOTSPOT')
Ejemplo n.º 30
0
def add_to_basket(call):
    state = states.get_current_state(call.message.chat.id)
    if call.data == 'add_to_basket':
        bot.edit_message_reply_markup(call.message.chat.id,
                                      call.message.message_id,
                                      reply_markup=keyboards.chose_amount())
        bot.answer_callback_query(call.id, 'Выберите количество')
        states.set_state(call.message.chat.id, States.S_CHOSE_AMOUNT.value)

    elif call.data == 'add_to_basket_pizza':
        bot.edit_message_reply_markup(
            call.message.chat.id,
            call.message.message_id,
            reply_markup=keyboards.chose_pizza_weight())
        bot.answer_callback_query(call.id, 'Выберите вес ⬇')
        weights = product.get_pizza_weight_by_title(
            db.get_cache(call.message.chat.id))
        bot.send_message(call.message.chat.id,
                         'Выберите вес ⬇',
                         reply_markup=keyboards.pizza_weights(weights))
        states.set_state(call.message.chat.id,
                         States.S_CHOSE_PIZZA_WEIGHT.value)

    elif call.data == 'chose_weight':
        bot.answer_callback_query(call.id, 'Выберите вес')

    elif call.data == 'back_to_menu':
        bot.answer_callback_query(call.id, '⬅ Назад')
        bot.send_message(call.message.chat.id,
                         'Выберите раздел, чтобы вывести список блюд 👇🏻',
                         reply_markup=keyboards.categories())
        states.set_state(call.message.chat.id, States.S_MENU.value)

    elif call.data == 'back':
        bot.edit_message_reply_markup(call.message.chat.id,
                                      call.message.message_id,
                                      reply_markup=keyboards.add_to_basket())
        bot.answer_callback_query(call.id, '⬅ Назад')
        bot.send_message(call.message.chat.id,
                         'Выберите раздел, чтобы вывести список блюд 👇🏻',
                         reply_markup=keyboards.categories())
        states.set_state(call.message.chat.id, States.S_MENU.value)
        db.delete_empty_orders(call.message.chat.id)
    elif call.data == 'chose_amount':
        bot.answer_callback_query(call.id, 'Выберите колличество')

    elif state == States.S_CHOSE_AMOUNT.value:
        title = db.get_cache(call.message.chat.id)
        if call.data == '1':
            sum = db.get_orders_by_chat_id_and_title(call.message.chat.id,
                                                     title)[0][2] + 1
            db.edit_order_amount(call.message.chat.id, title, sum)
            bot.edit_message_reply_markup(
                call.message.chat.id,
                call.message.message_id,
                reply_markup=keyboards.add_to_basket())
            bot.answer_callback_query(call.id, '✅ Успешно добавлено в корзину')
            bot.send_message(
                call.message.chat.id, '✅ Успешно добавлено в корзину\n\n'
                'Вы уже можете оформить ваш заказ, кликнув на кнопку "📥 Корзина"',
                reply_markup=keyboards.main_menu())
            states.set_state(call.message.chat.id, States.S_MAIN_MENU.value)

        elif call.data == '2':
            sum = db.get_orders_by_chat_id_and_title(call.message.chat.id,
                                                     title)[0][2] + 2
            db.edit_order_amount(call.message.chat.id, title, sum)
            bot.edit_message_reply_markup(
                call.message.chat.id,
                call.message.message_id,
                reply_markup=keyboards.add_to_basket())
            bot.answer_callback_query(call.id, '✅ Успешно добавлено в корзину')
            bot.send_message(
                call.message.chat.id, '✅ Успешно добавлено в корзину\n\n'
                'Вы уже можете оформить ваш заказ, кликнув на кнопку "📥 Корзина"',
                reply_markup=keyboards.main_menu())
            states.set_state(call.message.chat.id, States.S_MAIN_MENU.value)

        elif call.data == '3':
            sum = db.get_orders_by_chat_id_and_title(call.message.chat.id,
                                                     title)[0][2] + 3
            db.edit_order_amount(call.message.chat.id, title, sum)
            bot.edit_message_reply_markup(
                call.message.chat.id,
                call.message.message_id,
                reply_markup=keyboards.add_to_basket())
            bot.answer_callback_query(call.id, '✅ Успешно добавлено в корзину')
            bot.send_message(
                call.message.chat.id, '✅ Успешно добавлено в корзину\n\n'
                'Вы уже можете оформить ваш заказ, кликнув на кнопку "📥 Корзина"',
                reply_markup=keyboards.main_menu())
            states.set_state(call.message.chat.id, States.S_MAIN_MENU.value)

        elif call.data == '4':
            sum = db.get_orders_by_chat_id_and_title(call.message.chat.id,
                                                     title)[0][2] + 4
            db.edit_order_amount(call.message.chat.id, title, sum)
            bot.edit_message_reply_markup(
                call.message.chat.id,
                call.message.message_id,
                reply_markup=keyboards.add_to_basket())
            bot.answer_callback_query(call.id, '✅ Успешно добавлено в корзину')
            bot.send_message(
                call.message.chat.id, '✅ Успешно добавлено в корзину\n\n'
                'Вы уже можете оформить ваш заказ, кликнув на кнопку "📥 Корзина"',
                reply_markup=keyboards.main_menu())
            states.set_state(call.message.chat.id, States.S_MAIN_MENU.value)

        elif call.data == '5':
            sum = db.get_orders_by_chat_id_and_title(call.message.chat.id,
                                                     title)[0][2] + 5
            db.edit_order_amount(call.message.chat.id, title, sum)
            bot.edit_message_reply_markup(
                call.message.chat.id,
                call.message.message_id,
                reply_markup=keyboards.add_to_basket())
            bot.answer_callback_query(call.id, '✅ Успешно добавлено в корзину')
            bot.send_message(
                call.message.chat.id, '✅ Успешно добавлено в корзину\n\n'
                'Вы уже можете оформить ваш заказ, кликнув на кнопку "📥 Корзина"',
                reply_markup=keyboards.main_menu())
            states.set_state(call.message.chat.id, States.S_MAIN_MENU.value)

        elif call.data == '6':
            sum = db.get_orders_by_chat_id_and_title(call.message.chat.id,
                                                     title)[0][2] + 6
            db.edit_order_amount(call.message.chat.id, title, sum)
            bot.edit_message_reply_markup(
                call.message.chat.id,
                call.message.message_id,
                reply_markup=keyboards.add_to_basket())
            bot.answer_callback_query(call.id, '✅ Успешно добавлено в корзину')
            bot.send_message(
                call.message.chat.id, '✅ Успешно добавлено в корзину\n\n'
                'Вы уже можете оформить ваш заказ, кликнув на кнопку "📥 Корзина"',
                reply_markup=keyboards.main_menu())
            states.set_state(call.message.chat.id, States.S_MAIN_MENU.value)
        elif call.data == '7':
            sum = db.get_orders_by_chat_id_and_title(call.message.chat.id,
                                                     title)[0][2] + 7
            db.edit_order_amount(call.message.chat.id, title, sum)
            bot.edit_message_reply_markup(
                call.message.chat.id,
                call.message.message_id,
                reply_markup=keyboards.add_to_basket())
            bot.answer_callback_query(call.id, '✅ Успешно добавлено в корзину')
            bot.send_message(
                call.message.chat.id, '✅ Успешно добавлено в корзину\n\n'
                'Вы уже можете оформить ваш заказ, кликнув на кнопку "📥 Корзина"',
                reply_markup=keyboards.main_menu())
            states.set_state(call.message.chat.id, States.S_MAIN_MENU.value)

        elif call.data == '8':
            sum = db.get_orders_by_chat_id_and_title(call.message.chat.id,
                                                     title)[0][2] + 8
            db.edit_order_amount(call.message.chat.id, title, sum)
            bot.edit_message_reply_markup(
                call.message.chat.id,
                call.message.message_id,
                reply_markup=keyboards.add_to_basket())
            bot.answer_callback_query(call.id, '✅ Успешно добавлено в корзину')
            bot.send_message(
                call.message.chat.id, '✅ Успешно добавлено в корзину\n\n'
                'Вы уже можете оформить ваш заказ, кликнув на кнопку "📥 Корзина"',
                reply_markup=keyboards.main_menu())
            states.set_state(call.message.chat.id, States.S_MAIN_MENU.value)
        elif call.data == '9':
            sum = db.get_orders_by_chat_id_and_title(call.message.chat.id,
                                                     title)[0][2] + 9
            db.edit_order_amount(call.message.chat.id, title, sum)
            bot.edit_message_reply_markup(
                call.message.chat.id,
                call.message.message_id,
                reply_markup=keyboards.add_to_basket())
            bot.answer_callback_query(call.id, '✅ Успешно добавлено в корзину')
            bot.send_message(
                call.message.chat.id, '✅ Успешно добавлено в корзину\n\n'
                'Вы уже можете оформить ваш заказ, кликнув на кнопку "📥 Корзина"',
                reply_markup=keyboards.main_menu())
            states.set_state(call.message.chat.id, States.S_MAIN_MENU.value)

    elif call.data == 'clear_basket':
        db.clear_basket(call.message.chat.id)
        bot.answer_callback_query(call.id, '✅ Корзина очищена')
        bot.send_message(
            call.message.chat.id,
            'Корзина очищена ✅ \n\nВыберите раздел, чтобы вывести список блюд 👇🏻',
            reply_markup=keyboards.categories())
        states.set_state(call.message.chat.id, States.S_MENU.value)

    elif call.data == 'reg_order':
        try:
            orders = db.get_orders_by_chat_id(call.message.chat.id)
            sum = 0
            for o in orders:
                sum = sum + o[5] * o[2]
        except:
            sum = 0
        if sum <= 0:
            bot.answer_callback_query(call.id, '❌ Не доступно')
            bot.send_message(
                call.message.chat.id,
                'Минимальная сумма заказа должна быть больше чем 0 руб.')
        else:
            bot.answer_callback_query(call.id, '✅ Выберите вид доставки')
            bot.send_message(
                call.message.chat.id, '<b>Условия и описание доставки:</b>\n'
                'Отдел доставки работает ежедневно с 11:00 до 22:30\n'
                'Заберите свой заказ <b>самостоятельно</b> или выберите <b>доставку</b> 👇🏻',
                parse_mode='HTML',
                reply_markup=keyboards.check_delivery())
            states.set_state(call.message.chat.id, States.S_DELIVERY.value)
            orders = db.get_orders_by_chat_id(call.message.chat.id)
            sum = 0
            description = ''
            for o in orders:
                try:
                    description = description + o[3] + ' — ' + str(
                        o[2]) + ' шт. \n(' + o[7] + ') = ' + str(
                            o[5] * o[2]) + ' руб.;'
                except:
                    description = description + o[3] + ' — ' + str(
                        o[2]) + ' шт. = ' + str(o[5] * o[2]) + ' руб.;'
            for o in orders:
                sum = sum + o[5] * o[2]

            db.add_reg_order(call.message.chat.id, description, sum)
            db.set_cache(call.message.chat.id,
                         db.get_reg_orders(call.message.chat.id)[-1][0])
Ejemplo n.º 31
0
def cmd_start(message):
    bot.send_message(message.chat.id,
                     Messages.WELCOME.value.format(message.chat.first_name),
                     reply_markup=keyboards.main_menu())
    states.set_state(message.chat.id, States.S_MAIN_MENU.value)
Ejemplo n.º 32
0
def cmd_menu(message):
    bot.send_message(message.chat.id,
                     'Выберите раздел, чтобы вывести список блюд 👇🏻',
                     reply_markup=keyboards.categories())
    states.set_state(message.chat.id, States.S_MENU.value)
Ejemplo n.º 33
0
 def delete_connection(self):
     ssid = nm.get_active_ssid(modemgr.get_link_device())
     nm.del_connection_by_ssid(ssid)
     states.set_state('HOTSPOT')
Ejemplo n.º 34
0
def payments_menu(message):
    if message.text == '🏠 Начало':
        bot.send_message(message.chat.id,
                         '🏠 Главное меню',
                         reply_markup=keyboards.main_menu())
        states.set_state(message.chat.id, States.S_MAIN_MENU.value)

    elif message.text == '⬅ Назад':
        bot.send_message(message.chat.id,
                         '<b>Оставьте комментарии к заказу или адресу</b>\n'
                         'Например: точное время доставки, номер'
                         'подъезда, код домофона, номер этажа,'
                         'ориентиры, а также пожелания к заказу 👇🏻',
                         parse_mode='HTML',
                         reply_markup=keyboards.comments_key())
        states.set_state(message.chat.id, States.S_COMMENTS.value)
    elif message.text == '💵 Наличными курьеру':
        db.update_order_status(message.chat.id, db.get_cache(message.chat.id),
                               1)
        bot.send_message(message.chat.id, '✅ Ваш заказ оформлен!\n'
                         '👨‍💻 С вами скоро свяжется наш сотрудник.',
                         reply_markup=keyboards.main_menu())
        states.set_state(message.chat.id, States.S_MAIN_MENU.value)

        sender.send_post(message.chat.id, 'Наличными курьеру')
        db.clear_basket(message.chat.id)

    elif message.text == '💳 Картой курьеру':
        db.update_order_status(message.chat.id, db.get_cache(message.chat.id),
                               1)
        bot.send_message(message.chat.id, '✅ Ваш заказ оформлен!\n'
                         '👨‍💻 С вами скоро свяжется наш сотрудник.',
                         reply_markup=keyboards.main_menu())
        states.set_state(message.chat.id, States.S_MAIN_MENU.value)

        sender.send_post(message.chat.id, 'Картой курьеру')
        db.clear_basket(message.chat.id)

    elif message.text == '🖥 ROBOKASSA':
        db.update_order_status(message.chat.id, db.get_cache(message.chat.id),
                               1)

        mrh_login = config.mrh_login
        mrh_pass1 = config.mrh_pass1
        inv_id = db.get_reg_order_by_id(message.chat.id,
                                        db.get_cache(message.chat.id))[0][0]
        inv_desc = 'Заказ%20еды%20в%20Shop%20Bot'
        out_summ = db.get_reg_order_by_id(message.chat.id,
                                          db.get_cache(message.chat.id))[0][3]
        is_test = config.IsTest

        crc_text = mrh_login + ':' + str(out_summ) + ':' + str(
            inv_id) + ':' + mrh_pass1
        crc_utf = crc_text.encode("utf-8")

        crc = hashlib.md5(crc_utf)
        robokassa_url = 'https://auth.robokassa.ru/Merchant/Index.aspx?MerchantLogin='******'&OutSum=' + str(out_summ) + '&InvoiceID=' \
                        + str(inv_id) + '&Description=' + str(inv_desc) + '&SignatureValue=' \
                        + str(crc.hexdigest()) + '&IsTest=' + str(is_test)

        key_robokassa = types.InlineKeyboardMarkup()
        robokassa_btn = types.InlineKeyboardButton(text='Оплатить',
                                                   url=robokassa_url)
        key_robokassa.add(robokassa_btn)

        bot.send_message(message.chat.id,
                         '✅ Оплатите ваш заказ по ссылке',
                         reply_markup=key_robokassa)
        bot.send_message(message.chat.id,
                         '🏠 Главное меню',
                         reply_markup=keyboards.main_menu())
        states.set_state(message.chat.id, States.S_MAIN_MENU.value)

        sender.send_post(message.chat.id, 'ROBOKASSA')
        db.clear_basket(message.chat.id)