Думаю многие из вас видели кучу ботов по продаже различных услуг вроде продажи говнософта или манясносу. Прайсы у такого говна очень часто высокие. И сейчас же я вам покажу отличный пример подобного бота, который был вынут из аккаунта бомжа. Я разберу код бота и дам вам базовые советы, как делать нужно или не нужно.
Приступим к разбору.
Бот позиционировался как репортер на каналы с целью их удаления с телеграма.
Начнем с того, что весь код бота написан в одном нахуй меин файле. Не делайте так.
Разбивайте вашего бота на модули, хендлеры делайте в отдельных файлах.
Это повысит читаемость вашего кода и также делает его удобным для модифицирования и починки в случае ошибок. Также база данных
Для начала смотрим на охуеннейшие библиотеки телебоб![]()
Если вы хотите сделать своего бота, то умоляю вас, не используйте эту нищенскую синхронную библиотеку telebot. Это самая говнищная библиотека для управления ботами. А все потому, что она синхронная. В общих чертах это значит, что пока бот не обработает команду одного человека, другому человеку он не ответит. Это значит, что если у бота будет какое-то прерывание, или он будет перегружен, то он будет работать нестабильно. Вместо телебота используйте Aiogram. Просто разберитесь немного как эта библиотека работает, и у вас будет максимально стабильный и удобный бот
Теперь посмотрим на следующую функцию, которая, как я полагаю, проверяет есть ли подписка у пользователя.
Здесь настолько много пиздеца, что это даже объяснить трудно. как минимум глобалки в функции. Это что вообще блядь такое?
Никогда, слышите, НИКОГДА НЕ ИСПОЛЬЗУЙТЕ ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ В ФУНКЦИЯХ.
Никогда не используйте русский текст в ключах словарей, вы можете использовать кириллицу только в случаях, если это какой-то текст, который программа будет выводить на экран или же в комментариях к вашему коду.
Едем дальше.
Здесь, как я полагаю, хранятся промокоды в боте. Не делайте так в меине. Как минимум создайте отдельный .py файл, где записаны все эти промокоды и в главном коде импортируйте просто из этого файла. Но лучше всего сделайте отдельную таблицу в базе данных. Это будет лучше и правильнее всего.
Не делайте так.
Храните токен бота как минимум в config файле. Если вы сделали переменную channel_id, то это должно быть числовое значение, а не строка. Если у вас два канала, то храните все значения каналов хотя-бы в списке.
Здесь нахуя-то делается переменная "nah", которая нигде не используется. Принты тоже бесполезные. Вместо принтов для отладки используйте логгирование. Самая простая библиотека - logging. Это встроенная базовая библиотека. Более красивая и продвинутая библиотека - это loguru.
Для добавления инлайн кнопок сделайте отдельную функцию. Не делайте этого в хендлере.
Опять блядские глобалки
Нахуя делать такой цикл, если можно просто:
for i in users:
Pythonfor i in users:
Очередная неиспользуемая переменная и бесполезные принты непонятно-какой хуйни
Ну вот опять сука. Ни форматирования, нихуя. Очередные глобальные переменные со всратыми названиями.
f строка которая нахуй не нужна, потому, что в нее никакие данные не вставляются. Очередная глобалка, очередные переменные, которые нигде не использованы![]()
Функции, которые делают ровно одно и то же. Зачем так делать?
Прошу обратить внимание на названия переменных.
Не используйте ебнутые названия для переменных. Особенно если переменная называется "ahyel"![]()
И такого говна там очень много.
Невъебенная защита своего же канала от несуществующих жалоб![]()
"ЫЫЫ ГЛОБАЛКА ЩА НАЕБЕНЮ ГЛОБАЛОК БУДУ КРУТЫМ ПРАГРАМИСТОМ ЫЫЫ ГЛАБАЛКА ЫЫЫЫЫЫЫЫ"
Крайне полезные комментарии к функции.
Теперь посмотрим на сам функционал нашего невъебического сноса.
Чтобы сделать этот кал более читаемым, я отформатирую код.
В этом и заключается весь функционал "сноса". Для тех, кто не понял, бот тупо изменяет сообщение, в котором происходит имитация отправки жалоб. То есть блядь кроме визуальной поебени бот не делает тупо нихуя.
Он по таймауту в 4, 2 и 0.6 секунд изменяет сообщение.
(статья перезалил)
Это мне напомнило скрипты на термуксе от индусов, в которых делалась строка загрузки. Там по таймауту через принт выводилось: "Loading 10%..." в них очищался экран, и через паузу обновлялся процент через print.
По сути бот является наебом, он ничего не делает и не сделает. Разработчик этого говнища просто кидает своих пользователей на бабки![]()
С таким же успехом вы можете побиться башкой об стену . Это принесет даже больше результата, чем эта поебень.
Заметил то что на лолзе плохо работают картинки(9(
Вывод
Не пользуйтесь ботами, которые писали рукожопы-манядоксеры. Почти любой проект, который создают школодоксеры - это либо наеб, либо какой-то кал по оверпрайсу. Пишите адекватные проекты на нормальных библиотеках и не занимайтесь всякой хуйней, вроде доксинга или сваттинга.
Загрузка...

Не дайте себя обмануть | Telegram Репортеры / Сносеры