mirror of
https://github.com/bia-technologies/os-confluence.git
synced 2026-06-18 20:02:33 +02:00
1. Добавлен метод получения содержимого страницы
2. Добавлен параметр "ОбновитьПриИзмененииСодержимого" в методы "ОбновитьСтраницу" и "СоздатьСтраницуИлиОбновить"
This commit is contained in:
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
Описание.Имя("confluence")
|
Описание.Имя("confluence")
|
||||||
.Версия("1.0.1")
|
.Версия("1.0.2")
|
||||||
.ЗависитОт("json")
|
.ЗависитОт("json")
|
||||||
.ВерсияСреды("1.0.14")
|
.ВерсияСреды("1.0.14")
|
||||||
.ВключитьФайл("readme.md")
|
.ВключитьФайл("readme.md")
|
||||||
|
|||||||
+72
-13
@@ -104,6 +104,7 @@
|
|||||||
Если РезультатЗапроса.КодСостояния = 200 Тогда
|
Если РезультатЗапроса.КодСостояния = 200 Тогда
|
||||||
|
|
||||||
ПарсерJSON = Новый ПарсерJSON;
|
ПарсерJSON = Новый ПарсерJSON;
|
||||||
|
|
||||||
Ответ = ПарсерJSON.ПрочитатьJSON(РезультатЗапроса.Ответ);
|
Ответ = ПарсерJSON.ПрочитатьJSON(РезультатЗапроса.Ответ);
|
||||||
Результат = Ответ.Получить("version");
|
Результат = Ответ.Получить("version");
|
||||||
Если Результат <> Неопределено Тогда
|
Если Результат <> Неопределено Тогда
|
||||||
@@ -125,6 +126,47 @@
|
|||||||
|
|
||||||
КонецФункции // ВерсияСтраницыПоИдентификатору()
|
КонецФункции // ВерсияСтраницыПоИдентификатору()
|
||||||
|
|
||||||
|
// СодержимоеСтраницыПоИдентификатору
|
||||||
|
// По идентификатору страницы получает ее содержимое
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// ПараметрыПодключения - Структура - Параметры подключения полученные методом ОписаниеПодключения
|
||||||
|
// Идентификатор - Строка - Идентификатор страницы
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Строка - Тело страницы
|
||||||
|
//
|
||||||
|
Функция СодержимоеСтраницыПоИдентификатору(ПараметрыПодключения, Идентификатор) Экспорт
|
||||||
|
|
||||||
|
Тело = "";
|
||||||
|
URL = ПолучитьURLОперации(,, Идентификатор) + "&expand=body.storage";
|
||||||
|
РезультатЗапроса = ВыполнитьHTTPЗапрос(ПараметрыПодключения, "GET", URL);
|
||||||
|
|
||||||
|
Если РезультатЗапроса.КодСостояния = 200 Тогда
|
||||||
|
|
||||||
|
ПарсерJSON = Новый ПарсерJSON;
|
||||||
|
Регексп = Новый РегулярноеВыражение("""body"":{""storage"":{""value"":""([\w\W]*?)"",""representation"":""storage");
|
||||||
|
Регексп.Многострочный = ИСТИНА;
|
||||||
|
Ответ = Регексп.НайтиСовпадения(РезультатЗапроса.Ответ);
|
||||||
|
Если Ответ.Количество() Тогда
|
||||||
|
|
||||||
|
Тело = Ответ[0].Группы[1].Значение;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Иначе
|
||||||
|
|
||||||
|
ВызватьИсключение "Ошибка получения версии страницы:" + Идентификатор +
|
||||||
|
"Запрос: " + URL + "
|
||||||
|
|КодСостояния: " + РезультатЗапроса.КодСостояния + "
|
||||||
|
|Ответ: " + РезультатЗапроса.Ответ;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат Тело;
|
||||||
|
|
||||||
|
КонецФункции // СодержимоеСтраницыПоИдентификатору()
|
||||||
|
|
||||||
// ПодчиненныеСтраницыПоИдентификатору
|
// ПодчиненныеСтраницыПоИдентификатору
|
||||||
// Возвращает таблицу с подчиненными страницами
|
// Возвращает таблицу с подчиненными страницами
|
||||||
//
|
//
|
||||||
@@ -241,17 +283,18 @@
|
|||||||
// Выполняет обновление существующей страницы
|
// Выполняет обновление существующей страницы
|
||||||
//
|
//
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// ПараметрыПодключения - Структура - Параметры подключения полученные методом ОписаниеПодключения
|
// ПараметрыПодключения - Структура - Параметры подключения полученные методом ОписаниеПодключения
|
||||||
// КодПространства - Строка - Код пространства confluence
|
// КодПространства - Строка - Код пространства confluence
|
||||||
// ИмяСтраницы - Строка - Наименование страницы (заголовок)
|
// ИмяСтраницы - Строка - Наименование страницы (заголовок)
|
||||||
// Идентификатор - Строка - идентификатор страницы. Если идентификатор указан,
|
// Идентификатор - Строка - идентификатор страницы. Если идентификатор указан,
|
||||||
// то при обновлении страницы наименование будет установлено из параметра ИмяСтраницы
|
// то при обновлении страницы наименование будет установлено из параметра ИмяСтраницы
|
||||||
// Содержимое - Строка - Содержимое (тело) страницы. Текст должен обработан, т.е. экранированы спец символы для помещения в JSON
|
// Содержимое - Строка - Содержимое (тело) страницы. Текст должен обработан, т.е. экранированы спец символы для помещения в JSON
|
||||||
|
// ОбновитьПриИзмененииСодержимого - Булево - обновлять страницу, только если содержимое изменилось, иначе всегда обновлять
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// Строка - Идентификатор обновленной страницы
|
// Строка - Идентификатор обновленной страницы
|
||||||
//
|
//
|
||||||
Функция ОбновитьСтраницу(ПараметрыПодключения, КодПространства, ИмяСтраницы = "", Знач Идентификатор = "", Содержимое = "") Экспорт
|
Функция ОбновитьСтраницу(ПараметрыПодключения, КодПространства, ИмяСтраницы = "", Знач Идентификатор = "", Содержимое = "", ОбновитьПриИзмененииСодержимого = ЛОЖЬ) Экспорт
|
||||||
|
|
||||||
Если ПустаяСтрока(ИмяСтраницы) И ПустаяСтрока(Идентификатор) Тогда
|
Если ПустаяСтрока(ИмяСтраницы) И ПустаяСтрока(Идентификатор) Тогда
|
||||||
|
|
||||||
@@ -273,6 +316,21 @@
|
|||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ОбновитьПриИзмененииСодержимого Тогда
|
||||||
|
|
||||||
|
ТекущееСодержимое = СодержимоеСтраницыПоИдентификатору(ПараметрыПодключения, Идентификатор);
|
||||||
|
Регексп = Новый РегулярноеВыражение("id=\\""([a-z0-9-]{36})\\""\ ac\:name"); // идентификаторы плагинов меняются
|
||||||
|
Регексп.Многострочный = ИСТИНА;
|
||||||
|
ТекущееСодержимое = Регексп.Заменить(ТекущееСодержимое, "NONE");
|
||||||
|
ВрСодержимое = Регексп.Заменить(Содержимое, "NONE");
|
||||||
|
Если СтрСравнить(СокрЛП(ТекущееСодержимое), СокрЛП(ВрСодержимое)) = 0 Тогда
|
||||||
|
|
||||||
|
Возврат Идентификатор;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
URL = ПолучитьURLОперации(,, Идентификатор);
|
URL = ПолучитьURLОперации(,, Идентификатор);
|
||||||
Версия = ВерсияСтраницыПоИдентификатору(ПараметрыПодключения, Идентификатор);
|
Версия = ВерсияСтраницыПоИдентификатору(ПараметрыПодключения, Идентификатор);
|
||||||
Версия = Формат(Число(Версия) + 1, "ЧГ=");
|
Версия = Формат(Число(Версия) + 1, "ЧГ=");
|
||||||
@@ -316,22 +374,23 @@
|
|||||||
// Создает страницу, если же страница существует, то обновляет
|
// Создает страницу, если же страница существует, то обновляет
|
||||||
//
|
//
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// ПараметрыПодключения - Структура - Параметры подключения полученные методом ОписаниеПодключения
|
// ПараметрыПодключения - Структура - Параметры подключения полученные методом ОписаниеПодключения
|
||||||
// КодПространства - Строка - Код пространства confluence
|
// КодПространства - Строка - Код пространства confluence
|
||||||
// ИмяСтраницы - Строка - Наименование страницы (заголовок)
|
// ИмяСтраницы - Строка - Наименование страницы (заголовок)
|
||||||
// Содержимое - Строка - Содержимое (тело) страницы. Текст должен обработан, т.е. экранированы спец символы для помещения в JSON
|
// Содержимое - Строка - Содержимое (тело) страницы. Текст должен обработан, т.е. экранированы спец символы для помещения в JSON
|
||||||
// ИдентификаторРодителя - Строка - идентификатор родительской страницы
|
// ИдентификаторРодителя - Строка - идентификатор родительской страницы
|
||||||
|
// ОбновитьПриИзмененииСодержимого - Булево - обновлять страницу, только если содержимое изменилось, иначе всегда обновлять
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// Строка - Идентификатор созданной / обновленной страницы
|
// Строка - Идентификатор созданной / обновленной страницы
|
||||||
//
|
//
|
||||||
Функция СоздатьСтраницуИлиОбновить(ПараметрыПодключения, КодПространства, ИмяСтраницы, Содержимое, ИдентификаторРодителя = "")Экспорт
|
Функция СоздатьСтраницуИлиОбновить(ПараметрыПодключения, КодПространства, ИмяСтраницы, Содержимое, ИдентификаторРодителя = "", ОбновитьПриИзмененииСодержимого = ЛОЖЬ)Экспорт
|
||||||
|
|
||||||
Идентификатор = НайтиСтраницуПоИмени(ПараметрыПодключения, КодПространства, ИмяСтраницы);
|
Идентификатор = НайтиСтраницуПоИмени(ПараметрыПодключения, КодПространства, ИмяСтраницы);
|
||||||
|
|
||||||
Если Не ПустаяСтрока(Идентификатор) Тогда
|
Если Не ПустаяСтрока(Идентификатор) Тогда
|
||||||
|
|
||||||
Идентификатор = ОбновитьСтраницу(ПараметрыПодключения, КодПространства, ИмяСтраницы, Идентификатор, Содержимое);
|
Идентификатор = ОбновитьСтраницу(ПараметрыПодключения, КодПространства, ИмяСтраницы, Идентификатор, Содержимое, ОбновитьПриИзмененииСодержимого);
|
||||||
|
|
||||||
Иначе
|
Иначе
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user