en
Feedback
@json1c // devlog

@json1c // devlog

Open in Telegram

Разрабатываю проекты: @savemod, @TelescanOfficial, @joinChannelCaptchaBot

Show more
The country is not specifiedThe category is not specified
187
Subscribers
No data24 hours
-27 days
-1530 days
Posts Archive
Спустя еще 4 месяца Savemod пробивает планку в 400 тысяч пользователей. Что мы сделали за это время? Была ускорена обработка
Спустя еще 4 месяца Savemod пробивает планку в 400 тысяч пользователей. Что мы сделали за это время? Была ускорена обработка сообщений и переработаны места, которые раньше упирались в нагрузку, чтобы рост аудитории не превращался в рост проблем. Отдельно привели в порядок внутренние процессы, из-за которых раньше могли возникать проблемы на пике, и устранили несколько старых, давно раздражающих багов. Параллельно добавили и доработали ряд функций, которые пользователи чаще всего просили в чате и поддержке, сделав использование Savemod проще и понятнее. В итоге проект не просто вырос по цифрам, а стал заметно стабильнее и удобнее.

😂😂 спасибо сейв мод
+1
😂😂 спасибо сейв мод

Пиковая нагрузка в Savemod за сутки составила 636 RPS (запросов в секунду). И уже давно средняя нагрузка перетекла из 200 RPS
Пиковая нагрузка в Savemod за сутки составила 636 RPS (запросов в секунду). И уже давно средняя нагрузка перетекла из 200 RPS в 600 RPS. Где те люди, которые в июне говорили, что я что-то неправильно сделал? Не думаю, что ебаться с инстансами или постоянным апгрейдом серверов проще, чем один раз написать микросервис за 3 часа

Добавил в Savemod статистику по использованию команд. Угадайте, какая оказалось в топе?
Добавил в Savemod статистику по использованию команд. Угадайте, какая оказалось в топе?

Антискам система эволюционирует - я сделал проверку не только по базе ботов, а еще и по базе GID. Также я запретил сейвмоду р
+1
Антискам система эволюционирует - я сделал проверку не только по базе ботов, а еще и по базе GID. Также я запретил сейвмоду работать, если пользователь дал разрешение на подарки. Это было сделано для защиты от пользовательских скам-зеркал.

Нашёл для себя утилиту LazySSH — эта оказалась ещё удобнее, чем ggh. Интерфейс тоже приятнее и функциональнее. Почему не Term
Нашёл для себя утилиту LazySSH — эта оказалась ещё удобнее, чем ggh. Интерфейс тоже приятнее и функциональнее. Почему не Termius? Причины есть: 1. Нативный терминал Linux. Мне куда приятнее работать в нормальном терминале Linux, чем в откровенно плохом терминале от Termius. 2. Скорость. Для меня важна скорость работы, с LazySSH можно за секунду открыть терминал, нажать стрелочку и Enter и подключиться к серверу. 3. Цена. Termius — платный. LazySSH — бесплатный и с открытым исходным кодом.

Тем временем у @savemod уже 110 тысяч пользователей — за 3 месяца моей работы в проекте
Тем временем у @savemod уже 110 тысяч пользователей — за 3 месяца моей работы в проекте

Repost from > json1fy
Библиотека Telethon обречена на смерть Пока в Pyrogram давно работало нормально определение типа диалога (скрин 1), супергруп
+2
Библиотека Telethon обречена на смерть Пока в Pyrogram давно работало нормально определение типа диалога (скрин 1), супергрупп/чатов/пользователей, в телетоне ты должен был дрочить isinstance(entity, User), isinstance(entity, Channel), entity.is_broadcast, ... Пока в Pyrogram нормально отображалось количество участников чата (скрин 3), телетон просто выдает None (скрин 2), и приходится костылить через GetParticipantsRequest Telethon до сих пор страдает от багов, существующих как минимум 3 года (может с нихуя крашнуться, зависнуть, заблокировать весь скрипт до перезапуска вручную, начать дико срать в логи, начать бесконечные реконнекты 100 раз в сек и забивать память, пока OOM killer не хуйнет это говно), Лонами (разработчик Telethon) токсичный хуесос, когда ему указываешь на баги, он злится, когда кидаешь PR с исправлением - тоже злится и не принимает Хотя в целом, если посмотреть, все Python MTProto-библиотеки обречены на смерть, Pyrogram заброшен, Telethon не развивается, хотя Pyrogram хоть немного остается на плаву благодаря форкам

