• Как создать триггер cv2 Python?

    Vindicar
    @Vindicar
    RTFM!
    1. Выясни, что возвращает haar_cascade.detectMultiScale(), если в кадре нет лица - None или пустой массив?
    2. Храни флаг "на прошлом кадре было лицо", обновляй его в конце тела цикла while True
    3. После детекта лица проверяй, если на прошлом кадре лица не было, а на новом есть - делай отправку уведомления.

    А вот как подружить ТГ бота с этим циклом - уже второй вопрос. Я бы запустил приведённый код в потоке и использовал queue.Queue для связи потока с анализом видео и потока с ботом. Т.е. когда обнаружил лицо, кидаешь кадр в очередь. А в основном потоке периодически проверяешь очередь на предмет наличия новых кадров.
    Альтернативно, если бот асинхронный, можно переделать цикл на корутину, добавив небольшую задержку через await asyncio.sleep() и заменив requests на aiohttp. Не очень изящное решение, но может и сойдёт.
    Ответ написан
    Комментировать
  • Почему не работает detectMultiScale python?

    Vindicar
    @Vindicar
    RTFM!
    face_cascade = "C:\mine\haarcascade_frontalface_alt.xml"
    ...
    face_cascade.detectMultiScale(

    У тебя face_cascade - это строка. Чего ты ожидаешь-то от неё? Класс строки понятия не имеет ни про какие каскады Хаара.
    Сдаётся мне, ты пропустил этап собственно загрузки каскада из указанного файла. А именно, вызов конструктора cv2.CascadeClassifier().
    Ответ написан
    1 комментарий
  • Почему питон считает While True за синтаксическую ошибку?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Потому что в Python нет оператора While, зато есть регистрозависимость.
    Ответ написан
    Комментировать
  • Почему питон считает While True за синтаксическую ошибку?

    @YariKartoshe4ka
    Python чувствителен к регистру
    Ответ написан
    Комментировать
  • Как сделать выдачу роли?

    Vindicar
    @Vindicar
    RTFM!
    Если почитать справку на гитхабе discord_buttons_plugin, можно найти следующее:
    The ctx parameter is an instance of InteractionContext
    Attributes:
    .id int : The interaction ID.
    .token str : The interaction token.
    .message discord.Message : The message where buttons are present
    .channel discord.TextChannel : The channel where buttons are present.
    .guild discord.Guild : The guild where buttons are present.
    .member discord.User : The user who clicked the button. Remember this is discord.User and not discord.Member

    Т.е. название атрибута сбивает с толку, он содержит не ссылку на пользователя как участника сервера (Member), а на пользователя дискорда вообще (User). Нужно получить объект сервера (ctx.guild), и у него вызвать метод get_member(ctx.member.id), чтобы получить объект member, на котором можно будет вызывать метод add_roles().
    Ответ написан
    1 комментарий
  • Право писать команду только админу?

    makag
    @makag
    отвечать на команды только при условии, что отправитель - админ.
    т.е. узнать свой телеграм id
    и реагировать на команты если параметр сообщения ['message']['from']['id'] - равен вашему id
    Ответ написан
    Комментировать