♿️Если коротко, то:



В моём проекте основной входной точкой является файл main.py. Именно он запускает бота, загружает конфигурацию, проверяет аутентификацию и регистрирует все хендлеры, которые находятся в папке handlers. Я специально разделил всю логику по отдельным модулям, чтобы упростить навигацию и поддержку кода. И скажу Вам, так с массивными проектами работать значительно удобнее, нежели в одном файле на 1200-1600 строк, как у меня когда-то было...



В проекте есть следующие файлы и папки (в комментариях скрин, как это выглядит в проекте):



1. Основные:



- config.py

Этот файл хранит все настройки: токен бота, пароль, список администраторов и прочую конфиденциальную информацию.



- auth.py

Здесь я реализовал аутентификацию пользователей. Этот модуль отвечает за то, чтобы проверить, кто авторизован, и определить права пользователя (например, является ли он администратором).



- main.py

Это основной файл запуска. В нём я инициализирую бота, диспетчер, регистрирую обработчики сообщений и команд, а также показываю главное меню. Именно отсюда стартует цикл опроса (polling) бота.



- password_extractor.py

Этот модуль я написал для извлечения логинов и паролей из браузеров. Он обращается к локальным базам данных браузеров, расшифровывает пароли при помощи системных ключей и возвращает их в удобном формате.



- browser_data_extractor.py

Здесь я сосредоточил логику извлечения других данных из браузеров, таких как cookies и история посещений. Модуль работает аналогично: читает базы данных и возвращает результат в виде списка.



- autostart.py

Этот файл отвечает за добавление скрипта в автозагрузку Windows через записи в реестре.



2. Сами функции: папка handlers/ содержит модули, каждый из которых реализует отдельный функционал бота. Вот некоторые из них:



- system_info.py

Показывает системную информацию (процессор, оперативная память, диск).



- programs.py

Позволяет запускать программы на компьютере через команды бота.



- files.py

Обрабатывает базовые операции с файлами, такие как загрузка и скачивание.



- commands.py

Позволяет администраторам выполнять произвольные команды ОС через CMD.



- camera.py

Реализует снятие фото/видео с вебкамеры.



- screenshot.py

Делает скриншот экрана.



- credentials.py

Извлекает логины и пароли и отправляет их администратору в чат.



- system_control.py

Управляет системой: завершает процессы, перезагружает или выключает компьютер (только для администраторов).



- file_management.py

Реализует расширенные операции с файлами и директориями: просмотр папок, удаление, архивирование, поиск и скачивание целых директорий.



- browser_data.py

Этот модуль извлекает cookies, историю посещений и другие данные из браузеров (для администраторов).



Каждый из файлов в папке handlers/ регистрирует свои собственные обработчики (хендлеры) для определённых команд или текстовых запросов, которые получает бот в Telegram. Эти хендлеры взаимодействуют с основной логикой (например, извлекают данные или выполняют команды), а затем отправляют результаты обратно пользователю.



Итог



В этот раз я постарался сделать структуру кода максимально модульной. Основной запуск бота происходит через main.py, все настройки собраны в config.py, аутентификация обрабатывается в auth.py. Логика работы с браузерами вынесена в отдельные модули, а весь функционал бота разнесён по хендлерам, которые хранятся в папке handlers. Такой подход делает код читаемым и удобным для дальнейшего развития, чем я и буду заниматься, когда будет скучно.