Здравствуйте! Только начинаю изучать программирование в целом, сейчас пишу бота. Подскажите, в чем ошибка. Терминал никакую ошибку не выдает, но не срабатывает print(data['cat_id']) print(data['town']) print(result). Читаю библиотеку и не понимаю все равно. Если в терминале была указана ошибка мог бы еще понять где ошибся а так уже всю голову сломал...
Сам код:
import aiogram
import sqlite3
import schedule
import time
import parser
from aiogram import Bot, Dispatcher, executor, types
from aiogram.contrib.fsm_storage.memory import MemoryStorage
from aiogram.dispatcher.filters.state import StatesGroup, State
from aiogram.dispatcher import FSMContext
storage = MemoryStorage()
bot = Bot('TOKEN')
dp = Dispatcher(bot, storage=storage)
class UserState(StatesGroup):
name = State()
cat_id = State()
town = State()
@dp.message_handler(commands=['start'])
async def user_register(message: types.Message):
await message.answer("Привет! необходимо создать анкету пользователя. Введите пожалуйста своё имя")
await UserState.name.set()
@dp.message_handler(state=UserState.name)
async def get_username(message: types.Message, state: FSMContext):
await state.update_data(username=message.text)
markup = types.InlineKeyboardMarkup()
markup.add(types.InlineKeyboardButton('Огурец, callback_data=2))#2
markup.add(types.InlineKeyboardButton('Петрушка', callback_data=3))#3
markup.add(types.InlineKeyboardButton('Помидоры', callback_data=4))#4
markup.add(types.InlineKeyboardButton('Картофель', callback_data=5))#5
markup.add(types.InlineKeyboardButton('Салат', callback_data=6))#6
markup.add(types.InlineKeyboardButton('Редиска', callback_data=7))#7
#markup.add(types.InlineKeyboardButton('Капуста', callback_data='недвижимость за границей'))#8
await message.answer('Отлично! Давай определимся с типом нашей продукции, которую ты хочешь купить', reply_markup=markup)
await UserState.next()
@dp.callback_query_handler(state=UserState.cat_id)
async def get_cat_id(call, state:FSMContext):
await state.update_data(cat_id=call.data)
await call.message.answer('Супер! Напиши теперь название города, куда необходимо доставить')
print(call.data)
await UserState.next()
@dp.message_handler(state=UserState.town)
async def get_town(message: types.Message, state:FSMContext):
await state.update_data(town=message.text)
data = await state.get_data()
markup2 = types.ReplyKeyboardMarkup(one_time_keyboard=True)
markup2.add(types.KeyboardButton('Да!'))
markup2.add(types.KeyboardButton('Нет, хочу изменить параметры поиска'))
await message.answer(f"Итак, {data['username']}, ты хочешь купить {data['cat_id']} с доставкой в {data['town']}, верно?", reply_markup=markup2)
async def go(message: types.Message, state:FSMContext):
data = await state.get_data()
if message.text=='Да!':
print(data['cat_id'])
print(data['town'])
with sqlite3.connect ('database.db') as connection:
cursor = connection.cursor()
cursor.execute("""
SELECT * FROM DataBase WHERE Category == (?) AND City == (?)
""", ({data['cat_id']}, {data['town']}, ))
result = cursor.fetchall()
print(result)
await state.finish()
executor.start_polling(dp)