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')
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])
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')
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)
def init_state_mgr(hosts, callbacks): global com_obj states.init_states(hosts, callbacks) com_obj = Comitup() states.set_state('CONNECTING', states.candidate_connections())
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')
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)
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')
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')
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)
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()
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()
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')
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)
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')
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')
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')
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')
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')
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')
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)
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)
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)
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')
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))
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')
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')
def delete_connection(self): nm.del_connection_by_ssid(nm.get_active_ssid()) states.set_state('HOTSPOT')
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])
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)
def cmd_menu(message): bot.send_message(message.chat.id, 'Выберите раздел, чтобы вывести список блюд 👇🏻', reply_markup=keyboards.categories()) states.set_state(message.chat.id, States.S_MENU.value)
def delete_connection(self): ssid = nm.get_active_ssid(modemgr.get_link_device()) nm.del_connection_by_ssid(ssid) states.set_state('HOTSPOT')
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)