Как стать автором
Обновить
147.62
Amvera
Amvera — облако для хостинга IT-приложений
Сначала показывать

Связываем форму сайта с Telegram-ботом на чистом JavaScript за 15 минут: Полная разработка и деплой

Время на прочтение15 мин
Количество просмотров5.1K

Сегодня я подготовил небольшую, расслабляющую статью, особенно в сравнении с предыдущими. Недавно я разрабатывал FullStack-приложение для небольшого лендинга, где одной из задач было привязать форму с сайта к Telegram-боту.

Суть задачи:

Пользователь вводит данные в форму на сайте, после чего эта информация отправляется заказчику через Telegram-бота. Данные отправляются в формате HTML, с полным набором информации. Всё это нужно было реализовать на чистом JavaScript + HTML + CSS. Из этой задачи родилась идея для данной статьи.

Чем мы займёмся?

Мы зарегистрируем Telegram-бота через BotFather, создадим приятную страницу с формой для сбора данных с использованием бесплатного сервиса WebSim.ai, а затем настроим отправку сообщений с формы в Telegram-бота, используя только JavaScript, HTML и CSS.

Читать далее
Всего голосов 12: ↑7 и ↓5+5
Комментарии13

Простой мини-чат на FastApi: Современный интерфейс, вебсокеты и SQLAlchemy с деплоем

Время на прочтение40 мин
Количество просмотров8.4K

Привет, друзья! Сегодня я подготовил для вас увлекательную практическую статью о создании мини-чата на FastApi. Мы погрузимся в мир вебсокетов, узнаем, зачем они нужны и как применяются в реальных приложениях. Также я продемонстрирую работу с асинхронной SQLAlchemy на примере взаимодействия с базой данных SQLite.

Для создания современного интерфейса мы обратимся к интересному и бесплатному сервису Websim.ai, который за пару минут сгенерирует нам интерфейс, включая страничку для входа/регистрации и страницу самого чата.

Чтобы наш чат мог обслуживать множество пользователей одновременно, мы выполним деплой нашего FastApi приложения. Для этого воспользуемся сервисом Amvera Cloud. Нам нужно будет подготовить файлы приложения, написать код, создать файл с настройками (можно сгенерировать на сайте или скопировать мой код), а затем доставить файлы на сервис. Для доставки можно использовать встроенный терминал или GIT, используя стандартные команды PUSH/PULL.

Но прежде чем мы погрузимся в код, давайте кратко обсудим, что такое вебсокеты и как они работают в контексте FastApi.

Читать далее
Всего голосов 11: ↑11 и ↓0+15
Комментарии4

Доступ к нескольким подам Kubernetes по протоколу TCP и единственному внешнему IP

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров1.1K

В облаке Амвера микросервисы и базы данных пользователей крутятся в кластере Kuberneres. Для доступа к приложениям обычно достаточно использовать nginx ngress controller который чудесно работает с HTTP(S) трафиком и позволяет получить доступ к сотням сервисов с использованием только одного внешнего IP адреса. Но, что если пользователь хочет получить доступ к развернутой СУБД не только изнутри кластера, но и извне? Конечно, мы могли бы выдавать каждой СУБД свой белый IP и создать ClusterIP, но это привело бы к дополнительным затратам на аренду адресов. В этой статье я бы хотел поделиться элегантным методом проксирования TCP трафика на основе SNI сообщений, который позволяет использовать один белый IP на сотни СУБД.

Читать далее
Всего голосов 5: ↑3 и ↓2+5
Комментарии5

Разработка Telegram-бота для управления файлами и заметками с помощью Aiogram 3 и асинхронной SQLAlchemy

Уровень сложностиСредний
Время на прочтение32 мин
Количество просмотров4.2K

Привет, друзья! Сегодня я представляю вам новую практическую статью, посвященную разработке телеграм‑ботов с использованием фреймворка Aiogram 3. В этот раз мы сосредоточимся на практической стороне вопроса и уже к концу статьи напишем своего, достаточно функционального, бота.

Для полного погружения желательно, чтобы вы уже имели базовые знания Python, были знакомы с фреймворком Aiogram 3 (на моем Хабре уже есть около 15 публикаций, в которых я подробно разбираю создание телеграм‑ботов с нуля на этом фреймворке), а также имели общее представление о базах данных, в частности SQLite, и их интеграции с Python.

Что мы будем делать сегодня?

Сегодня мы создадим телеграм-бота для хранения заметок и файлов. Мы будем использовать фреймворк Aiogram 3 для разработки, а базу данных SQLite с асинхронным движком aiosqlite для хранения данных. Наш бот будет иметь следующий функционал:

Читать далее
Всего голосов 14: ↑13 и ↓1+18
Комментарии5

