Magic Chat - это Node.js приложение для управления Telegram аккаунтами и отправки сообщений. Проект включает в себя функциональность для работы как с ботами Telegram, так и с личными аккаунтами пользователей. Основные возможности включают парсинг контактов в Telegram группах, управление телефонными номерами и рассылку сообщений.
Содержит компоненты для работы с API приложения.
- handlers/messageHandler.js: Обработчик сообщений API.
- middleware/checkApiKey.js: Middleware для проверки API ключа.
- routes.js: Определение маршрутов API.
Содержит реализацию ботов Telegram.
Административный бот для управления системой.
- commands/: Команды административного бота.
- helpCommands.js: Команды помощи.
- limitCommands.js: Команды управления лимитами.
- phoneManagementCommands.js: Команды управления телефонными номерами.
- statsCommands.js: Команды для получения статистики.
- subscriptionCommands.js: Команды управления подписками.
- userManagementCommands.js: Команды управления пользователями.
- index.js: Основной файл административного бота.
Пользовательский бот для взаимодействия с клиентами.
- commands/: Команды пользовательского бота.
- accountCommands.js: Команды управления аккаунтом.
- authCommands.js: Команды аутентификации.
- campaignCommands.js: Команды управления кампаниями.
- helpCommands.js: Команды помощи.
- parsingCommands.js: Команды для парсинга.
- phoneCommands.js: Команды управления телефонными номерами.
- index.js: Основной файл пользовательского бота.
- index.js: Конфигурационный файл проекта, содержащий настройки для различных сервисов и API.
Компоненты для работы с базой данных PostgreSQL.
- postgres/: Модули для работы с PostgreSQL.
- admins.js: Операции с таблицей администраторов.
- campaigns.js: Операции с таблицей кампаний.
- config.js: Конфигурация подключения к PostgreSQL.
- parsedUsers.js: Операции с таблицей спарсенных пользователей.
- phoneNumbers.js: Операции с таблицей телефонных номеров.
- utils.js: Вспомогательные функции для работы с PostgreSQL.
- index.js: Основной файл для экспорта функций работы с БД.
Компоненты для обработки и отправки сообщений.
- messageProcessor.js: Обработка входящих сообщений и интеграция с сервисом чат-бота.
- messageSender.js: Отправка сообщений с использованием различных телефонных номеров.
- index.js: Основной файл модуля обмена сообщениями.
Middleware компоненты.
- adminCheck.js: Проверка прав администратора.
- subscriptionCheck.js: Проверка подписки пользователя.
Сервисы приложения.
- authService.js: Сервис аутентификации с использованием Telegram API.
- campaignService.js: Сервис управления кампаниями парсинга и рассылки.
- conversationService.js: Сервис управления диалогами и очистки неактивных разговоров.
- parsingService.js: Основной сервис парсинга данных из Telegram.
- userParser/: Модули для парсинга и категоризации пользователей.
- bioEvaluator.js: Оценка биографий пользователей с использованием OpenAI.
- userCategorizer.js: Категоризация пользователей на основе различных критериев.
- parsingManager.js: Управление процессом парсинга.
- campaignParser.js: Парсинг в рамках кампаний.
- phoneNumberService.js: Сервис управления телефонными номерами, включая статистику использования.
- phoneService.js: Общий сервис для работы с телефонными номерами.
- qrCodeService.js: Сервис генерации QR-кодов для аутентификации.
- telegramSessionService.js: Сервис управления сессиями Telegram, включая QR-аутентификацию.
- statsService.js: Сервис сбора и обработки глобальной статистики.
- accountService.js: Сервис управления аккаунтами пользователей.
- limitService.js: Сервис управления лимитами пользователей.
- subscriptionService.js: Сервис управления подписками пользователей.
- userService.js: Общий сервис для работы с пользователями, включая бан/разбан.
Утилиты и вспомогательные функции.
- helpers.js: Общие вспомогательные функции, такие как разделение текста на предложения.
- logger.js: Модуль логирования с использованием Winston и ротацией логов.
- userUtils.js: Утилиты для работы с пользователями, включая получение ID пользователя.
Точка входа в приложение, инициализирующая основные компоненты и обработчики.
Основной файл приложения, инициализирующий Telegram клиент и настраивающий обработчики событий.
-
Управление ботами:
- Административный бот для управления системой.
- Пользовательский бот для взаимодействия с клиентами.
-
Работа с личными аккаунтами Telegram:
- Добавление и аутентификация личных аккаунтов, включая QR-аутентификацию.
- Отправка сообщений от имени личных аккаунтов с учетом лимитов.
-
Парсинг данных:
- Сбор информации из Telegram групп и каналов.
- Категоризация пользователей на основе их активности, профилей и биографий.
- Использование OpenAI для оценки биографий пользователей.
-
Управление пользователями:
- Регистрация и аутентификация пользователей.
- Управление подписками и лимитами.
- Бан и разбан пользователей.
-
Управление телефонными номерами:
- Добавление и удаление номеров.
- Отслеживание статуса и использования номеров, включая дневные и общие лимиты.
-
Проведение кампаний:
- Создание и управление кампаниями парсинга и рассылки.
- Отслеживание статистики кампаний.
-
Аналитика и статистика:
- Сбор и анализ данных о пользователях и их активности.
- Генерация глобальной статистики.
-
Интеграция с внешними сервисами:
- Использование OpenAI API для анализа текста.
- Интеграция с внешним сервисом чат-бота для обработки сообщений.
- Установите зависимости:
npm install
- Настройте файл
.env
с необходимыми переменными окружения:API_ID
иAPI_HASH
: Credentials для Telegram APIUSER_BOT_TOKEN
иADMIN_BOT_TOKEN
: Токены для ботовPOSTGRES_URL
,POSTGRES_USER
,POSTGRES_DATABASE
,POSTGRES_PASSWORD
,POSTGRES_PORT
,POSTGRES_HOST
: Настройки для PostgreSQLALLOWED_ADMINS
: ID администраторов системыOPENAI_API_KEY
: Ключ API для OpenAIAPI_KEY
: Ключ API для внешнего сервиса чат-бота
- Запустите приложение:
npm start
- Использование
node-telegram-bot-api
для создания Telegram ботов. - Применение
telegram
(также известной как GramJS) для работы с личными аккаунтами Telegram. - Реализация QR-аутентификации для Telegram сессий.
- Использование Winston для продвинутого логирования с ротацией файлов.
- Интеграция с OpenAI API для анализа биографий пользователей.
- Модульная структура проекта для удобства поддержки и расширения.
Magic Chat представляет собой комплексное решение для управления Telegram аккаунтами, парсинга данных и проведения рассылок. Проект имеет модульную структуру, что облегчает его поддержку и расширение. При дальнейшей разработке рекомендуется уделить внимание улучшению механизмов обработки ошибок, оптимизации производительности при работе с большими объемами данных и расширению функциональности административного интерфейса. Также стоит рассмотреть возможность добавления дополнительных мер безопасности, особенно в части работы с личными аккаунтами Telegram и хранения чувствительных данных.