def answer_function(bot, update): try: uid = update.message.from_user.id except AttributeError: uid = update.callback_query.from_user.id bot.sendChatAction(uid, action=typing) bot.sendMessage(uid, text=text, parse_mode="HTML", reply_markup=ik(inlinekeyboard)) return next_state
def answer_function(bot, update): uid = update.message.from_user.id bot.sendChatAction(uid, action=typing) bot.sendMessage(uid, text=text, parse_mode="HTML", reply_markup=ik(inlinekeyboard)) # print("going to next_state = " + str(next_state)) return next_state
def cart_user(bot, update, user_data): uid = update.message.from_user.id cart = user_data["cart"] if cart: ans(text=texts.cart_welcome, keyboard=main_kbd_user)(bot, update) msgs = [] for item in user_data["cart"].str_repr(): bot.sendChatAction(uid, action=typing) msgs.append( bot.sendMessage(uid, text=item, parse_mode="HTML", reply_markup=ik(cart_item_ikbd))) user_data["cart_map"] = [msg.message_id for msg in msgs] user_data["cart_sum"] = bot.sendMessage(uid, text=texts.cart_sum % (len(cart), cart.total), reply_markup=ik(cart_sum_ikbd), parse_mode="HTML").message_id else: ans(text=texts.empty_cart, keyboard=main_kbd_user)(bot, update) return "MAIN_MENU_U"
def inline(bot, update, user_data): uid = update.callback_query.from_user.id cqid = update.callback_query.id chat_id = update.callback_query.message.chat.id message_id = update.callback_query.message.message_id act = update.callback_query.data try: scroll = user_data["scroll"] cart = user_data["cart"] except KeyError: pass if act == '>': next_e = scroll.get_next() if next_e: bot.answerCallbackQuery(callback_query_id=cqid) bot.editMessageText(text=str(next_e), chat_id=chat_id, message_id=message_id, reply_markup=ik(catalog_ikbd), parse_mode="HTML") else: bot.answerCallbackQuery(text=texts.last_item, callback_query_id=cqid) elif act == '<': prev_e = scroll.get_prev() if prev_e: bot.answerCallbackQuery(callback_query_id=cqid) bot.editMessageText(text=str(prev_e), chat_id=chat_id, message_id=message_id, reply_markup=ik(catalog_ikbd), parse_mode="HTML") else: bot.answerCallbackQuery(text=texts.first_item, callback_query_id=cqid) elif act == 'img': bot.answerCallbackQuery(callback_query_id=cqid) cur = scroll.get_current() bot.sendPhoto(chat_id=chat_id, photo=cur.img, caption=cur.name, reply_markup=kbd(to_item_list_kbd)) # TODO: decrease "stock" value elif act == "to_cart": current = scroll.get_current() if cart[current] < current.stock: bot.answerCallbackQuery(callback_query_id=cqid) cart += current bot.sendMessage(uid, text=texts.to_cart_done, parse_mode="HTML", reply_markup=kbd(to_cart_kbd)) return "TO_CART_DONE_U" else: bot.answerCallbackQuery(text=texts.not_enough_in_stock, callback_query_id=cqid) elif act == "cart_del": bot.answerCallbackQuery(callback_query_id=cqid) dn = user_data["cart_map"].index(message_id) del user_data["cart_map"][dn] del cart[dn] user_data["cart"] = cart bot.editMessageText(text=texts.cart_item_deleted, chat_id=chat_id, message_id=message_id, reply_markup=ik([]), parse_mode="HTML") elif act == "cart-1": index = user_data["cart_map"].index(message_id) del_item = cart[index] if cart[del_item] > 1: cart -= del_item bot.editMessageText(text=cart.str_repr()[index], chat_id=chat_id, message_id=message_id, reply_markup=ik(cart_item_ikbd), parse_mode="HTML") bot.editMessageText(text=texts.cart_sum % (len(cart), cart.total), chat_id=chat_id, message_id=user_data["cart_sum"], reply_markup=ik(cart_sum_ikbd), parse_mode="HTML") bot.answerCallbackQuery(callback_query_id=cqid) else: bot.answerCallbackQuery(text=texts.cart_min_q, callback_query_id=cqid) elif act == "cart+1": index = user_data["cart_map"].index(message_id) add_item = cart[index] if cart[add_item] + 1 <= add_item.stock: cart += add_item bot.editMessageText(text=cart.str_repr()[index], chat_id=chat_id, message_id=message_id, reply_markup=ik(cart_item_ikbd), parse_mode="HTML") bot.editMessageText(text=texts.cart_sum % (len(cart), cart.total), chat_id=chat_id, message_id=user_data["cart_sum"], reply_markup=ik(cart_sum_ikbd), parse_mode="HTML") bot.answerCallbackQuery(callback_query_id=cqid) else: bot.answerCallbackQuery(text=texts.not_enough_in_stock, callback_query_id=cqid) elif act == "del_all": for mid in user_data["cart_map"] + [user_data["cart_sum"]]: bot.editMessageText(text=texts.cart_item_deleted, chat_id=chat_id, message_id=mid, parse_mode="HTML") bot.answerCallbackQuery(callback_query_id=cqid) user_data["cart"] = Cart() del user_data["cart_map"] del user_data["cart_sum"] elif act == "confirm_all": bot.answerCallbackQuery(callback_query_id=cqid) if "phone" not in user_data: bot.sendMessage(uid, text=texts.ask_contact, parse_mode="HTML", reply_markup=kbd(send_contact_kbd + [[texts.main_menu_btn]])) return "CHECK_CONTACT_U" else: bot.sendMessage(uid, text=texts.delivery_methods, reply_markup=kbd(delivery_methods_kbd), parse_mode="HTML") return "DELIVERY_U" elif act == "edit_order_status": bot.answerCallbackQuery(callback_query_id=cqid) bot.sendMessage(uid, text=texts.status_prompt, reply_markup=kbd(order_status_kbd), parse_mode="HTML") return "EDIT_STATUS_A"