Создал callback
и мне надо впихнуть туда message: types.Message
но он мне пишет TypeError: rezume() missing 1 required positional argument: 'message'
если меняю всё точно так же. Помогите пж
Вот код:
from config import TOKEN
import sqlite3
import logging
from aiogram import Bot, Dispatcher, types
from aiogram.utils import executor
from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton
from aiogram.dispatcher.filters.state import State, StatesGroup
from aiogram.dispatcher import FSMContext
class rezume_(StatesGroup):
fio = State()
age = State()
obrazovanie = State()
opit = State()
vacansiya = State()
phone = State()
try:
sqlite_connection = sqlite3.connect('sqlite_python.db')
cursor = sqlite_connection.cursor()
print("База данных успешно подключена к SQLite")
sqlite_select_query = "select sqlite_version();"
cursor.execute(sqlite_select_query)
record = cursor.fetchall()
print("Версия базы данных SQLite: ", record)
except sqlite3.Error as error:
print("Ошибка при подключении к sqlite", error)
logging.basicConfig(level=logging.INFO)
bot = Bot(token=TOKEN)
dp = Dispatcher(bot)
kb = types.InlineKeyboardMarkup()
urlkb = InlineKeyboardMarkup(row_width=1)
channel_id ='тут есть'
@dp.message_handler(commands=['start'])
async def send_welcome(message: types.Message):
userid = message.from_user.id
username = message.from_user.username
nick = message.from_user.first_name
info = cursor.execute('SELECT * FROM users WHERE userid=?', (userid,))
@dp.callback_query_handler(text="subs")
async def subs_bd_check(call: types.CallbackQuery):
user_channel_status = await bot.get_chat_member(chat_id='тут тоже есть' , user_id=userid)
if user_channel_status["status"] != 'left':
await call.answer(text="Спасибо, что подписались!", show_alert=True)
if info.fetchone() is None:
cursor.execute(f"""INSERT INTO users(userid, tag, username, is_adm)
VALUES('{userid}', '{username}', '{nick}', '0');""")
sqlite_connection.commit()
btn1 = types.InlineKeyboardButton(text="Актуальные вакансии", callback_data="vac")
btn2 = types.InlineKeyboardButton(text="Отправить резюме", callback_data="rezum")
btn3 = types.InlineKeyboardButton(text="Оставить контактные данные", callback_data="cont")
btn4 = types.InlineKeyboardButton(text="Отдел кадров", callback_data="kadr")
kb.add(btn1, btn2, btn3, btn4)
await bot.send_message(message.from_user.id, 'Отлично, выбери действие', reply_markup=kb)
else:
btn1 = types.InlineKeyboardButton(text="Актуальные вакансии", callback_data="vac")
btn2 = types.InlineKeyboardButton(text="Отправить резюме", callback_data="rezum")
btn3 = types.InlineKeyboardButton(text="Оставить контактные данные", callback_data="cont")
btn4 = types.InlineKeyboardButton(text="Отдел кадров", callback_data="kadr")
kb.add(btn1, btn2, btn3, btn4)
await bot.send_message(message.from_user.id, 'Отлично, выбери действие', reply_markup=kb)
else:
await call.answer(text="Вы не подписались!", show_alert=True)
if info.fetchone() is None:
btn1 = InlineKeyboardButton('Подписаться', url='и тут есть')
btn2 = types.InlineKeyboardButton(text="Я подписался", callback_data="subs")
kb.add(btn1, btn2)
await bot.send_message(message.from_user.id, "Привет! Чтобы начать пользоваться ботом, подпишись на наш канал!",
reply_markup=kb)
else:
btn1 = types.InlineKeyboardButton(text="Актуальные вакансии", callback_data="vac")
btn2 = types.InlineKeyboardButton(text="Отправить резюме", callback_data="rezum")
btn3 = types.InlineKeyboardButton(text="Оставить контактные данные", callback_data="cont")
btn4 = types.InlineKeyboardButton(text="Отдел кадров", callback_data="kadr")
kb.add(btn1, btn2, btn3, btn4)
await bot.send_message(message.from_user.id, 'Отлично, выбери действие', reply_markup=kb)
@dp.callback_query_handler(text="rezum")
async def rezume(call: types.CallbackQuery, message: types.Message):
await message.answer('Введите ваше ФИО')
await rezume.fio.set()
@dp.message_handler(state = rezume.fio)
async def fio(message: types.Message, state: FSMContext):
answer = message.text
await state.update_data(fio = answer)
await call.message.answer('Введите ваш возраст')
await rezume.age.set()
@dp.message_handler(state=rezume.age)
async def age(message: types.Message, state: FSMContext):
answer = message.text
await state.update_data(age=answer)
await call.message.answer('Введите ваше образование')
await rezume.obrazovanie.set()
@dp.message_handler(state=rezume.obrazovanie)
async def obrazovanie(message: types.Message, state: FSMContext):
answer = message.text
await state.update_data(obrazovanie=answer)
await call.message.answer('Введите ваш опыт работы')
await rezume.opit.set()
@dp.message_handler(state=rezume.opit)
async def opit(message: types.Message, state: FSMContext):
answer = message.text
await state.update_data(opit=answer)
await call.message.answer('На какую вакансию вы претендуете?')
await rezume.vacansiya.set()
@dp.message_handler(state=rezume.vacansiya)
async def vacansiya(message: types.Message, state: FSMContext):
answer = message.text
await state.update_data(vacansiya=answer)
await call.message.answer('Введите ваш контактный номер телефона')
await rezume.phone.set()
@dp.message_handler(state=rezume.phone)
async def phone(message: types.Message, state: FSMContext):
answer = message.text
await state.update_data(vacansiya=answer)
phone = await state.get_data('phone')
fio = await state.get_data('fio')
vacansiya = await state.get_data('vacansiya')
opit = await state.get_data('opit')
obrazovanie = await state.get_data('obrazovanie')
age = await state.get_data('age')
await bot.send_message(
channel_id, f'Новая заявка! \nФИО: {fio}\nВозраст: {age}\nОбразование: {obrazovanie}\nОпыт работы: {opit}\n'
f'Претендует на вакансию: {vacansiya}\nНомер телефона: {phone}', parse_mode='None')
await state.finish()
await bot.send_message(message.from_user.id, 'Отлично! Ваше заявление отправлено, ожидайте обратной связи!', parse_mode='None')
if __name__ == '__main__':
executor.start_polling(dp, skip_updates=True)