@dp.message_handler(state=Add.test_state)
@dp.message_handler(commands=['start'])
async def start_bot(message: types.Message, state: FSMContext):
if message.text == '/start':
await message.answer(text="Отправь мне свое имя")
await Add.test_state.set() # Ваш state
await asyncio.sleep(5) # 5 сек спим
try:
data = await state.get_data()
if data['get_name'] == 'true':
pass
except KeyError:
# Если пользователь не ответил или за это время state завершился, получаем KeyError
await message.answer(f'Жаль, что ты не ответил')
await state.finish()
else:
await state.update_data(get_name='true')
await message.answer(f'Твое имя {message.text}')
# Установите следующие состояние
# Если вы завершите состояние, то тогда бот ответит 'Жаль, что ты не ответил'
import cv2
# Включаем первую камеру
cap = cv2.VideoCapture(0)
# "Прогреваем" камеру, чтобы снимок не был тёмным
for i in range(30):
cap.read()
# Делаем снимок
ret, frame = cap.read()
# Записываем в файл
cv2.imwrite('cam.png', frame)
# Отключаем камеру
cap.release()
message.chat.id
является числом, поэтому все строки из users.txt Вам необходимо привести к числовому типу.with open('users.txt', 'r') as fp:
user_ids = [int(l) for l in fp.readlines()]
@bot.message_handler(func=lambda message: message.chat.id not in user_ids)
def access_msg(message):
bot.send_message(message.chat.id, 'No Access!')