«База данных» в гугл таблицах для телеграм-бота

Уровень сложностиСложный
Время на прочтение9 мин
Количество просмотров6.1K


Практически все боты используют какое-нибудь хранилище информации. Чаще всего применяются базы данных, но иногда их использование может быть избыточным, особенно если вам не нужны ACID-транзакции и есть желание менять данные руками в максимально простом интерфейсе.


Для хранения информации можно использовать гугл-таблицы.


Сегодня мы разберём пример телеграмм бота для проведения тестов, где вопросы и ответы хранятся в разных вкладках одной Google-таблицы. Почему одной? Опять же, для облегчения доступа для потенциальных пользователей.

Читать дальше →
Всего голосов 10: ↑10 и ↓0+13
Комментарии14

Полноценный API на Django REST Framework: легкая разработка, автодокументация и быстрый деплой

Уровень сложностиПростой
Время на прочтение17 мин
Количество просмотров6.1K

Сегодня мы погрузимся в процесс создания собственного API на Django с использованием мощного инструмента — Django REST Framework (DRF). Этот фреймворк предоставляет полный набор инструментов для разработки API: маршрутизация, сериализация данных, обработка запросов и формирование ответов. DRF значительно упрощает взаимодействие с клиентами через HTTP, поддерживая такие методы, как GET, POST, PUT и DELETE.

Однако, в отличие от FastAPI, Django REST Framework не включает встроенный инструмент для автодокументирования API. Мы легко решим эту задачу, воспользовавшись расширением drf‑spectacular, которое генерирует спецификации API в формате OpenAPI 3.0. Это позволит интегрировать интерфейсы, такие как Swagger и Redoc, для удобного тестирования и наглядной визуализации документации.

Читать далее
Всего голосов 10: ↑9 и ↓1+10
Комментарии16

Бесплатный домен с HTTPS для локальных приложений: универсальное руководство с примером на Flask

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров11K

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

Сегодня я продемонстрирую, как получить бесплатное доменное имя с поддержкой HTTPS, используя два популярных сервиса:

Читать далее
Всего голосов 8: ↑5 и ↓3+2
Комментарии9

Разработка и деплой Slack бота

Уровень сложностиСложный
Время на прочтение16 мин
Количество просмотров920

В этой статье мы рассмотрим процесс разработки Slack-бота на Python с использованием популярных библиотек и фреймворков, таких как Flask и Slack SDK. Мы начнем с выбора инструментов, необходимых для создания бота, и шаг за шагом пройдем через все этапы разработки: от настройки окружения и написания кода до тестирования и деплоя на сервер.

Читать далее
Всего голосов 7: ↑5 и ↓2+3
Комментарии0

Проверяем зачисление в ВУЗ через телеграм бота

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров1.5K

Привет, Хабр! Последнюю неделю не могу найти себе места, так как со дня на день должен выйти приказ о моем зачислении в университет в магистратуру, но приказ предательски все никак не выходит, списки поступивших не обновляются, а я ежедневно захожу на страницу универа, проверяя изменилось ли что-нибудь. И ладно бы, если один раз в день.

В какой-то момент мне это надоело, и я вспомнил, что я – разработчик, в конце концов, поэтому зачем что-то проверять руками, если это можно автоматизировать? Собственно, так и пришла в голову идея о простом разовом проекте, который будет регулярно стучать на сайт, проверять статус зачисления и, в случае изменения, присылать радостное сообщение в телеграм.

Читать далее
Всего голосов 8: ↑5 и ↓3+2
Комментарии2

Бесплатный аналог Notion на своем сервере за 10 минут. Локальный запуск, настройка и деплой Wiki.JS

Уровень сложностиПростой
Время на прочтение14 мин
Количество просмотров15K

Привет, друзья!

Как вы, возможно, уже знаете, 9 сентября Notion покидает рынок РФ, и, по слухам, это может сопровождаться удалением всех аккаунтов из России. В связи с этим, нам всем стоит задуматься о том, какую альтернативу выбрать.

После тщательного анализа различных опций, я нашел, на мой взгляд, отличную и полностью бесплатный аналог Notion — Wiki.JS.

Сегодня мы разберемся, как установить и настроить эту платформу. Начнем с первичной настройки и запуска системы на локальном компьютере, а затем, всего за несколько минут, развернем наш проект на удаленном хостинге, превратив Wiki.JS в полноценную замену Notion.

Для освоения материала вам не понадобятся никакие навыки программирования. Следуйте моим инструкциям, и к концу статьи у вас будет свой собственный экземпляр Notion, работающий на удаленном хостинге.

Для деплоя я буду использовать сервис Amvera Cloud. Я выбрал его за простоту развертывания и предоставление бесплатного доменного имени с HTTPS-протоколом, которое будет выделено вам сразу после создания проекта.

