Серия «Криптобот»

2

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

Запилил алерты и АХ#ЕЛ!!! Программист, 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. Пишите комменты! Деконструктивная и агрессивная критика приветствуется!🚀

Показать полностью 8

Идеи новых функций от юзеров

Я попросил подписчикофф своего канала накидать мне идей для криптобота.
И вот что из этого вышло....

Идеи новых функций от юзеров Крик души, Криптовалюта, Telegram, Мат, Длиннопост

Да, алерты уже в процессе. Насчёт бомжа, с такими успехами я сам им скоро стану, если не переведу доллары в рубли.

Идеи новых функций от юзеров Крик души, Криптовалюта, Telegram, Мат, Длиннопост

Ученики Уоррена Баффета нервно курят. Мы походу будем делать свой коин скоро!)))

Идеи новых функций от юзеров Крик души, Криптовалюта, Telegram, Мат, Длиннопост

Планы на выходные; закупить 100 замбийских долларов поставить всё на черное в игре в боте и удвоить сумму. итого в переводе на рубель= 40 рублей. А что не дурно, не дурно....

Идеи новых функций от юзеров Крик души, Криптовалюта, Telegram, Мат, Длиннопост

Как ни странно этот варик выиграл в итоге голосование. Но откуда я возьму блядь подписчиков для такой функции !!!

Показать полностью 3

Варианты следующей фичи криптобота

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

🚨 АЛЕРТЫ

«Блять, BTC рухнул на 10%!»

Бот будет орать, если курс резко упадёт/вырастет

Настройки: ±5%, ±10%, ±20% (выбираешь сам)

Можно подписаться на несколько монет

📉 ГРАФИКИ

«Нарисуй мне цену BTC за неделю»

Примитивные линии прямо в чате

Периоды: день/неделя/месяц

💸 ПОРТФЕЛЬ (ЧТОБЫ ПОНЯТЬ, СКОЛЬКО ПРОСРАЛ)

«Добавь мои 0.0001 BTC и покажи убытки»

Вводишь сколько купил — бот считает профит/убыток

Уведомления: «Ты проебал 50%»

Выбери следующую фичу
Всего голосов:
Показать полностью 1

Криптобот: от говнокода до монолита


Сначала сделал простейший криптоконвертер.

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

Как это работает:

  1. Вы предлагаете фичи.

  2. Голосуете за самый отбитый вариант.

  3. Я страдаю, пытаясь это закодить.

И вот что из этого вышло...

v1.0 — пиздец как стыдно

API CoinGecko — дергали как дегенераты:

Криптобот: от говнокода до монолита Python, Telegram, Программирование, IT, Мат

Проблемы:

  • Нет таймаутов → бот зависал на 10+ секунд.

  • Лимиты? «Да кому они нужны» → через час IP в бане.

Хранение состояний — в оперативке:

Криптобот: от говнокода до монолита Python, Telegram, Программирование, IT, Мат

Итог: после рестарта — все сессии в мусорку.

Валидация ввода«ну введи цифры, долбаёб»:

Криптобот: от говнокода до монолита Python, Telegram, Программирование, IT, Мат

Юзеры всё равно вводили: "BTC,-100", "1,,,,5", "миллион долларов".


v2.0 — чуть меньше позора

🔥 Таймауты запросов — 5 секунд и нахуй:

Криптобот: от говнокода до монолита Python, Telegram, Программирование, IT, Мат

🚨 Алерты админам«Сервис опять лежит, пидорасы»:

Криптобот: от говнокода до монолита Python, Telegram, Программирование, IT, Мат

Грабли, в которые въебались лицом

1. API — нестабильная хуйня

  • 502 Bad Gateway

  • Rate limits

  • Ответ через 15 секунд

Костыль:

Криптобот: от говнокода до монолита Python, Telegram, Программирование, IT, Мат

2. Дебилы
Примеры ввода:

  • "1...5 BTC"

  • "0.0000000001 DOGE to USD"

  • "а можно в рублях???"

Фикс:

Криптобот: от говнокода до монолита Python, Telegram, Программирование, IT, Мат

3. Состояния после деплоя
Костыль: JSON-файл вместо Redis:

Криптобот: от говнокода до монолита Python, Telegram, Программирование, IT, Мат

Что будет дальше (если не забьем)

🔔 Алерты«Блядь, Bitcoin просел на 10%!»:
📉 Графики — кривые линии в Paint
💸 Портфель«Сколько я проебал?»
Репозиторий: https://gitflic.ru/project/system_develop/kripto_bot

Показать полностью 6
Отличная работа, все прочитано!