Обновить
@Surgeon76read⁠-⁠only

Пользователь

-0,1
Рейтинг
Отправить сообщение

Пишем юзербота для MAX:, Green-API и автоматизация рутины. Личный опыт и примеры кода

Уровень сложностиСредний
Время на прочтение16 мин
Охват и читатели5.3K

Юзербот — это обычный аккаунт MAX с подтвержденным номером телефона, которым управляет скрипт. В отличие от официальных чат-ботов, юзербот сидит под капотом обычного клиентского профиля. Официального API для этого нет, платформа такие вольности не любит. Но если нужно обойти ограничения и автоматизировать рутину — приходится использовать сторонние библиотеки.

 

Что нужно знать перед запуском:

Скрипт работает 24/7 с обычного аккаунта.

Доступны любые действия, которые может выполнить живой человек.

Нужно жестко контролировать частоту запросов. Ошибка в лимитах — улетаете в бан.

 

На чем писать юзербота:

Green-API - Есть техподдержка, SLA, стабильные коннекты.

PyMax - open-source, Настраиваете сами, падают без предупреждения.

 

Разбираем Green-API

Green-API дает готовый интерфейс для управления аккаунтом MAX. Смотрим, что умеет этот шлюз.

Читать далее

JWT авторизация в FastAPI: от теории до работающего кода

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

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

В этой статье я разберу подход, основанный на JWT (JSON Web Tokens), и покажу, как реализовать полноценную авторизацию в FastAPI — одном из самых быстрых и современных фреймворков для Python. Мы пройдём путь от архитектуры приложения до готового кода, который можно использовать в реальных проектах.

Читать далее

Практики разработки на Python

Уровень сложностиПростой
Время на прочтение16 мин
Охват и читатели7.9K

Привет, Хабр! Меня зовут Роман, я программист в команде «Гравитон» и моя задача в компании — разработка API/CLI интерфейсов и приложений на языке Python.

Цель данной статьи в том, чтобы показать как через внедрение «типовых подходов» и вспомогательных библиотек/утилит очень сильно упрощается поддержка проекта в настоящем (при передаче другому человеку или разработке в команде) и в будущем (возобновили проект спустя время).

Первое, что нужно сказать — проект на Python это не только сам Python, но и множество технологий используемых вместе (Git, Docker, и т.д.). В этой статье мы сконцентрируемся на самом проекте, а именно с чего начать, что прикрутить, что учитывать при разработке.

Читать далее

Установка Claude AI (Клод ИИ) Code на зарубежный VPS для обхода санкций и как купить подписку в России

Время на прочтение6 мин
Охват и читатели38K

В статье пошагово показано, как завести аккаунт Claude Code в обход санкций, с европейского IP-адреса, на европейский телефон, с оплатой виртуальной карточкой.

Конкретно вы нашем случае Claude Code нужен для настройки сервера и написания скриптов. Мы собираемся использовать зарубежный VPS в качестве прокси для захода на YouTube, Instagram, Facebook и другие заблокированные сайты (браузер запускается прямо на VPS, как BrowserBox). А также для установки прокси Telegram, если его тоже заблокируют.

Агент поможет с установкой VPN, стороннего клиента для просмотра и скачивания YouTube, а также защитит VPS от AI-ботов и прочей дряни, так что можно нормально работать в интернете из РФ без эмиграции.

Читать далее

Работа с формами во Flutter

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

Работа с формами — неотъемлемая часть любого Flutter-приложения. В этой статье я расскажу о том, как создавать формы с помощью стандартных инструментов (Form, TextFormField, GlobalKey) и какие подводные камни возникают при их масштабировании.

Читать далее

Подключаем MAX к своей CRM за 30 минут на Python

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

Мессенджер MAX набирает обороты в корпоративном сегменте. У него есть Bot API, но документации и примеров интеграции в открытом доступе минимум. В этой статье покажу, как за полчаса поднять микросервис, который принимает и отправляет сообщения MAX, и подключить его к любой CRM или внутренней системе.

Что получим в итоге

FastAPI-микросервис на Python

Приём входящих сообщений через Long Polling

Отправка ответов из CRM обратно в MAX

Автоматическое переподключение при обрывах

Systemd-сервис для продакшена

Читать далее

Замыкания, декораторы и nonlocal в Python: Путешествие от переменной до элегантного кода

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

