def start_handler(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[uid] = {'cur': '', 'path': []} step[uid]['path'].append('start') step[uid]['cur'] = 'start' full_name = message.from_user.first_name if message.from_user.last_name is not None: full_name += " " + message.from_user.last_name if not db.has_user(uid): username = '' if message.from_user.username is None else message.from_user.username db.save_user_info(uid, full_name, username, '') lst = db.get_messages(step[uid]['cur']) if lst: text = lst[0].format(full_name) + "\n" + lst[1] m = markup(db, step[uid]['cur']) db.close() bot.send_message(message.chat.id, text, reply_markup=m, parse_mode='HTML') else: db.close() print(str(datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S')) + " " + uid + ': database error')
def comment_handle(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) if db.has_user(uid): 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] step[uid]['cur'] = t step[uid]['path'].append(step[uid]['cur']) text = db.get_messages(step[uid]['cur']) if len(text) > 0: text = text[0] m = markup(db, step[uid]['cur']) db.close() bot.send_message(message.chat.id, text, reply_markup=m, parse_mode='HTML') else: db.close() print( str(datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S')) + " " + uid + ': database error') else: text = db.get_messages('Невозможно оставить отзыв')[0] bot.send_message(message.chat.id, text, parse_mode='HTML')
def final(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) if message.text.split(' ')[-1] == "Подтвердить": if not db.has_user(uid): db.save_user_info(uid, request[uid]['info']['full_name'], request[uid]['info']['username'], request[uid]['info']['phone']) else: db.update_user_info(uid, request[uid]['info']['full_name'], request[uid]['info']['username'], request[uid]['info']['phone']) request[uid]['date'] = str(datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d')) request[uid]['time'] = str(datetime.fromtimestamp(time.time()).strftime('%H:%M:%S')) db.save_requests(uid, request[uid]['deliver'], request[uid]['longitude'], request[uid]['latitude'], request[uid]['destination'], request[uid]['additional'], request[uid]['payment'], request[uid]['date'], request[uid]['time']) print("Запись прошла успешно") # теперь сгенерируем сообщение и отошлем его всем администраторам admin_message = '<b>' + request[uid]['info']['full_name'] + "</b>\n" if request[uid]['info']['username'] != '': admin_message += "@" + request[uid]['info']['username'] + "\n" admin_message += "<b>Телефон:</b> " + request[uid]['info']['phone'] + "\n\n" k = 1 reqs = db.get_requests(uid) total = 0 for i in reqs: if len(i) >= 3: admin_message += str(k) + ") " + str(i[0]) + ", " + str(i[1]) + " x " + str(i[2]) + "\n" total += int(i[1]) * int(i[2]) k += 1 admin_message += "\nВсего: {} сум".format(total) + "\n\n" if request[uid]['additional'] != '': admin_message += "<b>Дополнение:</b> " + request[uid]['additional'] + "\n\n" admin_message += "<b>Адрес:</b> " + request[uid]['destination'] + '\n' admin_message += "<b>Тип оплаты:</b> " + request[uid]['payment'] + "\n" admin_message += "<b>Время заказа:</b> " + " " + request[uid]['time'] + " " + request[uid]['date'] admins = db.get_admin_list() for i in admins: try: bot.send_message(i, admin_message, parse_mode='HTML') except: pass # очищаем данные del request[uid] db.clear_requests(uid) step[uid]['path'] = [] step[uid]['path'].append('start') step[uid]['cur'] = 'start' text = db.get_messages('Новый заказ')[0] m = markup(db, step[uid]['cur']) bot.send_message(message.chat.id, text, reply_markup=m, parse_mode='HTML') elif message.text.split(' ')[-1] == "Отменить": del request[uid] step[uid]['path'] = [] step[uid]['path'].append('start') step[uid]['cur'] = 'start' text = db.get_messages('start')[1] m = markup(db, step[uid]['cur']) bot.send_message(message.chat.id, text, reply_markup=m, parse_mode='HTML') else: pass