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