♿️Если коротко, то:
В моём проекте основной входной точкой является файл 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. Такой подход делает код читаемым и удобным для дальнейшего развития, чем я и буду заниматься, когда будет скучно.
В моём проекте основной входной точкой является файл 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. Такой подход делает код читаемым и удобным для дальнейшего развития, чем я и буду заниматься, когда будет скучно.