Aiogram hentai 🍓
Статистика🍪 Канал із справжнім хентаєм по aiogram. 🍓 Засновник: @wakaree
- Последний пост
- 1 авг. 2025 г.
- Последнее чтение
- 11:55
- Постов за неделю
- 0
- Всего постов
- 20
- Тип
- открытый
- Язык
- русский
- Категория
- Для взрослых
- В каталоге с
- 10:55
- 1/24сутки в ленте
- —
- 1/48двое суток
- —
- 1/72трое суток
- —
Оценка по просмотрам недавних постов: пост набирает почти всё за первые сутки.
Посты
видео или голосовое, без подписи
розібрати якусь тему чи ботів вже ніхто не пише?
зробив жирнющий додеп на свій нікому не потрібний aiogram bot template з такого прям цікавого: - перевів бота на фастапі, вебсервер працює навіть на полінгу - додав хелзчеки, корисно для кубера чи якоїсь куми - додав лок вебхуків в редисі — корисно, коли бот має більше одного воркера - зробив коректну обробку sigterm/sigint сигналів ну і там ще інші штучкі деякі які мені знадобилися не один раз під час написання ботіків. п.с. підтримати улюбленого вакаре тонами на додеп можна осьо сюда
🪝 Вебхуки з нуля за 10-15 хвилин. 🤔 Теорія Бот періодично ходить до Телеграму у гості з питанням "Ну як, є шось для мене?", і у відповідь отримує пачку повідомлень — це polling. Телеграм ходить до боту додому з пачкою повідомлень, мов "Є декілька апдейтів для тебе, оброби" — це webhooks. Якщо знаєш англійську (або вмієш користуватися перекладачем) і хочеш розібратися детальніше, є офіційна документація, aka Marvin's Marvellous Guide to All Things Webhook. 🏷 Отримання домену Купляємо домен у будь якого реєстратора (наприклад porkbun.com, ovhcloud.com) Recommended: Реєструємося на cloudflare.com, додаємо придбаний домен туди та змінюємо Nameservers на сайті реєстратора на ті, що надав Cloudflare. Після цього DNS-записами керувати можна з Cloudflare. Додаємо DNS-рекорд з IP серверу. 👩💻 Налаштування reverse-proxy Заходимо на свій сервер та встановлюємо nginx разом з certbot: sudo apt install nginx certbot Далі генеруємо SSL сертифікат для нашого домену: certbot --nginx domain.tld Пишемо caller.conf за прикладом з документації або мого темплейту, вказуючи шлях до ключів сертифікату, які надав certbot. Пихати можна куди заманеться, аби не загубився. У /etc/nginx/nginx.conf шукаємо розділ http {} та вказуємо шлях до конфігурації. Виглядатиме це приблизно так: user www-data; # Other settings... http { # Any http settings here include /path/to/myconfigurations/*.conf; } Рестартимо nginx: nginx -s reload 🤖 Якщо ще не втомилися, сідаємо редагувати код свого боту. Можна знову повернутися до документації або мого темплейту. Лишається тільки налаштувати запуск веб-серверу на порті, який раніше було вказано у caller.conf. Телеграму потрібно скормити тільки URL на який він стукатиметься при нових подіях. Піднімаємо бота й радіємо. ❤️ Дякую за увагу!
🥖 Кому цікаво, залив нову версію stollen (v0.2) - Переробив глобальні поля запиту (тепер вони вказуються у global_request_fields при ініціалізації клієнту) - Зробив детальні помилки з усією інформацією про запит / відповідь (DetailedStollenAPIError). Викидається якщо: а) якщо сталася помилка під час парсингу відповіді; б) ви самі використали відповідний клас як базовий / вказали force_detailed_errors=True при ініціалізації клієнту. - Тепер запити та успішні відповіді логуються на рівні DEBUG - Додав можливість вказати subdomain для конкретного запиту. Корисно для того ж xRocket, який містить декілька API (https://pay.ton-rocket.com/api/, https://trade.ton-rocket.com/api/) - Поля запиту стали більш гнучкими. Тепер кожному полю можна визначити його тип (header / body / query / url placeholder) завдяки QueryField, BodyField відповідно. - Тип даних що береться за замовчуванням у методі також може бути змінений через параметр StollenMethod: default_field_type ⚠️ Містить ламаючі зміни!
Розповім коротко: у мене в планах заснувати сво
Трошки оффтопу в каналі. Розповім коротко: у мене в планах заснувати свою екосистему в телеграмі. ❤️ Наразі в розробці VPN-сервіс, токен з'явиться трохи пізніше. Обіцяю, буде весело! @pornofnd 😁
🥳 Мій темплейт зібрав 50 ⭐️ на GitHub!
👋 Відкрив репозиторій зі своїм темплейтом, готовий до критики і пропозицій. 👩💻 Посилання на репозиторій
🥱 Stollen – новий асинхронний фреймворк, мета якого – спростити створення client-side API. 👩💻 Приклад використання (повна версія) » class XRocket(Stollen): def __init__(self, pay_key: str, production: bool = True, **stollen_kwargs: Any) -> None: subdomain: str = "pay" if production else "dev-pay" super().__init__( base_url=f"https://{subdomain}.ton-rocket.com", global_request_fields=[ Header(name="Rocket-Pay-Key", value=pay_key), ], response_data_key=["data"], error_message_key=["message"], general_error_class=XRocketError, error_codes={403: UnknownAPIKeyError}, **stollen_kwargs, ) async def get_app_info(self) -> AppInfo: from .methods import GetAppInfo call: GetAppInfo = GetAppInfo() return await self(call) 💟 Наразі у стані Pre-Alpha, тому готовий до критики і пропозицій) 👩💻 Репозиторій
🦷 Bot API v7.0 — наразі вважається наймасштабнішим оновленням. Трохи запізнився з постом, але краще пізно, ніж ніколи. :) ❤️ Реакції • Тепер боти можуть реагувати на повідомлення методом setMessageReaction. • Боти також бачать реакції на повідомлення. (Як це обробляти в aiogram?) • Додано поле available_reactions до об'єкту Chat. 💬 Реплаї • Тепер, використовуючи ReplyParameters, боти можуть відповідати на повідомлення у інших чатах та топіках, а також цитувати будь яку частину повідомлення. • Додано об'єкт ExternalReplyInfo — інформація про повідомлення, яке реплайнули з іншого чату. • Нове поле quote у об'єкта Message дозволяє ботам розпізнавати цитати. 👀 Прев'ю посилань • Тепер боти можуть встановлювати окрему URL-адресу для створення прев'ю посилань у вихідних повідомленнях. • Додана можливість змінювати розмір та позицію прев'ю в повідомленні. • Тепер для зміни параметрів прев'ю потрібно вказувати LinkPreviewOptions. 🛍 Пакетні дії • Боти тепер можуть видалити до 100 повідомлень одночасно методом deleteMessages. • Аналогічно з видаленням — повідомлення тепер можна пересилати та копіювати пачками використовуючи відповідні методи: forwardMessages та copyMessages. 🆙 Бусти й роздачі • Додана підтримка Giveaway повідомлень, тепер боти бачуть їх створення та завершення. • Також боти тепер дізнаються про бусти з відповідними подіями: ChatBoostUpdated та ChatBoostRemoved. • Боти знають про джерело бусту — преміум підписник, подарунковий код, чи роздача. • Методом getUserChatBoosts можна переглядати активні бусти від конкретного користувача у каналі. 🍓 Загальне • Блоки цитат тепер підтримуються в MarkdownV2 та HTML режимах парсингу. • Веб-аппи не закриваються під час виклику openTelegramLink. • Веб-аппи тепер можуть перемикати видимість і поведінку кнопки налаштувань під час натискання. • Боти тепер підтримують запит на вибір декількох користувачів (KeyboardButtonRequestUsers). • Об'єкт Chat має нові поля, що містять кольори профілю та фону, кастомні емоджі тощо. 📋 Повний список змін 💦 Оригінальний пост #news, #новини
О, русачки себе відмічати почали
Happy New Year! 🎄🫶 Let moscow burn! 🔥
🙃 Startup, shutdown... - Де закривати сесію мого апі? - А підключення до бд? - Де створювати фонові задачі при запуску? 🤯 2 евента, startup і shutdown!!!! async def startup(my_api: MyAPI, something_else: SomethingElse) -> Any: await my_api.send(text="&b&lHello, world!") # Створюємо задачу на фоні asyncio.create_task(something_else.polling()) async def shutdown(my_api: MyAPI, something_else: SomethingElse) -> Any: await my_api.close() await something_else.stop() def main() -> None: bot: Bot = Bot(token="42:ABC") dp: Dispatcher = Dispatcher(my_api=MyAPI(), something_else=SomethingElse()) # Да, це такі самі евенти, як і на message, callback_query тощо dp.startup.register(startup) dp.shutdown.register(shutdown) return dp.run_polling(bot) » Dependency injection працює тут так само, як і в обробниках телеграм-апдейтів. » Єдине, що відрізняє ці евенти від телеграм-евентів — не мають свого об'єкта. Реєструються же вони так само.
🩲 Відкривати Aiogram hentai NSFW 🍓?
🩲 Відкривати Aiogram hentai NSFW 🍓?
👋 Відкрив репозиторій зі своїм темплейтом, готовий до критики і пропозицій. 👩💻 Посилання на репозиторій
🥳 200 підписників!
🧼 Як і для чого писати чистий, ефективний та читабельний код? Насправді "чистий код" це дуже розмите поняття, бо в багатьох розробників своя думка й уявлення щодо цього. Я вибрав основні пункти, що на мою думку дійсно можуть допомогти писати якісний код, повторюсь, якісний, а не ідеальний. Всякі тупі тези на кшталт «в функції не більше 7 аргументів» розглядатися не будуть. 📝 Для цього існує чимало рекомендацій та інструментів. Конкретно для Python: — Загальноприйняті стандарти написання коду — PEP-8 (» клац «) — Лінтер коду Ruff (» клац «) (Що таке "лінтер"?) — Засіб форматування коду Black (» клац «) — Статичний аналізатор анотацій типів (type-hints) — mypy (» клац «) Бонус. Приклад проекту з використанням зв'язки ruff-black-mypy: https://github.com/wakaree/aiogram_bot_template 🖌 Окрім цього існують і загальні рекомендації, актуальні вже не тільки для пайтону: — Принципи SOLID — Українською 🇺🇦 / Англійською 🇬🇧 — Патерни (шаблони) проектування (» тик «) — Ще одна коротенька, але корисна стаття по код-стайлу (» тик «) 😐 Чому важливо дотримуватися цих рекомендацій? — Такий код набагато легше прочитати і зрозуміти. Інші розробники, що працюватимуть з вашим кодом будуть вдячні! — При правильному використанні патернів проект буде легше масштабувати. — Це знижує ризики виникнення багів, неочікуваної поведінки, й навіть того, що ви самі заплутаєтесь у своєму коді (так, таке буває). #code_style, #code_better
👋 Відкрив репозиторій зі своїм темплейтом, готовий до критики і пропозицій. 👩💻 Посилання на репозиторій