Skip to content

Latest commit

 

History

History
197 lines (134 loc) · 12.1 KB

magic-chat-documentation.md

File metadata and controls

197 lines (134 loc) · 12.1 KB

Документация проекта Magic Chat

Обзор проекта

Magic Chat - это Node.js приложение для управления Telegram аккаунтами и отправки сообщений. Проект включает в себя функциональность для работы как с ботами Telegram, так и с личными аккаунтами пользователей. Основные возможности включают парсинг контактов в Telegram группах, управление телефонными номерами и рассылку сообщений.

Описание компонентов

src/api/

Содержит компоненты для работы с API приложения.

  • handlers/messageHandler.js: Обработчик сообщений API.
  • middleware/checkApiKey.js: Middleware для проверки API ключа.
  • routes.js: Определение маршрутов API.

src/bot/

Содержит реализацию ботов Telegram.

admin/

Административный бот для управления системой.

  • commands/: Команды административного бота.
    • helpCommands.js: Команды помощи.
    • limitCommands.js: Команды управления лимитами.
    • phoneManagementCommands.js: Команды управления телефонными номерами.
    • statsCommands.js: Команды для получения статистики.
    • subscriptionCommands.js: Команды управления подписками.
    • userManagementCommands.js: Команды управления пользователями.
  • index.js: Основной файл административного бота.

user/

Пользовательский бот для взаимодействия с клиентами.

  • commands/: Команды пользовательского бота.
    • accountCommands.js: Команды управления аккаунтом.
    • authCommands.js: Команды аутентификации.
    • campaignCommands.js: Команды управления кампаниями.
    • helpCommands.js: Команды помощи.
    • parsingCommands.js: Команды для парсинга.
    • phoneCommands.js: Команды управления телефонными номерами.
  • index.js: Основной файл пользовательского бота.

src/config/

  • index.js: Конфигурационный файл проекта, содержащий настройки для различных сервисов и API.

src/db/

Компоненты для работы с базой данных PostgreSQL.

  • postgres/: Модули для работы с PostgreSQL.
    • admins.js: Операции с таблицей администраторов.
    • campaigns.js: Операции с таблицей кампаний.
    • config.js: Конфигурация подключения к PostgreSQL.
    • parsedUsers.js: Операции с таблицей спарсенных пользователей.
    • phoneNumbers.js: Операции с таблицей телефонных номеров.
    • utils.js: Вспомогательные функции для работы с PostgreSQL.
  • index.js: Основной файл для экспорта функций работы с БД.

src/messaging/

Компоненты для обработки и отправки сообщений.

  • messageProcessor.js: Обработка входящих сообщений и интеграция с сервисом чат-бота.
  • messageSender.js: Отправка сообщений с использованием различных телефонных номеров.
  • index.js: Основной файл модуля обмена сообщениями.

src/middleware/

Middleware компоненты.

  • adminCheck.js: Проверка прав администратора.
  • subscriptionCheck.js: Проверка подписки пользователя.

src/services/

Сервисы приложения.

auth/

  • authService.js: Сервис аутентификации с использованием Telegram API.

campaign/

  • campaignService.js: Сервис управления кампаниями парсинга и рассылки.

conversation/

  • conversationService.js: Сервис управления диалогами и очистки неактивных разговоров.

parsing/

  • parsingService.js: Основной сервис парсинга данных из Telegram.
  • userParser/: Модули для парсинга и категоризации пользователей.
    • bioEvaluator.js: Оценка биографий пользователей с использованием OpenAI.
    • userCategorizer.js: Категоризация пользователей на основе различных критериев.
    • parsingManager.js: Управление процессом парсинга.
    • campaignParser.js: Парсинг в рамках кампаний.

phone/

  • phoneNumberService.js: Сервис управления телефонными номерами, включая статистику использования.
  • phoneService.js: Общий сервис для работы с телефонными номерами.
  • qrCodeService.js: Сервис генерации QR-кодов для аутентификации.
  • telegramSessionService.js: Сервис управления сессиями Telegram, включая QR-аутентификацию.

