Почему бот ТГ не видит текстовое сообщение
Бот рассылка не видит текстовую команду, не знаю почему. Вроде всё сделал без ошибок.
Вот код, на всякий перешлю полностью
class bot_mailing(StatesGroup):
text = State()
photo = State()
state = State()
@dp.message_handler(chat_type=types.ChatType.PRIVATE, text='/mailing', chat_id=ADMIN)
async def start_mailing(message: types.Message):
await message.answer(f'Введите текст рассылки:')
await bot_mailing.text.set()
@dp.message_handler(chat_type=types.ChatType.PRIVATE, state=bot_mailing.text, chat_id=ADMIN)
async def mailing_text(message: types.Message, State: FSMContext):
answer = message.text
markup = InlineKeyboardMarkup(row_width=2,
inline_keyboard=[
[
InlineKeyboardButton(text='Добавить фотографию', callback_data='add_photo'),
InlineKeyboardButton(text='Далее', callback_data='next'),
InlineKeyboardButton(text='Отменить', callback_data='quit')
]
])
await state.update_data(text = answer)
await message.answer(text=answer, reply_markup=markup)
await bot_mailing_text.state.set()
@dp.callback_query_handler(text='next', state=bot_mailing.text.state, chat_id=ADMIN)
async def start(call: types.CallbackQuery, state= FSMContext):
users = await commands.select_all_users
data = await state.get_data()
text = data.get('text')
await state.finish()
for user in users:
try:
await dp.bot.send_message(chat_id=user.user_id, text=text)
except Exception:
pass
await call.message.answer('Рассылка выполнена')
@dp.callback_query_handler(text='add_photo',state=bot_mailing.state, chat_id=ADMIN)
async def add_photo(call: types.CallbackQuery):
await call.message.answer('Пришлите фото')
await bot_mailing.photo.set()
@dp.message_handler(chat_type=types.ChatType.PRIVATE, state=bot_mailing.photo, content_types=types.ContentType.PHOTO, chat_id=ADMIN)
async def mailing_text(message: types.Message, State: FSMContext):
photo_file_id = message.photo[-1].file_id
await state.update_data(photo=photo_file_id)
data = await state.get.data()
text = data.get('text')
photo = data.get('photo')
markup= InlineKeyboardMarkup(row_width=2,
inline_keyboard=[
[
InlineKeyboardButton(text='Далее', callback_data='next'),
InlineKeyboardButton(text='Отменить', callback_data='quit')
]
])
await message.answer_photo(photo=photo, caption=text, reply_markup=markup)
@dp.callback_query_handler(text='next', state=bot_mailing.photo, chat_id=ADMIN)
async def start(call: types.CallbackQuery, state: FSMContext):
users = await commands.select_all_users
data = await state.get_data()
text = data.get('text')
photo = data.get('photo')
await state.finish()
for user in users:
try:
await dp.bot.send_photo(chat_id=user.user_id, photo=photo, caption=text)
except Exception:
pass
await call.message.answer('Рассылка выполнена')
@dp.message_handler(chat_type=types.ChatType.PRIVATE, state=bot_mailing.photo, chat_id=ADMIN)
async def no_photo(message: types.Message):
markup = InlineKeyboardMarkup(row_width=2,
inline_keyboard=[
[
InlineKeyboardButton(text='Отменить', callback_data='quit')
]
])
await message.answer('Пришли мне фотографию', reply_markup=markup)
@dp.message_handler(state=bot_mailing.text, chat_id=ADMIN)
async def quit(message: types.Message, state:FSMContext, text = 'quit'):
await state.finish()
await message.answer('Отмена рассылки')