You've already forked OpenIntegrations
mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-09-16 09:16:24 +02:00
Переработка дженвы
This commit is contained in:
21
.github/workflows/os/cli_parse.os
vendored
21
.github/workflows/os/cli_parse.os
vendored
@@ -1,18 +1,21 @@
|
||||
#Использовать osparser
|
||||
|
||||
Перем КаталогБиблиотеки;
|
||||
Перем ФайлСоставаОПИ;
|
||||
Перем МодульСоставаОПИ;
|
||||
Перем СоответствиеМодулейКоманд;
|
||||
Перем ТекущийМодуль;
|
||||
Перем ТаблицаОписанийПараметров;
|
||||
Перем МассивРасположенийМодулей;
|
||||
|
||||
Процедура ПриСозданииОбъекта()
|
||||
|
||||
МодульСоставаОПИ = Новый ТекстовыйДокумент();
|
||||
КаталогБиблиотеки = "./OInt/core/Modules";
|
||||
ФайлСоставаОПИ = "./cli/data/Modules/СоставБиблиотеки.os";
|
||||
|
||||
МассивРасположенийМодулей = Новый Массив;
|
||||
МассивРасположенийМодулей.Добавить("./cli/tools/Modules/");
|
||||
МассивРасположенийМодулей.Добавить("./OInt/core/Modules");
|
||||
|
||||
СоответствиеМодулейКоманд = Новый Соответствие();
|
||||
СоответствиеМодулейКоманд.Вставить("OPI_Telegram" , "telegram");
|
||||
СоответствиеМодулейКоманд.Вставить("OPI_VK" , "vk");
|
||||
@@ -24,6 +27,7 @@
|
||||
СоответствиеМодулейКоманд.Вставить("OPI_GoogleWorkspace", "google");
|
||||
СоответствиеМодулейКоманд.Вставить("OPI_GoogleCalendar" , "gcalendar");
|
||||
СоответствиеМодулейКоманд.Вставить("OPI_GoogleDrive" , "gdrive");
|
||||
СоответствиеМодулейКоманд.Вставить("Дженва" , "jenva");
|
||||
|
||||
МодульСоставаОПИ.ДобавитьСтроку("Функция ПолучитьСоответствиеКомандМодулей() Экспорт");
|
||||
МодульСоставаОПИ.ДобавитьСтроку("СоответствиеКомандМодулей = Новый Соответствие();");
|
||||
@@ -69,9 +73,18 @@
|
||||
|
||||
Процедура ЗаполнитьТаблицуСостава()
|
||||
|
||||
ФайлыМодулей = НайтиФайлы(КаталогБиблиотеки, "*.os");
|
||||
ОбщийМассивМодулей = Новый Массив;
|
||||
|
||||
Для Каждого Модуль Из ФайлыМодулей Цикл
|
||||
Для Каждого Расположение Из МассивРасположенийМодулей Цикл
|
||||
ФайлыМодулей = НайтиФайлы(Расположение, "*.os");
|
||||
|
||||
Для Каждого Модуль Из ФайлыМодулей Цикл
|
||||
ОбщийМассивМодулей.Добавить(Модуль);
|
||||
КонецЦикла;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Для Каждого Модуль Из ОбщийМассивМодулей Цикл
|
||||
|
||||
ТекущийМодуль = Модуль.ИмяБезРасширения;
|
||||
|
||||
|
@@ -7,7 +7,6 @@
|
||||
Перем Парсер;
|
||||
Перем Отладка;
|
||||
Перем Тестирование;
|
||||
Перем РежимВывода;
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
@@ -79,8 +78,6 @@
|
||||
|
||||
УстановитьРежимОтладки(Параметры);
|
||||
УстановитьРежимТеста(Параметры);
|
||||
УстановитьРежимВывода(Параметры);
|
||||
|
||||
|
||||
Если Отладка Или Тестирование Тогда
|
||||
|
||||
@@ -239,15 +236,6 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура УстановитьРежимВывода(Знач Параметры)
|
||||
|
||||
Если нРег(Строка(Параметры["--out"])) = "jenva" Тогда
|
||||
РежимВывода = "Jenva";
|
||||
Иначе
|
||||
РежимВывода = "Normal";
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура СообщитьРезультат(Знач Текст, Знач Статус = "")
|
||||
|
||||
@@ -255,13 +243,10 @@
|
||||
Статус = СтатусСообщения.БезСтатуса;
|
||||
КонецЕсли;
|
||||
|
||||
Если РежимВывода = "Jenva" Тогда
|
||||
Дженва.ЗаполнитьПараметрыОкружения(Текст);
|
||||
Иначе
|
||||
Сообщить(Текст, Статус);
|
||||
КонецЕсли;
|
||||
Сообщить(Текст, Статус);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
@@ -1,10 +1,21 @@
|
||||
Перем МаксимальнаяВложенность;
|
||||
Перем ИскомыйПараметр;
|
||||
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
Процедура ЗаполнитьПараметрыОкружения(Знач JSON, Знач МаксимальныйУровеньВложенности = 0, Знач Префикс = "jenva") Экспорт
|
||||
|
||||
// Разложить JSON на параметры
|
||||
// Показывает значения, которые можно получить из переданного JSON и возвращает
|
||||
// конкретное значение при указании имени поля
|
||||
//
|
||||
// Параметры:
|
||||
// JSON - Строка - JSON данные - json
|
||||
// МаксимальныйУровеньВложенности - Строка - Ограничение на уровень вложенности поля. Разбирает на всю глубину по умолчанию - nesting
|
||||
// ИмяПараметра - Строка - Имя поля, значение которого необходимо получить. Выводит весь список доступных, если не указано - name
|
||||
//
|
||||
Процедура РазложитьJSONНаПараметры(Знач JSON, Знач МаксимальныйУровеньВложенности = 0, Знач ИмяПараметра = "") Экспорт
|
||||
|
||||
МаксимальнаяВложенность = МаксимальныйУровеньВложенности;
|
||||
Префикс = Префикс + "_";
|
||||
ИскомыйПараметр = ИмяПараметра;
|
||||
|
||||
Если ТипЗнч(JSON) = Тип("Строка") Тогда
|
||||
НормализоватьТекстовыйВвод(JSON);
|
||||
@@ -16,36 +27,60 @@
|
||||
ВызватьИсключение "Ошибка преобразовани данных параметра JSON";
|
||||
КонецЕсли;
|
||||
|
||||
ПрисвоитьЗначенияРекурсивно(JSON, Префикс);
|
||||
Значение = ПолучитьЗначенияРекурсивно(JSON);
|
||||
|
||||
Если ЗначениеЗаполнено(Значение) Тогда
|
||||
Сообщить(Значение, СтатусСообщения.Информация);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
Процедура ПрисвоитьЗначенияРекурсивно(Знач JSON, Знач Префикс, Знач ТекущаяВложенность = 1)
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Функция ПолучитьЗначенияРекурсивно(Знач JSON, Знач Префикс = "", Знач ТекущаяВложенность = 1)
|
||||
|
||||
ВозвращаемоеЗначение = "";
|
||||
|
||||
Для Каждого Пара Из JSON Цикл
|
||||
|
||||
Значение = Пара.Значение;
|
||||
Ключ = Строка(Пара.Ключ);
|
||||
Ключ = Префикс + Строка(Пара.Ключ);
|
||||
|
||||
ЭтоКоллекция = ТипЗнч(Значение) = Тип("Соответствие") Или ТипЗнч(Значение) = Тип("Структура");
|
||||
СледующаяВложенность = ТекущаяВложенность + 1;
|
||||
СледующаяВложенностьДоступна = МаксимальнаяВложенность = 0 Или СледующаяВложенность <= МаксимальнаяВложенность;
|
||||
|
||||
Если Не ЭтоКоллекция Или Не СледующаяВложенностьДоступна Тогда
|
||||
ПеременнаяСреды = Префикс + Ключ;
|
||||
ПеременнаяСреды = Ключ;
|
||||
ПолучитьСтроку(Значение);
|
||||
УстановитьПеременнуюСреды(ПеременнаяСреды, Значение, РасположениеПеременнойСреды.Пользователь);
|
||||
Сообщить("$" + ПеременнаяСреды + " = " + Значение, СтатусСообщения.Информация);
|
||||
|
||||
Если Не ЗначениеЗаполнено(ИскомыйПараметр) Тогда
|
||||
Сообщить(ПеременнаяСреды + " = " + Значение, СтатусСообщения.Информация);
|
||||
Иначе
|
||||
|
||||
Если ПеременнаяСреды = ИскомыйПараметр Тогда
|
||||
ВозвращаемоеЗначение = Значение;
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
НовыйПрефикс = Префикс + Ключ + "_";
|
||||
ПрисвоитьЗначенияРекурсивно(Значение, НовыйПрефикс, СледующаяВложенность);
|
||||
НовыйПрефикс = Ключ + "_";
|
||||
ВозвращаемоеЗначение = ПолучитьЗначенияРекурсивно(Значение, НовыйПрефикс, СледующаяВложенность);
|
||||
|
||||
Если ЗначениеЗаполнено(ВозвращаемоеЗначение) Тогда
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
Возврат ВозвращаемоеЗначение;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ПолучитьСтроку(Значение)
|
||||
|
||||
@@ -140,4 +175,6 @@
|
||||
Или ТипЗнч(Значение) = Тип("Структура")
|
||||
Или ТипЗнч(Значение) = Тип("Соответствие");
|
||||
|
||||
КонецФункции
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
Reference in New Issue
Block a user