как из БД вытащить данные чтоб они были отправлены в канал
мне нужно достать из БД введённые данные пользователем для отправления в канал
class FSMClient(StatesGroup):
place = State()
time = State()
jobman = State()
jobtime = State()
price = State()
more = State()
number = State()
async def cm_start(message: types.Message):
await FSMClient.place.set()
await message.reply('Введите ?Адрес работы', reply_markup=FSMClient_kb.button_case_application)
async def cancel_hendler(message: types.Message, state: FSMContext):
current_state = await state.get_state()
if current_state is None:
return
await state.finish()
await message.reply('Отмена состовления заявки', reply_markup=FSMClient_kb.button_case_client2)
async def cenz_FSM(message: types.Message, state: FSMContext):
current_state = await state.get_state()
if current_state is None:
return
await state.finish()
await message.reply('В составлении заявки нельзя использовать бранные слова', reply_markup=FSMClient_kb.button_case_client2)
await message.delete()
async def load_place(message: types.Message, state: FSMContext):
async with state.proxy() as data:
data['place'] = message.text
await FSMClient.next()
await message.reply("Теперь введите ?Дату и Время")
async def load_time(message: types.Message, state: FSMContext):
async with state.proxy() as data:
data['time'] = message.text
await FSMClient.next()
await message.reply("Теперь введите ?♂️Количество человек")
async def load_jobman(message: types.Message, state: FSMContext):
async with state.proxy() as data:
data['jobman'] = message.text
await FSMClient.next()
await message.reply("Теперь введите ?Примерное рабочее время")
async def load_jobtime(message: types.Message, state: FSMContext):
async with state.proxy() as data:
data['jobtime'] = message.text
await FSMClient.next()
await message.reply("Теперь введите ?Оплату за час")
async def load_price(message: types.Message, state: FSMContext):
async with state.proxy() as data:
data['price'] = message.text
await FSMClient.next()
await message.reply("Теперь введите ?Дополнительную информацию по работе")
async def load_more(message: types.Message, state: FSMContext):
async with state.proxy() as data:
data['more'] = message.text
await FSMClient.next()
await message.reply("Теперь введите свой ?номер телефона")
async def load_number(message: types.Message, state: FSMContext):
async with state.proxy() as data:
data['number'] = message.text
await sqlite_db.sql_add_command(state)
await FSMClient.next()
await message.reply(f"<b><u>Заявка</u></b>\n"
f"?Адрес: {data['place']}\n"
f"?Дата и Время: {data['time']}\n"
f"?♂️Количество человек: {data['jobman']}\n"
f"?примерное рабочие время: {data['jobtime']}\n"
f"?Оплата за час работы: {data['price']}\n"
f"?Дополнительная информация: {data['more']}\n"
f"?номер телефона для связи: {data['number']}\n", parse_mode="html")
await message.answer(f"Все верно?", reply_markup=client_kb.kb_client)
await state.finish()
async def yes(message: types.Message):
if config.PAYMANTS_TOKEN.split(':')[1] == 'Заявку':
await bot.send_message(message.chat.id, "Оплатить размещение заявки")
await bot.send_invoice(message.chat.id,
title="размещение заявки",
description="размещение заявки на день",
provider_token=config.PAYMANTS_TOKEN,
currency="rub",
photo_url="",
photo_width=416,
photo_height=234,
photo_size=416,
is_flexible=False,
prices=[PRICE],
start_parameter="one-day",
payload="some-invoice-payload-for-our-internal-use")
async def pre_checkout_query(pre_checkout_q: types.PreCheckoutQuery):
await bot.answer_pre_checkout_query(pre_checkout_q.id, ok=True)
async def successful_payment(message: types.Message, state: FSMContext):
print("SUCCESSFUL PAYMENT:")
payment_info = message.successful_payment.to_python()
for k, v in payment_info.items():
print(f"{k} = {v}")
await bot.send_message(message.chat.id, f"Платёж на сумму {message.successful_payment.total_amount // 100}"
f"{message.successful_payment.currency} прошел успешно!!! Заявка успешно размещена.")
#сюда мне нужно достать из БД введённые данные пользователем для отправления в канал и data выделяется красным
await bot.send_message(CHANNEL_ID, f"<b><u>Заявка</u></b>\n"
f"?Адрес: {data['place']}\n"
f"?Дата и Время: {data['time']}\n"
f"?♂️Количество человек: {data['jobman']}\n"
f"?примерное рабочие время: {data['jobtime']}\n"
f"?Оплата за час работы: {data['price']}\n"
f"?Дополнительная информация: {data['more']}\n"
f"?номер телефона для связи: {data['number']}\n", parse_mode="html")
БД часть
import sqlite3 as sq
def sql_start():
global base, cur
base = sq.connect('PorterKHV.db')
cur = base.cursor()
if base:
print('Data base conected OK!')
base.execute('CREATE TABLE IF NOT EXISTS client (place TEXT, time TEXT, jobman TEXT, jobtime TEXT, price TEXT, more TEXT, number TEXT)')
base.commit()
async def sql_add_command(state):
async with state.proxy() as data:
cur.execute('INSERT INTO client VALUES(?, ?, ?, ?, ?, ?, ?)', tuple(data.values()))
base.commit()