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 файлы и тестовые директории не изменены
This commit is contained in:
162
COURT_PARSER_UPGRADE.md
Normal file
162
COURT_PARSER_UPGRADE.md
Normal file
@@ -0,0 +1,162 @@
|
||||
# Универсальный парсер судов - Документация
|
||||
|
||||
**Дата:** 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 параметры
|
||||
|
||||
## ✅ Готово к использованию!
|
||||
|
||||
Новая версия полностью совместима со старой, но теперь может парсить и московские суды! 🎉
|
||||
|
||||
|
||||
Reference in New Issue
Block a user