Python славится своей гибкостью. Мы можем передавать функции как аргументы, возвращать их из других функций и даже "записывать" внутрь них состояние. Но как это работает под капотом? И при чем тут странное слово nonlocal?

В этой статье мы проследим эволюцию: начнем с глобальных переменных, разберемся с замыканиями (closures), поймем магию nonlocal, а затем соберем всё это вместе, чтобы понять, как работают декораторы — один из самых элегантных механизмов Python.

Читать далее

Я написал мессенджер с серверами и голосовыми каналами. Один. Рассказываю зачем и как

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

Когда в октябре 2024-го заблокировали Дискорд, я сидел в голосовом канале с друзьями. Связь оборвалась, все полезли за впн-ками, кто-то ушёл в Телеграм, кто-то просто пропал. Серверы, которые мы строили годами, с каналами, ролями, ботами, в один момент стали недоступны.

Я фрилансер, пишу на React и Node.js. В тот вечер подумал: а насколько сложно вообще сделать свой мессенджер с серверной структурой? Не чат на вебсокетах из туториала, а нормальный. С серверами, каналами, ролями, голосовыми комнатами, ботами. Такой, чтобы можно было перетащить своё сообщество и не чувствовать разницы.

Оказалось, сложно. Но я всё равно сделал.

Читать далее

Flutter. Разбираемся, как рисовать различные фигуры с помощью CustomClipper

Время на прочтение7 мин
Охват и читатели20K


Flutter предлагает различные виджеты для работы с определенным набором фигур, например, ClipRect, ClipRRect, ClipOval. Но также есть ClipPath, с помощью которого мы можем создавать любые типы фигур.


В данной статье мы сосредоточимся на том, что можно сделать, используя ClipPath и CustomClipper. Поехали!

Читать дальше →

Правила компоновки во Flutter, которые должен знать каждый

Время на прочтение14 мин
Охват и читатели96K


Когда новичок во Flutter спрашивает, почему какой-то виджет с width: 100 не ширины 100 пикселей, обычно ему отвечают, что надо обернуть этот виджет в Center, верно?


Не надо так делать


Если так отвечать, то к вам будут возвращаться снова и снова, спрашивая, почему какой-то FittedBox не работает, почему этот Column переполнен или как работает IntrinsicWidth.


Сначала объясните, что Flutter компоновка очень отличается от HTML компоновки (особенно, если говорите с веб-разработчиком), а затем скажите, что необходимо запомнить следующее правило:


Ограничения для виджетов объявляются в родителях. Размеры (желаемые) задаются в самом виджете. Позиция виджета на экране устанавливается родителем

На мой взгляд, это правило нужно изучить, как можно раньше, так как без него по-настоящему понять компоновку во Flutter нельзя.

Выбор стека для веб-сайта: обзор типов рендеринга — SSR, SSG, CSR и другие

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

В современном мире веб-разработки выбор стратегии рендеринга сайта является одним из ключевых решений, определяющих его производительность, оптимизацию для поисковых систем (SEO) и пользовательский опыт. От того, как и где генерируется HTML-код вашего приложения, зависит скорость загрузки, интерактивность и даже стоимость инфраструктуры. В этой статье мы подробно рассмотрим основные типы рендеринга — Client-Side Rendering (CSR), Server-Side Rendering (SSR), Static Site Generation (SSG), Incremental Static Regeneration (ISR) и набирающие популярность React Server Components (RSC) — их преимущества, недостатки, влияние на SEO и производительность, а также приведем примеры технологических стеков для каждого подхода.

Статья будет полезна для всех кто занимается разработкой сайта(вайбкодеры, веб-разработчки итп.)

Читать далее

Python mmap: Улучшенный I/O файлов с помощью отображения файлов в память

Уровень сложностиСредний
Время на прочтение18 мин
Охват и читатели8.7K

В Python существует несколько способов решить большинство задач. Например, есть разные способы чтения файла в Python, включая редко используемый модуль mmap.

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

Читать далее

ООП в Python за 1 статью: от «Hello World» до архитектуры

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

Вы освоили переменные, разобрались с циклами и научились писать функции. Ваши скрипты бодро парсят сайты, перекладывают файлы или считают статистику. Жизнь кажется прекрасной, а Python — лучшим языком в мире.

Но однажды проект начинает расти.

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