stats/

  • statsService.js: Сервис сбора и обработки глобальной статистики.

user/

  • accountService.js: Сервис управления аккаунтами пользователей.
  • limitService.js: Сервис управления лимитами пользователей.
  • subscriptionService.js: Сервис управления подписками пользователей.
  • userService.js: Общий сервис для работы с пользователями, включая бан/разбан.

src/utils/

Утилиты и вспомогательные функции.

  • helpers.js: Общие вспомогательные функции, такие как разделение текста на предложения.
  • logger.js: Модуль логирования с использованием Winston и ротацией логов.
  • userUtils.js: Утилиты для работы с пользователями, включая получение ID пользователя.

src/index.js

Точка входа в приложение, инициализирующая основные компоненты и обработчики.

src/main.js

Основной файл приложения, инициализирующий Telegram клиент и настраивающий обработчики событий.

Основные функциональные возможности

  1. Управление ботами:

    • Административный бот для управления системой.
    • Пользовательский бот для взаимодействия с клиентами.
  2. Работа с личными аккаунтами Telegram:

    • Добавление и аутентификация личных аккаунтов, включая QR-аутентификацию.
    • Отправка сообщений от имени личных аккаунтов с учетом лимитов.
  3. Парсинг данных:

    • Сбор информации из Telegram групп и каналов.
    • Категоризация пользователей на основе их активности, профилей и биографий.
    • Использование OpenAI для оценки биографий пользователей.
  4. Управление пользователями:

    • Регистрация и аутентификация пользователей.
    • Управление подписками и лимитами.
    • Бан и разбан пользователей.
  5. Управление телефонными номерами:

    • Добавление и удаление номеров.
    • Отслеживание статуса и использования номеров, включая дневные и общие лимиты.
  6. Проведение кампаний:

    • Создание и управление кампаниями парсинга и рассылки.
    • Отслеживание статистики кампаний.
  7. Аналитика и статистика:

    • Сбор и анализ данных о пользователях и их активности.
    • Генерация глобальной статистики.
  8. Интеграция с внешними сервисами:

    • Использование OpenAI API для анализа текста.
    • Интеграция с внешним сервисом чат-бота для обработки сообщений.

Настройка и запуск

  1. Установите зависимости: npm install
  2. Настройте файл .env с необходимыми переменными окружения:
    • API_ID и API_HASH: Credentials для Telegram API
    • USER_BOT_TOKEN и ADMIN_BOT_TOKEN: Токены для ботов
    • POSTGRES_URL, POSTGRES_USER, POSTGRES_DATABASE, POSTGRES_PASSWORD, POSTGRES_PORT, POSTGRES_HOST: Настройки для PostgreSQL
    • ALLOWED_ADMINS: ID администраторов системы
    • OPENAI_API_KEY: Ключ API для OpenAI
    • API_KEY: Ключ API для внешнего сервиса чат-бота
  3. Запустите приложение: npm start

Особенности реализации

  • Использование node-telegram-bot-api для создания Telegram ботов.
  • Применение telegram (также известной как GramJS) для работы с личными аккаунтами Telegram.
  • Реализация QR-аутентификации для Telegram сессий.
  • Использование Winston для продвинутого логирования с ротацией файлов.
  • Интеграция с OpenAI API для анализа биографий пользователей.
  • Модульная структура проекта для удобства поддержки и расширения.

Заключение

Magic Chat представляет собой комплексное решение для управления Telegram аккаунтами, парсинга данных и проведения рассылок. Проект имеет модульную структуру, что облегчает его поддержку и расширение. При дальнейшей разработке рекомендуется уделить внимание улучшению механизмов обработки ошибок, оптимизации производительности при работе с большими объемами данных и расширению функциональности административного интерфейса. Также стоит рассмотреть возможность добавления дополнительных мер безопасности, особенно в части работы с личными аккаунтами Telegram и хранения чувствительных данных.