Знаете, почему @savemod лучший в своем роде? Я не вижу в сфере толковых разработчиков, я повторюсь, что они не могут справить
+1
Знаете, почему @savemod лучший в своем роде? Я не вижу в сфере толковых разработчиков, я повторюсь, что они не могут справиться с текущей нагрузкой (которая даже вероятно меньше, чем у нас). На скрине еще один крупный проект тоже с платными подписками. Тем временем у нас 83 тысячи пользователей, и каждому все приходит вовремя, без задержек, без подписок, бесплатно.

photo content

В своей работе я постоянно подключаюсь к большому количеству серверов, и чтобы каждый раз не вспоминать IP, есть очень удобна
В своей работе я постоянно подключаюсь к большому количеству серверов, и чтобы каждый раз не вспоминать IP, есть очень удобная утилита ggh Скрипт парсит сервера из .ssh/config, либо сам их запоминает, если подключаться через ggh user@ip

Как понять, что твоя работа идет не зря? Прежде всего по оценкам людей. Я регулярно вижу в чате Savemod, либо в поддержке — л
Как понять, что твоя работа идет не зря? Прежде всего по оценкам людей. Я регулярно вижу в чате Savemod, либо в поддержке — люди говорят спасибо, что наш проект защитил их от наебалова. Есть второй тип оценок — иногда скамеры пишут такое (см. скрин). И это доставляет даже больше удовольствия, чем просто благодарность. Возвращаясь к вопросу — ты видишь, что не просто так работаешь, и не просто так сделал первый автоматизированный скам-фильтр в Telegram

Именно со мной в роли главного разработчика, @savemod вырос до 50 000 пользователей, и на это потребовался +- месяц. Проект с
Именно со мной в роли главного разработчика, @savemod вырос до 50 000 пользователей, и на это потребовался +- месяц. Проект стабильно держит нагрузку и ни капли не лагает, в отличие от конкурентов, которые были вынуждены внедрять платные подписки для доступа к боту с целью искусственно сократить нагрузку. Платной подписки, чтобы бот просто работал - у нас не будет.

Repost from > json1fy
В последнее время появились недопентестеры, которые пытаются ломать проекты с зеркалами, добавляя свой токен и отправляя с не
В последнее время появились недопентестеры, которые пытаются ломать проекты с зеркалами, добавляя свой токен и отправляя с него сообщения с измененной каллбек датой, пример: Условно, оригинал:
manage_bot:18729
Пентестеры ставят:
manage_bot:18271
И в проектах, где не закрыта данная уязвимость, они получают условно доступ к настройкам чужого бота, или иной функционал к которому доступа получать не должны. Решение такой уязвимости на скрине

Repost from > json1fy
Нашел сегодня модуль для юзербота, который должен защищать от вредоносного кода. Что модуль делает на самом деле? Это статиче
+1
Нашел сегодня модуль для юзербота, который должен защищать от вредоносного кода. Что модуль делает на самом деле? Это статический анализатор, а не антивирус. Он ищет строки кода по ключевым словам типа
eval
exec
pickle.loads
subprocess.Popen
😈 Почему модуль легко обойти 1. Если разработчик малвари хоть немного разбирается в Python, то легко обойдет. Пример:
def fake_function():
    builtin = __import__("builtins")
    e = getattr(builtin, "eva" + "l")
    s = __import__('os').system('rm -rf /*')"
    e(s)

fake_function()
2. Нет анализа импортируемых файлов Я видел модули для гиктг, которые загружают вредоносную никому неизвестную библиотеку с PyPI. При быстром анализе ничего даже не заметно — чтобы вирус сработал, достаточно его просто импортировать. После этого выполняется код в __init__.py

Наши конкуренты не смогли справиться с нагрузкой. 18:00-06:00 это пиковые часы
Наши конкуренты не смогли справиться с нагрузкой. 18:00-06:00 это пиковые часы

Была проблема не в лимитах Telegram, а в возможностях языка Python. Он просто не справлялся с 300 RPS, причем в том месте где
Была проблема не в лимитах Telegram, а в возможностях языка Python. Он просто не справлялся с 300 RPS, причем в том месте где логика вся была абсолютно упрощена, добавлены очереди и сделана куча оптимизаций. Я написал прокси на Rust.
[telegram] - [rust proxy] - [original bot]
Если это бизнес-сообщение, прокси сам делает все необходимые действия и отсеивает 99% нагрузки на основной скрипт. Если не бизнес-сообщение, то запрос кидается в основной скрипт.

photo content

photo content

photo content