3

Запилил алерты и АХ#ЕЛ!!!

Запилил алерты и АХ#ЕЛ!!! Программист, Telegram, Python, Программирование, Мат, Длиннопост

Изначально мой бот был тупым калькулятором:

  • Раз в 10 минут долбил CoinGecko API

  • Кэшировал курсы, чтобы не задудосили

  • Конвертил BTC в USD и обратно — ну просто пиздец как скучно

Но потом я решил: «Хочу, чтобы бот орал, когда крипта летит к хуям или в космос!»

1. Переход на WebSocket Binance

CoinGecko — лажа, там нет вебсокетов. Пришлось подключать Binance.

Что ожидал:

  • Красивые алерты в реальном времени

  • Умный бот, который не спамит

Что получил:

  • Говнокод, который падает с синтаксическими ошибками

  • Бесконечные костыли


2. Первая жесть: серверный пиздец

На компе всё работало, а на сервере — SyntaxError в строке:

Запилил алерты и АХ#ЕЛ!!! Программист, Telegram, Python, Программирование, Мат, Длиннопост

Что сделал:
Разбил на две строки, ибо сервер — долбоёб:

Запилил алерты и АХ#ЕЛ!!! Программист, Telegram, Python, Программирование, Мат, Длиннопост

Вывод:
Локальный тест ≠ продакшен. Сервер — это пиздец.


3. Пропадающие настройки: пиздец в квадрате

Включил алерты на BTC, перешёл в конвертер — настройки слетели.

В чём проблема?
Оказалось, конвертер перезаписывал всю хуйню:

Запилил алерты и АХ#ЕЛ!!! Программист, Telegram, Python, Программирование, Мат, Длиннопост

Как починил:
Сделал нормальную структуру:

Итог:
JSON и datetime — ебучие уёбки.


4. Конфликт ботов: адский пиздец

Запустил нового бота — старый не хотел умирать.

Логи:

Запилил алерты и АХ#ЕЛ!!! Программист, Telegram, Python, Программирование, Мат, Длиннопост

Что пробовал:

Запилил алерты и АХ#ЕЛ!!! Программист, Telegram, Python, Программирование, Мат, Длиннопост

Решение:
Добавил в systemd:

Запилил алерты и АХ#ЕЛ!!! Программист, Telegram, Python, Программирование, Мат, Длиннопост

И просто подождал 2 минуты — Telegram API тормознутое говно.


5. Спам-апокалипсис: бот ебнулся

Когда ETH подскочила на 7%, бот начал нести хуйню:

Запилил алерты и АХ#ЕЛ!!! Программист, Telegram, Python, Программирование, Мат, Длиннопост

Как пофиксил:
Добавил дебаунсинг и порог срабатывания:

Вывод:
Без ограничений бот превращается в еблана-спамера.


Итог: что получилось

Алерты в реальном времени — WebSocket рулит
Яркие уведомления
Стабильная работа — после тонны костылей

Выводы:

  1. Логируй всё — без логов ты в жопе.

  2. Тестируй на сервере — локально ≠ продакшен.

  3. Не доверяй datetime — JSON его ненавидит.

  4. systemd — мразь — убивать процессы надо жёстко.

Главный урок:
«Если код работает с первого раза — значит, ты что-то забыл.»

Можете посмотреть или допилить исходники или посмотреть на мои чудо-разработки в моем канале!))

P.S. Пишите комменты! Деконструктивная и агрессивная критика приветствуется!🚀