Files
crm.clientright.ru/COURT_PARSER_UPGRADE.md
Fedor 75d3f7942b feat: Обновлены все URL Nextcloud с office.klientprav.tech на office.clientright.ru
Обновленные файлы:
- crm_extensions/nextcloud_api.php (2 места)
- modules/Documents/actions/NcPrepareEdit.php
- crm_extensions/nextcloud_editor/js/nextcloud-editor.js
- crm_extensions/file_storage/api/get_edit_urls.php
- crm_extensions/file_storage/api/simple_edit.php
- crm_extensions/README.md
- NEXTCLOUD_EDIT_BUTTON_IMPLEMENTATION.md
- crm_extensions/docs/NEXTCLOUD_EDITOR.md
- test_syntax_check.html
- crm_extensions/tests/test_edit_button.html

Все ссылки теперь указывают на новый сервер office.clientright.ru
Backup файлы и тестовые директории не изменены
2025-10-20 17:17:34 +03:00

5.9 KiB
Raw Blame History

Универсальный парсер судов - Документация

Дата: 17 октября 2025
Статус: Готов к тестированию

🎯 Что изменилось

Парсер parscourt.php был улучшен для поддержки двух типов судов:

  1. Региональные суды (*.sudrf.ru) - существующая логика
  2. Московские суды (mos-gorsud.ru) - НОВОЕ!

📋 Обратная совместимость

ВСЕ СУЩЕСТВУЮЩИЕ ИНТЕГРАЦИИ ПРОДОЛЖАТ РАБОТАТЬ БЕЗ ИЗМЕНЕНИЙ!

  • Вход (POST параметры) - НЕ ИЗМЕНИЛСЯ
  • Выход (JSON ответ) - НЕ ИЗМЕНИЛСЯ
  • Сохранение в БД - НЕ ИЗМЕНИЛОСЬ

🔧 Как это работает

Автоматическое определение типа суда

Скрипт автоматически определяет тип суда по URL:

  • sverdlov--perm.sudrf.ruРегиональный парсер
  • mos-gorsud.ruМосковский парсер

Fallback механизм

Если новый парсер не сработает, скрипт автоматически переключится на старый (проверенный) код.

📂 Новая структура файлов

/var/www/fastuser/data/www/crm.clientright.ru/
├── parscourt.php                        # Главный скрипт (улучшенный)
├── parscourt_backup_YYYYMMDD_HHMMSS.php # Резервная копия (старый)
└── parsers/
    ├── BaseCourtParser.php             # Базовый класс
    ├── RegionalCourtParser.php         # Парсер для региональных судов
    ├── MoscowCourtParser.php           # Парсер для московских судов
    └── CourtParserFactory.php          # Фабрика парсеров

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

Вариант 1: Автоматический режим (рекомендуется)

Используйте как раньше - ничего не меняя:

POST /parscourt.php

status=представительство в суде 1й инстанции
link1=https://sverdlov--perm.sudrf.ru/modules.php?name=sud_delo...
case_number=2-5352/2025
uid=59RS0007-01-2025-006357-84

Вариант 2: Принудительно старый парсер

Если хочешь отключить новую логику (для отладки):

POST /parscourt.php

status=...
link1=...
case_number=...
uid=...
use_new_parser=0  ← ДОБАВИТЬ ЭТО

📊 Пример ответа (не изменился)

{
  "status": "success",
  "message": "Парсинг завершен.",
  "last_event": {
    "Наименование": "Предварительное судебное заседание",
    "Дата": "16.10.2025",
    "Время": "10:00",
    "Место": "Зал судебных заседаний №1",
    "Результат": "Отложено",
    "Основание": "...",
    "Примечание": "...",
    "Дата размещения": "15.10.2025"
  }
}

🔍 Логирование

Все логи пишутся в logs/parser.log:

[2025-10-17 10:00:00] ========================================
[2025-10-17 10:00:00] Режим парсера: НОВЫЙ (универсальный)
[2025-10-17 10:00:00] Выбран парсер: MoscowCourtParser
[2025-10-17 10:00:01] Старт парсинга 2-5352/2025 для статуса: ... (МОСКОВСКИЙ СУД)

⚠️ Важные моменты

Московские суды

Московские суды имеют другую структуру HTML, поэтому:

  • Парсер пытается определить структуру автоматически
  • Может потребоваться тонкая настройка после первых тестов
  • Если структура страницы неизвестна - используется fallback

Тестирование

Для тестирования московских судов:

  1. Найди проект с ссылкой на mos-gorsud.ru
  2. Дерни скрипт через дизайнер процессов
  3. Проверь logs/parser.log - должно быть "МОСКОВСКИЙ СУД"
  4. Проверь, что данные сохранились в БД court → таблица subject

🛠️ Расширение функциональности

Добавление нового типа суда

  1. Создай новый парсер в parsers/:

    class NewCourtParser extends BaseCourtParser {
        public function canHandle($url) {
            return preg_match('/your-pattern/', $url);
        }
    
        public function parse($url, $status) {
            // Твоя логика парсинга
        }
    }
    
  2. Зарегистрируй в CourtParserFactory.php:

    $parsers = [
        new NewCourtParser($pdo, $case_number, $uid),
        new MoscowCourtParser($pdo, $case_number, $uid),
        new RegionalCourtParser($pdo, $case_number, $uid),
    ];
    

📞 Что делать если что-то сломалось

  1. Проверь логи: logs/parser.log
  2. Откат на старую версию:
    cp parscourt_backup_* parscourt.php
    
  3. Или отключи новый парсер: Добавь use_new_parser=0 в POST параметры

Готово к использованию!

Новая версия полностью совместима со старой, но теперь может парсить и московские суды! 🎉