Оценка кода/Хейт кода/Обсирание кода

Anarch

Известный
Автор темы
344
75
Только пожалуйста по существу. Что можно было улучшить, что бы лучше работало.
Буду реагировать только на конкретную критику на конкретный запрос, а просто - "ну у тебя там пробел стоит - код калл, разраб дикий обсос", не слушаю.


Python:
import telebot
import time, os
import pyautogui
#НАСТРОЙКИ
TOKEN = "dont_steal_my_token" # <-- Сюда токен из созданого бота @botfather телеграм
YOUR_CHAT_ID = "dont_steal_my_chatid" # <-- Сюда чат айди (узнать можно в боте - @chatIDrobot в тг или другим способом.)
bot = telebot.TeleBot(TOKEN, parse_mode=None)
step = 0
k = 0
z = 0
@bot.message_handler(commands=['start'])
def send_welcome(message):
    if message.chat.id == int(YOUR_CHAT_ID):
        keyboard = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True)
        button1 = telebot.types.KeyboardButton('[📸] Скриншот(Custom mode)')
        button2 = telebot.types.KeyboardButton('[📸] Скриншот 60 раз в 1 мин (Default mode)')
        button3 = telebot.types.KeyboardButton('[⛔] Выключить компьютер/ноутбук')
        keyboard.add(button1,button2)
        step = 0
        bot.send_message(message.chat.id, "👋 Привествую юзер AFKGuard`а! Используйте кнопки меню в телеграмме, чтобы выбрать режим.")
        bot.send_message(message.chat.id, "[❗] - Кнопки не будут работать если цикл уже начался, после завершения - все будет доступно (перезапуском /start)", reply_markup=keyboard)
        print('Показал меню\n')
    else:
        print('[❗ ]Кто-то другой попытался использовать бота [❗ ]\n')
        bot.send_message(message.chat.id, "[ ❌ ] - Acces denied")
@bot.message_handler(func=lambda message: True)
def echo_all(message):
    if message.chat.id == int(YOUR_CHAT_ID):
        global step, k, z
        if step == 0:
            if message.text == "[📸] Скриншот 60 раз в 1 мин":
                print('Начинаю делать циклы.\n')
                for i in range(60):
                    image = pyautogui.screenshot()
                    image.save("screenshot.png")
                    bot.send_photo(message.chat.id, open("screenshot.png", "rb"))
                    print(f'Сделал скриншот, ожидаю таймер. Это был {i+1} из 60 скриншотов')
                    time.sleep(60)
                bot.send_message(message.chat.id, f'[✔️] Успешно. Цикл успешно выполнен!')
                step = 0
            elif message.text == "[📸] Скриншот(Custom mode)":
                bot.send_message(message.chat.id, "[⏳] Введите количество скриншотов : ")
                step = 1
        elif step == 1:
            if message.text.isdigit() == True:
                k = int(message.text)
                bot.send_message(message.chat.id, '[🔢] Задержка перед скриншотами (в секундах): ')
                step += 1
            else:
                bot.send_message(message.chat.id, '[✖️] - Введите число.')
        elif step == 2:
            if message.text.isdigit() == True:
                z = int(message.text)
                step += 1
                bot.send_message(message.chat.id, f'[✔️] Успешно. Количество = {k}, Таймер = {z}')
                print('Начинаю делать циклы.\n')
                for i in range(k):
                    image = pyautogui.screenshot()
                    image.save("screenshot.png")
                    bot.send_photo(message.chat.id, open("screenshot.png", "rb"))
                    print(f'Сделал скриншот, ожидаю таймер. Это был {i+1} из {k} скриншотов')
                    time.sleep(z)
                bot.send_message(message.chat.id, f'[✔️] Успешно. Цикл успешно выполнен!')
                print('\n Цикл завершен.')
                step = 0
            else:
                bot.send_message(message.chat.id, '[✖️] - Введите число.')
    if __name__ == '__main__':
        os.system('cls & title AFKGuard')
        print("""
    AFKGUARD - Загружен!
    Приятного использования.
    --------------------
            Логи бота:
            """)
        bot.infinity_polling(timeout=10, long_polling_timeout = 5)
#maded by anarch
#dont copy this shit code please
(писал для отчима)
 

Mamashin

Известный
1,095
588
Ну многие бы предпочли как всегда aiogram, но для меня нет разницы.
Я бы вынес строки которые используются в боте в отдельный файл, но в твоем случаи это не совсем практично, поскольку строк достаточно много.
В таком случаи, можно было бы обойдись вынесением обычных переменных в другой файл, дабы оптимизировать читабельность основного кода, так же, логирование действий можно было бы использовать концепцию исключений, чтобы логировать валидные действия и ошибки, то есть, обернуть функционал хэндлеров в try expect, это то, что касается простой системы логов. А так, в принципе, больше мне подметить нечего, для такого маленького функционала вполне сойдет.
 
  • Нравится
Реакции: Anarch