# ===========================================================================

# NG CMS // Плагины // парсер новостей

# ===========================================================================

Плагин "Content Parser" предназначен для автоматического парсинга контента из различных источников
и создания новостей на основе полученных данных. Поддерживает RSS-каналы, Telegram, VK и Instagram.
Он интегрируется с NGCMS и использует встроенные функции системы для добавления новостей в базу данных.
Плагин подходит для сайтов, которые хотят автоматизировать процесс наполнения контентом из внешних источников.

# ===========================================================================

# Требования к системе

# ===========================================================================

CMS: Плагин разработан для NGCMS 0.9.7 и выше
PHP: Версия PHP 8.0 или выше (PHP 8.2+ рекомендуется для Telegram)
Библиотеки:

- cURL (для загрузки RSS-каналов и веб-контента)
- SimpleXML (для обработки XML-данных)
- MadelineProto 8.0+ (опционально, для Telegram приватных каналов)
- Composer (для установки MadelineProto)
- NTP синхронизация времени (требуется для MadelineProto)

# ===========================================================================

# Основные функции плагина

# ===========================================================================

1. Парсинг RSS-каналов
   - Загрузка данных из RSS-канала с использованием cURL
   - Извлечение заголовков, описаний и дат публикации
   - Обработка HTML-тегов и очистка контента

2. Парсинг Telegram-каналов
   - Публичные каналы: веб-парсинг через t.me/s/ (без авторизации)
   - Приватные каналы: MadelineProto API с полной авторизацией
   - Веб-интерфейс авторизации в админ-панели (3 шага: телефон → код → 2FA)
   - Автоматическая загрузка медиафайлов на сервер
   - Поддержка BBCode форматирования
   - Проверка статуса авторизации и сброс сессии

3. Парсинг VK-групп
   - Загрузка постов из публичных групп VK
   - Извлечение изображений и текстового контента
   - Требуется VK API токен (настраивается в админ-панели)

4. Парсинг Instagram
   - Загрузка постов пользователей Instagram
   - Извлечение изображений и описаний

5. Создание новостей
   - Автоматическое создание новостей в базе данных
   - Fallback механизм: addNews() → addNewsDirect() при ошибках
   - Транслитерация заголовков для alt_name
   - Проверка дубликатов по заголовку
   - Все новости создаются как черновики (approve=-1)
   - Автоматическая привязка к категории

6. Системные уведомления
   - Toast-уведомления в стиле NGCMS
   - Детальная статистика: добавлено / пропущено / ошибки
   - Отображение первых 5 ошибок с подробностями

7. Логирование
   - Детальные логи в engine/cache/logs/content_parser.log
   - Отслеживание всех этапов парсинга
   - Логирование ошибок PHP в telegram_php_errors.log
   - Отладочная информация для Telegram авторизации

# ===========================================================================

# Установка MadelineProto (для Telegram)

# ===========================================================================

1. Перейдите в папку плагина:
   cd C:\OSPanel\home\it\engine\plugins\content_parser

2. Установите зависимости через Composer:
   composer require danog/madelineproto:^8.0

3. Проверьте, что папка vendor создана и содержит MadelineProto

4. Получите API credentials на https://my.telegram.org/apps:
   - API ID (например: 21386263)
   - API Hash (например: ed12a193b92c6743d5568c776f7e4d39)

5. Введите credentials в админ-панели плагина

6. ВАЖНО: Убедитесь, что время сервера синхронизировано через NTP!
   Windows: w32time служба должна быть запущена и синхронизирована

# ===========================================================================

# Авторизация в Telegram

# ===========================================================================

Для приватных каналов требуется авторизация:

1. Откройте админ-панель плагина
2. Нажмите "Авторизация в Telegram"
3. Введите номер телефона в формате: +77771234567
4. Введите код из Telegram
5. Если включена 2FA - введите пароль облачного доступа
6. Статус авторизации сохраняется в telegram_session.madeline/

Для сброса авторизации нажмите "Сбросить авторизацию" в админ-панели.

# ===========================================================================

# Использование

# ===========================================================================

1. Откройте админ-панель NGCMS
2. Перейдите в раздел "Управление плагинами" → Content Parser → Настройка
3. Выберите источник: RSS / Telegram / VK / Instagram
4. Укажите параметры (URL канала, количество постов, категорию)
5. Нажмите "Начать парсинг"
6. Новости будут добавлены как черновики в выбранную категорию

# ===========================================================================

# Поддержка мультисайтов

# ===========================================================================

Плагин полностью совместим с мультисайт конфигурацией NGCMS.
Автоматическая нормализация путей для загружаемых файлов.

