Обновленные файлы: - 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 файлы и тестовые директории не изменены
5.9 KiB
5.9 KiB
Универсальный парсер судов - Документация
Дата: 17 октября 2025
Статус: ✅ Готов к тестированию
🎯 Что изменилось
Парсер parscourt.php был улучшен для поддержки двух типов судов:
- Региональные суды (*.sudrf.ru) - существующая логика
- Московские суды (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
Тестирование
Для тестирования московских судов:
- Найди проект с ссылкой на
mos-gorsud.ru - Дерни скрипт через дизайнер процессов
- Проверь
logs/parser.log- должно быть "МОСКОВСКИЙ СУД" - Проверь, что данные сохранились в БД
court→ таблицаsubject
🛠️ Расширение функциональности
Добавление нового типа суда
-
Создай новый парсер в
parsers/:class NewCourtParser extends BaseCourtParser { public function canHandle($url) { return preg_match('/your-pattern/', $url); } public function parse($url, $status) { // Твоя логика парсинга } } -
Зарегистрируй в
CourtParserFactory.php:$parsers = [ new NewCourtParser($pdo, $case_number, $uid), new MoscowCourtParser($pdo, $case_number, $uid), new RegionalCourtParser($pdo, $case_number, $uid), ];
📞 Что делать если что-то сломалось
- Проверь логи:
logs/parser.log - Откат на старую версию:
cp parscourt_backup_* parscourt.php - Или отключи новый парсер:
Добавь
use_new_parser=0в POST параметры
✅ Готово к использованию!
Новая версия полностью совместима со старой, но теперь может парсить и московские суды! 🎉