def step_start(message): uid = str(message.from_user.id) cur_time = datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S') # print(str(cur_time) + " | " + uid + ": " + message.text) db = SQLighter(config.database_name) start_btns = db.get_buttons(step[uid]['cur']) # отрезаем смайл t = '' if len(message.text.split(' ')) > 2: for i in message.text.split(' ')[1:]: t += i + ' ' t = t[:-1] else: t = message.text.split(' ')[-1] fucking_flag = 0 for button in start_btns: if t is not None and t == button: fucking_flag = 1 step[uid]['cur'] = button step[uid]['path'].append(step[uid]['cur']) break msgs = db.get_messages(step[uid]['cur']) if len(msgs) > 0: text = msgs[0] m = markup(db, step[uid]['cur'], uid) if m is None and (t == 'Корзина' or t == 'Оформить'): step[uid]['path'].pop() step[uid]['cur'] = step[uid]['path'][-1] text = db.get_messages('recycle_empty')[0] m = markup(db, step[uid]['cur']) elif t == "Корзина": total = 0 reqs = db.get_requests(uid) if len(reqs) == 0: text = db.get_messages('recycle_empty')[0] step[uid]['path'].pop() step[uid]['cur'] = step[uid]['path'][-1] m = markup(db, step[uid]['cur']) else: for i in reqs: if len(i) >= 3: text += str(i[0]) + ", " + str(i[1]) + " x " + str(i[2]) + "\n" total += int(i[1]) * int(i[2]) text += "\nВсего: {} сум".format(total) + "\n\n" + msgs[1] db.close() if fucking_flag: bot.send_message(message.chat.id, text, reply_markup=m, parse_mode='HTML') else: pass else: db.close() print(str(datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S')) + "| " + uid + ': database error')
def step_checkout_outside(message): uid = str(message.from_user.id) cur_time = datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S') print(str(cur_time) + " | " + uid + ": " + message.text) db = SQLighter(config.database_name) btns = db.get_buttons(step[uid]['cur']) if len(message.text.split(' ')) > 2 and message.text.split(' ')[-2] + ' ' + message.text.split(' ')[-1] == \ db.get_buttons('Оформить')[1]: text = db.get_messages('location_error') db.close() bot.send_message(message.from_user.id, text, parse_mode='HTML') else: step[uid]['cur'] = 'Адрес' step[uid]['path'].append(step[uid]['cur']) text = db.get_messages(step[uid]['cur']) if len(text) > 0: request[uid] = {} if message.text in btns: request[uid]['deliver'] = message.text request[uid]['longitude'] = '' request[uid]['latitude'] = '' request[uid]['destination'] = '' else: request[uid]['deliver'] = '' request[uid]['longitude'] = '' request[uid]['latitude'] = '' request[uid]['destination'] = message.text text = text[0] m = markup(db, step[uid]['cur'], uid) db.close() bot.send_message(message.from_user.id, text, reply_markup=m, parse_mode='HTML') else: db.close() cur_time = datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S') print(str(cur_time) + " | " + uid + ": Произошла ошибка чтения из базы данных")
def step_payment(message): uid = str(message.from_user.id) cur_time = datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S') print(str(cur_time) + " | " + uid + ": " + message.text) db = SQLighter(config.database_name) pay_type_list = db.get_buttons(step[uid]['cur']) t = '' if len(message.text.split(' ')) > 2: for i in message.text.split(' ')[1:]: t += i + ' ' t = t[:-1] else: t = message.text.split(' ')[-1] if t in pay_type_list: step[uid]['cur'] = 'Оплата' step[uid]['path'].append(step[uid]['cur']) text = db.get_messages(step[uid]['cur']) if len(text) > 0: request[uid]['payment'] = t text = text[0] + "\n" total = 0 for i in db.get_requests(uid): if len(i) >= 3: text += str(i[0]) + ", " + str(i[1]) + " x " + str(i[2]) + "\n" total += int(i[1]) * int(i[2]) text += "\nВсего: {} сум".format(total) + "\n" if total >= 120000: text += "<b>При заказе от 120 000 сум доставка бесплатна.\nУ Вас бесплатная доставка!</b>" + '\n\n' + \ db.get_messages('confirm')[0] else: text += "<b>При заказе от 120 000 сум доставка бесплатна.\nДо бесплатной доставки - {} сум</b>\n\n".format( 120000 - total) + db.get_messages('confirm')[0] m = markup(db, step[uid]['cur'], uid) db.close() bot.send_message(message.from_user.id, text, reply_markup=m, parse_mode='HTML') else: db.close() cur_time = datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S') print(str(cur_time) + " | " + uid + ": Произошла ошибка чтения из базы данных")
def step_food_drink(message): uid = str(message.from_user.id) cur_time = datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S') # print(str(cur_time) + " | " + uid + ": " + message.text) db = SQLighter(config.database_name) step_btns = db.get_buttons(step[uid]['cur']) # отрезаем смайл t = '' if message.text not in config.type_list: if len(message.text.split(' ')) > 2: for i in message.text.split(' ')[1:]: t += i + ' ' t = t[:-1] else: t = message.text.split(' ')[-1] else: t = message.text fucking_flag = 0 for button in step_btns: if t is not None and t == button: fucking_flag = 1 step[uid]['cur'] = button step[uid]['path'].append(step[uid]['cur']) break msgs = db.get_messages(step[uid]['cur']) if len(msgs) > 0: text = msgs[0] m = markup(db, step[uid]['cur'], uid) db.close() if fucking_flag: bot.send_message(message.chat.id, text, reply_markup=m, parse_mode='HTML') else: pass else: db.close() print(str(datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S')) + " | " + uid + ': database error')