Ответы пользователя по тегу AIOHTTP
  • Здравствуйте. Как создать удаление правил на Aiogram?

    Vindicar
    @Vindicar
    Gagak,
    1. Документация тебя выведет на два метода.
    а) bot.delete_message() подходит, если тебе известно только id сообщения.
    б) Message.delete() это обёртка над предыдущим. Удобно, если у тебя есть объект сообщения (экземпляр класса Message), который нужно удалить.
    Первый метод вообще гуглится первой строкой по "aiogram delete message".
    2. Тебе нужно хранить список пользователей, которые обращались к твоему боту, например, в таблице БД.
    Хранить можно в виде пар id пользователя - id сообщения с правилами. При каждом обращении к боту проверяем наличие пользователя в списке.
    Если пользователя нет в списке, он обращается в первый раз - отправляем сообщение с правилами, заносим в таблицу id пользователя и id сообщения.
    Если пользователь есть в списке и у него есть id сообщения - проверяем, согласился ли он. Если согласился, удаляем сообщение по id (если получится - сообщение старше 48 часов уже не удалить), затем очищаем id сообщения (например ставим NULL), но оставляем пользователя в списке.
    Если пользователь есть в списке и у него id сообщения пустое (NULL), то он уже согласился с правилами, можно работать.
    Ответ написан
  • Как реализовать проект на selenium + aiogram +aiohttp?

    Vindicar
    @Vindicar
    Есть пакет arsenic, можешь попробовать его.
    Ну или метод на основе run_in_executor(), это позволит завернуть синхронный код в отдельном потоке в обычную асинхронную задачу.
    Единственное, что добавлю...
    Сам новичок в питоне, да и вообщем в программирование

    Учиться программированию на таких вещах - всё равно что учиться вождению на болиде Формулы 1. Соберёшь кучу граблей, и знать и язык, и технологию в итоге будешь хуже среднего. Очень советую обкатать Питон, программирование вообще и асинхронное программирование в частности на более простых примерах.
    Ответ написан
    Комментировать
  • Aiogram: Как сохранить введенные данные пользователя?

    Vindicar
    @Vindicar
    Ну алгоритм всегда один и тот же.
    Тебе нужно для каждого пользователя бота хранить шаг, на котором он находится, и все введённые ранее данные.
    Тогда по получению текста от пользователя ищем его ID в хранилище, смотрим, на каком он шаге, и пытаемся интерпретировать полученный текст в зависимости от этого.

    А вот где хранить данные - вопрос реализации. Можно сделать словарь вида "ID пользователя - набор данных", можно сделать БД. Принцип это не меняет.
    Ответ написан
    Комментировать
  • Почему не работает семафор?

    Vindicar
    @Vindicar
    Потому что процесс обращения к серверу разбит на две части.
    Одна - установка соединения, SSL-рукопожатие, формирование и отправка запроса, а также редиректы. Это - get()
    Вторая - загрузка и декодирование тела ответа. Это - text().
    Ты прячешь под семафор только вторую часть, но вполне возможно, что она занимает пренебрежимо мало времени по сравнению с первой. К слову, если хочешь ограничить одновременнные подключения к серверу, то точно нужно прятать под семафор первую часть тоже.
    Ответ написан
  • Как достать вложенный обьект JSON в aiohttp?

    Vindicar
    @Vindicar
    После парсинга JSON объект превратится в комбинацию из списков и словарей питона.
    Как получить значение в словаре по известному ключу?

    И да, твой пример кривой. Не должно быть одинаковых ключей.
    Ответ написан