Для деплоя нам понадобится создать Dockerfile (этот файл будет использоваться как для локального запуска, так и для развертывания). Технически, вам достаточно будет скопировать настройки с этой статьи и все у вас заработает. Затем, просто загрузите этот файл через консоль на сайте Amvera Cloud, и ваш проект соберется и запустится автоматически!

В качестве бонуса за регистрацию вы получите 111 рублей, что позволит вам запустить проект бесплатно уже в процессе чтения этой статьи. Подробнее об этом в разделе про деплой.

Читать далее
Всего голосов 11: ↑8 и ↓3+6
Комментарии17

Django 5: асинхронный бекенд и эффектный фронтенд с минимальными затратами времени

Время на прочтение17 мин
Количество просмотров4K

Приветствую, друзья!

Уже давно у меня возникала мысль подробно, как в случае с FastAPI и Aiogram 3, разобрать «суровый» Django 5. Однако, из-за большого дефицита свободного времени и масштабности Django, руки до этого не доходили. Сегодня, как вы уже поняли, момент настал.

В процессе написания кода мы затронем следующие темы: маршрутизация, работа со статическими файлами, асинхронное использование Django 5, работа с базой данных SQLite через встроенное ORM и многое другое.

Сегодня мы создадим простой сайт, который будет демонстрировать гороскоп на завтра для любого знака зодиака. Чтобы было интереснее, гороскоп будем парсить в момент обращения к знаку зодиака (об этом подробнее далее).

Читать далее
Всего голосов 11: ↑9 и ↓2+10
Комментарии12

Создание Discord бота для мониторинга цен на товары

Уровень сложностиСложный
Время на прочтение14 мин
Количество просмотров5.1K

Представьте себе ситуацию: вы внимательно следите за определённым продуктом на Яндекс.Маркете и хотите моментально получить уведомление, как только его цена изменится в желаемую сторону. Или, возможно, вы являетесь владельцем интернет-магазина и стремитесь постоянно отслеживать динамику цен конкурентов, чтобы оперативно реагировать и сохранять свою конкурентоспособность на рынке. В обоих этих случаях, а также во множестве других сценариев, Discord-бот для мониторинга цен станет вашим незаменимым цифровым помощником, работающим 24/7. В рамках этой подробной статьи мы детально разберём процесс создания такого многофункционального бота.

Читать далее
Всего голосов 5: ↑5 и ↓0+7
Комментарии9

Telegram Боты на Aiogram 3.x: Доступ после подписки на каналы, получение Telegram ID и админка с рассылкой сообщений

Уровень сложностиСредний
Время на прочтение39 мин
Количество просмотров6K

В рамках цикла публикаций о разработке телеграм-ботов с использованием aiogram 3 я давно хотел осветить несколько ключевых тем: получение Telegram ID пользователей, групп и каналов, рассылка сообщений всем пользователям бота, вход в бота только по подписке на определенный канал или каналы, интеграция базы данных SQLite с помощью aiosqlite и деплой (удаленный запуск бота на сервере или хостинге). Сегодня мы закроем все эти вопросы.

Мы создадим бота с использованием вебхуков (о необходимости и способах их настройки я уже рассказывал в одной из предыдущих статей) и в конце статьи осуществим деплой на сервисе Amvera Cloud. Я выбрал этот сервис из-за бесплатного доменного имени с HTTPS-протоколом, которое автоматически выделяется и привязывается к созданному проекту, а также за простоту деплоя: достаточно загрузить файлы через GIT или внутренний интерфейс, сгенерировать простой файл с настройками прямо на сайте Amvera, и проект автоматически соберется и запустится.

Читать далее
Всего голосов 7: ↑5 и ↓2+7
Комментарии15

Telegram Mini App. Как создать Web App с нуля

Уровень сложностиСложный
Время на прочтение13 мин
Количество просмотров28K

Mini Apps (или же WebApps) - это относительно новый и удобный способ добавления веб приложения прямо в интерфейсе приложения Telegram. Используя JavaScript, становится возможным создавать бесконечное множество интерфейсов, которые смогут заменить полноценный веб-сайт.

Особенность MiniApps заключается в том, что они поддерживают авторизацию, платежи одной кнопкой и возможность работать с данными пользователя, открывшего мини-приложение.

И сегодня мы попробуем создать miniapp приложение, взаимодействующее с данными пользователя.

Приступим

Читать далее
Всего голосов 19: ↑18 и ↓1+21
Комментарии11

User-боты в Telegram: Простая автоматизация с Python (Pyrogram). Первые шаги

Уровень сложностиПростой
Время на прочтение15 мин
Количество просмотров15K