Читать далее

Flutter 3.41 — Что нового во Flutter?

Время на прочтение11 мин
Охват и читатели9K

Сегодня мы с радостью объявляем о выпуске Flutter 3.41, что знаменует собой важную веху на нашем совместном пути! Это захватывающее время для разработчиков; этот релиз отражает наше стремление расширить возможности нашего сообщества в формировании направления развития Flutter. Благодаря 868 коммитам от 145 уникальных участников, Flutter 3.41 обеспечивает дополнительную прозрачность и модульность, что еще больше улучшает опыт внесения вклада в Flutter.

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

Здесь столько всего интересного, так что давайте сразу же приступим…

Читать далее

Глобальная область видимости в JavaScript

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели5.6K

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

Глобальная область видимости может принимать различные формы в зависимости от того как загружаются код JS...

Какие ещё формы?

Интерактивная поздравительная открытка на JavaScript

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

Наверное, каждый из нас ловил себя на мысли: что отправить на день рождения в этот раз? Просто текст, тёплую фотографию или голосовое сообщение? И сразу вспоминается это чувство, когда ищешь или обдумываешь креативный текст, а потом вспоминаешь о милой картинке с котиком, гифке с шампанским или стандартном «С ДР!» — и отправляешь, чисто для галочки.

Со временем я заметил: когда получаешь такое поздравление в Telegram, становится немного грустно, что человек хоть и поздравил, но не потратил время на то, чтобы обдумать и искренне пожелать чего-то хорошего и уникального только про тебя. Хотя понимаешь — это нормально. Поколение постарше привыкло обмениваться этими милыми, но безликими посланиями. Хотя не все делают это из-за нежелания — некоторым просто понравилась картинка, вот и скинули.

Читать далее

Событийный цикл в asyncio: как Python-код работает поверх механизмов Linux

Уровень сложностиСредний
Время на прочтение23 мин
Охват и читатели13K

Большая статья для тех, кто, как и я, споткнулся об asyncio и так не разгадал до конца «магию» событийного цикла. Попробовал распутать этот клубок через подробный рассказ (в как можно более доступной форме) о внутренних механизмах Линукса и самого asyncio, которые лежат в основе событийного цикла. К концу статьи, надеюсь, магия исчезнет, а взамен придет ясное понимание фундамента. Статья будет полезна и тем, кто работает с asyncio на других платформах.

Погружаемся

Flutter — для веб приложений, Jaspr — для веб сайтов

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

Я не нашел на хабре достойного представления фрейморка Jaspr сообществу и решил представить сам. Flutter, безусловно, хорошая магия: один код для всех платформ, в том числе и Web. Но за магию приходится платить. Платить мегабайтами загрузки, муками с SEO и ощущением, что ты принёс на пляж боулинг — вроде и весело, но как-то не к месту. Команда Flutter и сама честно говорит: Flutter Web создан для веб-приложений, а не для веб-сайтов. Для сложных дашбордов, PWA, для всего, что живёт за логином — да. Для контентного сайта, блога, лендинга — увы.

Знакомьтесь, Jaspr. Веб-фреймворк на Dart, который осознанно отказывается от канваса и пиксельной магии Flutter в пользу старого доброго HTML и CSS. Он выглядит как Flutter, ощущается как Flutter, но на выходе даёт то, что поисковики и браузеры любят и понимают: обычный HTML-документ и DOM. А попробовать на вкус его можно здесь.

Читать далее

Рекурсия в Python: от матрешки до стека вызовов. Полный гид для новичков

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

Рекурсия часто кажется новичкам «высшим пилотажем» или магией. На деле это фундаментальный инструмент, который незаменим при работе с деревьями и сложными структурами данных. В этой статье мы разберем анатомию рекурсии, заглянем «под капот» стека вызовов, выясним, почему Гвидо ван Россум не любит хвостовую оптимизацию, и научимся ускорять вычисления в тысячи раз с помощью мемоизации.

Читать далее

Дескрипторы Python: механизм, на котором держится половина крутости языка

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

Дескрипторы — одна из тех фич Python, о которых многие слышали, но мало кто использует напрямую. При этом они лежат в основе @property, @classmethod, @staticmethod, слотов и даже обычного доступа к методам.

Разберём, что такое дескрипторы, как их писать и когда они реально полезны.

Понять механизм
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность