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

163 lines
5.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Универсальный парсер судов - Документация
**Дата:** 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: Автоматический режим (рекомендуется)
Используйте как раньше - ничего не меняя:
```http
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: Принудительно старый парсер
Если хочешь отключить новую логику (для отладки):
```http
POST /parscourt.php
status=...
link1=...
case_number=...
uid=...
use_new_parser=0 ← ДОБАВИТЬ ЭТО
```
## 📊 Пример ответа (не изменился)
```json
{
"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/`:
```php
class NewCourtParser extends BaseCourtParser {
public function canHandle($url) {
return preg_match('/your-pattern/', $url);
}
public function parse($url, $status) {
// Твоя логика парсинга
}
}
```
2. Зарегистрируй в `CourtParserFactory.php`:
```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. **Откат на старую версию:**
```bash
cp parscourt_backup_* parscourt.php
```
3. **Или отключи новый парсер:**
Добавь `use_new_parser=0` в POST параметры
## ✅ Готово к использованию!
Новая версия полностью совместима со старой, но теперь может парсить и московские суды! 🎉