All streams
Search
Write a publication
Pull to refresh
95
24
Алексей Яковенко @yakvenalex

Опытный python разработчик с многолетним стажем.

Send message

Благодарю за отзыв)

Нет. Вы абсолютно не правы. Защищенный контент с бота не юзер-бот, не просто юзер не сможет забрать. Точнее не так. Единтсвенный вариант - это запись экрана, но, если вы наложите на все сообщении в боте этот метод, то скрин так-же нельзя будет сделать. Ну и по юзер-ботам. У них не больше прав чем у обычных юзеров. Если кому будет интересно - могу в нескольких статьях рассказать как таких делать на Python.

А разве принцип других библиотек не такой? В чем, в целом, их смысл и любого синтаксического сахара? Ну давайте возьмем реквест базовый. Вы сможете с нуля его написать, под капот заглядывали? Ок, идем дальше. Возьмем самую популярную библиотеку для разработки ботов - aiogram. Там синтаксического сахара нет? Это ж python, ну камон)

По сути asyncpg-lite - это синтаксический сахар над Алхимией на асинхронном asyncpg драйвере, который упрощает вход в эту библиотеку. Нет необходимости отдельной настройки, создания дополнительных классов и прочее. Так же нет необходимости в знаниях синтаксиса алхимии (разве что понимания как импортировать типы данных для колонок).

Библиотека полностью переписана под алхимию. Вы просто не в тренде) Ознакомьтесь, если интересно)

Библиотека была полностью переписана под алхимию. Ряд методов полностью изменился, была необходимость их описать. Старые версии не актуальные, так что, технически, от старой библиотеки осталось только название и имена методов. Поэтому было принято решение повторно описать её.

В новой версии (0.3.1.1 ) эта и многие другие проблемы исправлены.

Сегодня было выпущено обновление библиотеки asyncpg-lite. Теперь она совместима с SQLAlchemy, а asyncpg используется как асинхронный драйвер. Версии ниже 0.3.1.1 больше не доступны. В связи с этим произошли изменения в синтаксисе функций взаимодействия с базой данных PostgreSQL. Постараюсь завтра опубликовать подробную инструкцию взаимодействия с новой версией библиотеки.

Сегодня было выпущено обновление библиотеки asyncpg-lite. Теперь она совместима с SQLAlchemy, а asyncpg используется как асинхронный драйвер. Версии ниже 0.3.1.1 больше не доступны. В связи с этим произошли изменения в синтаксисе функций взаимодействия с базой данных PostgreSQL. Если вы используете asyncpg-lite, удалите старые версии и клонируйте обновленную версию бота, о котором идет речь в этой статье. Благодарю за внимание.

Добрый день. Библиотека asyncpg-lite обновлена до версии 0.3.1. Все предыдущие версии были удалены и больше не доступны для установки.

В этой версии все методы библиотеки были переписаны. Если ранее библиотека работала исключительно с чистым asyncpg, то теперь asyncpg используется как асинхронный драйвер для взаимодействия с PostgreSQL, а все запросы выполняются через SQLAlchemy.

Основная причина переписывания библиотеки — улучшение безопасности. Старые версии имели определенные уязвимости, которые теперь устранены.

Подробный разбор новой версии библиотеки я постараюсь опубликовать завтра.

В новых версиях установлю обработку @ в dsn, но а пока для таких случаев в библиотеке предусмотрен вход через указание логина, пароля, хоста и прочих данных для авторизации. Посмотрите в описании к библиотеке.

По apschedule будет отдельная статья. Это про временные функции. Покажу как на оперативе развернуть и как использую Redis)

Redis нужен для хранения состояний FSM ну и для обработки этих состояний. Речь не про статические данные, которые нужно сохранить. В этом плане обычно используется или MemoryStororage или Redis. Можно использовать и Алхимию для этих целей, но, как по мне - это гемор лишний. В контексте ботов для FSM и Apschedule аналогов Redis нет. Но это ИМХО). Тем более а в чем сложность? Даже на примере моей статьи. С абсолютного нуля Redis можно на любой локальной машине за 10 минут поднять. Можно даже не настраивать особо если это Docker, а вот в алхимии ещё разобраться попробуй)

Благодарю за отзыв. Тут, скорее, имелось ввиду что если есть возможность использовать магические фильтры, такие как startswith, contains и прочие лучше их использовать. Они надежнее и, практически всегда, заменяют необходимость в регулярках. Ну а так да, если действительно уверены в своих силах, то почему бы и не использовать)

async def del_call_kb(call: CallbackQuery):
    try:
        await bot.edit_message_reply_markup(
            chat_id=call.from_user.id,
            message_id=call.message.message_id,
            reply_markup=None
        )
    except Exception as E:
        print(E)

Вот, кстати, есть такая реализация. Сейчас бота пишу - наткнулся) В FSM сценариях использую функцию. Достаточно просто CallbackQuery объект передать, ну и вообще иногда удобнее через bot отрабатывать. К примеру тут можно было бы просто сохранять айдишник сообщения с CallbackQuery, а после тянуть с базы и удалять клавиатуру даже со временем

Блогодарю за отзыв. Вот так удаляйте

await call.message.edit_reply_markup(reply_markup=None)

Насколько я помню python-telegram-bot - синхронная библиотека. Для больших проектов такое негодится) Кроме того, у aiogram намного больше комьюнити. Так что рекомендую отдавать предпочтение aiogram, даже если на старте он кажется сложнее чем python-telegram-bot

В новой версии исправлено

Information

Rating
306-th
Location
Краснодар, Краснодарский край, Россия
Date of birth
Registered
Activity

Specialization

Specialist
From 200,000 ₽
SQL
Python
PostgreSQL