Давно хотел рассказать вам о такой интересной теме, как User-боты в Telegram, и, наконец-то, мои руки дошли до этого. Сегодня мы разберемся, что это за зверь такой, как его приручить, и, самое главное, познакомимся с мощным Python фреймворком для работы с юзер-ботами – Pyrogram.

Итак, что же такое User-бот в Telegram? Проще говоря, это бот, который ведет себя как обычный пользователь, используя ваш личный аккаунт, а не официальный API Telegram. Такой бот может участвовать в чатах, отправлять и получать сообщения, управлять группами и каналами, делать рассылки и даже выполнять административные задачи.

Это как если бы вы сами сидели за компьютером или телефоном, но все действия выполняет запрограммированный бот.

User-боты позволяют автоматизировать любой авторизованный в Telegram аккаунт, предоставляя вам полный контроль над его действиями. Вы можете настроить автоматические ответы на сообщения, отслеживание определенных событий, массовые рассылки и даже управлять контентом в реальном времени.

Читать далее
Всего голосов 9: ↑9 и ↓0+11
Комментарии32

Интеграция модели GPT-4 Omni в телеграм бота на Python

Время на прочтение5 мин
Количество просмотров4.9K

13 мая 2024 года, OpenAI официально представила новую модель Omni. 

Преимущества модели в том, что она умеет работать со всем контентом (текстом, звуком и изображениями) и знает 50 языков.

И сегодня мы интегрируем эту модель в небольшого бота на Python.

Читать далее
Всего голосов 8: ↑6 и ↓2+6
Комментарии5

Телеграм-бот магазин на Python. Создание с нуля

Уровень сложностиСложный
Время на прочтение20 мин
Количество просмотров20K

В этой статье я покажу, как сделать Telegram-бота для онлайн-магазина на Python, который позволяет пользователям просматривать каталог товаров, добавлять их в корзину и оформлять заказы. Мы также рассмотрим, как интегрировать платежи и работать с базой данных для хранения информации о товарах и корзинах пользователей.

Читать далее
Всего голосов 18: ↑16 и ↓2+18
Комментарии3

Telegram Боты на Aiogram 3.x: Простой бот на вебхуках с локальным запуском и деплоем

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров4.7K

Друзья, приветствую!

Если вы следите за моими статьями, то знаете, что на Хабре у меня опубликовано более 10 объемных публикаций на тему разработки телеграмм ботов через замечательный Python-фреймворк Aiogram 3.

Так получилось, что всю разработку я описывал в формате поллинга и, если для учебных и небольших проектов это подходит, то для крупных проектов нет, так как такой метод не оптимальный, медленный и требует больших ресурсов.

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

Из необычного, я продемонстрирую как без трудна запускать бота на вебхуках с локального компютера и как, в пару команд, развернуть такого бота на удаленном хостинге, не заморачиваясь с NGINX, протоколами, настройками серверов и прочее.

В общем, будет интересно и позновательно!

Читать далее
Всего голосов 16: ↑15 и ↓1+14
Комментарии7

Playwright: Поиск, фильтрация и ожидание элементов на странице

Уровень сложностиПростой
Время на прочтение14 мин
Количество просмотров3.3K

Друзья, приветствую! Для тех, кто не в теме, Playwright — это инструмент для автоматизации и тестирования веб-приложений, который, по моему мнению, уже обошел своего предшественника Selenium, долгое время лидировавшего в автоматизации и тестировании браузеров.

О том, почему Playwright лучше Selenium и зачем вам стоит перейти на Playwright, я подробно писал в предыдущей статье. Там же, хотя и поверхностно, я затронул тему поиска и ожидания элементов на странице.

Однако оказалось, что этот разбор был недостаточно детальным, и у многих читателей возникли вопросы о целесообразности использования таких методов, как locator и get_by_role. В связи с этим, а также благодаря положительному отклику на прошлую статью, я решил максимально подробно разобрать тему поиска, фильтрации и ожидания элементов на странице.

Чем мы займемся сегодня?

В рамках этой статьи мы рассмотрим основные методы для поиска, фильтрации и ожидания элементов на странице.

Читать далее
Всего голосов 15: ↑11 и ↓4+7
Комментарии7

Бот-парсер маркетплейса на Python

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров14K

Всем привет! В этой статье я решил показать один из методов парсинга на Python на примере маркетплейса Wildberries.

Суть подхода в том, что мы будем не разбирать запрошенную html страницу по ссылке, а использовать API сайта, который используется сервисом для получения и отображения всех товаров требуемой категории.

В проекте будут использоваться следующие библиотеки:

Читать далее
Всего голосов 18: ↑12 и ↓6+6
Комментарии12

Информация

Сайт
amvera.ru
Дата регистрации
Численность
11–30 человек
Местоположение
Россия
Представитель
Кирилл Косолапов