mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-04-02 22:05:37 +02:00
Правки по CLI
This commit is contained in:
parent
419cedd743
commit
d546b737c6
@ -6,58 +6,74 @@
|
||||
Перем ОбъектОПИ;
|
||||
Перем Парсер;
|
||||
|
||||
Процедура ПриСозданииОбъекта()
|
||||
|
||||
ОбъектОПИ = Новый СвязьОПИ();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
#Область Основные
|
||||
|
||||
Процедура ОсновнойОбработчик()
|
||||
|
||||
Парсер = Новый ПарсерАргументовКоманднойСтроки();
|
||||
Парсер = Новый ПарсерАргументовКоманднойСтроки();
|
||||
ОбъектОПИ = Новый СвязьОПИ();
|
||||
Команды = ОбъектОПИ.СоответствиеКомандМодулей;
|
||||
|
||||
Для Каждого Команда Из ОбъектОПИ.ПолучитьИмяМодуля() Цикл
|
||||
ДобавитьКомандуСправки();
|
||||
|
||||
Для Каждого Команда Из Команды Цикл
|
||||
СформироватьКоманду(Команда.Ключ, Парсер);
|
||||
КонецЦикла;
|
||||
|
||||
Результат = Парсер.Разобрать(АргументыКоманднойСтроки);
|
||||
ТекущаяКоманда = Результат["Команда"];
|
||||
|
||||
|
||||
Если ТекущаяКоманда = Неопределено Тогда
|
||||
Справка.ВывестиНачальнуюСтраницу();
|
||||
Справка.ВывестиНачальнуюСтраницу(Команды);
|
||||
Иначе
|
||||
ВыполнитьОбработкуКоманды(Результат);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ДобавитьКомандуСправки()
|
||||
|
||||
Парсер.ДобавитьПараметр("-h");
|
||||
Парсер.ДобавитьПараметр("-help");
|
||||
Парсер.ДобавитьПараметр("--help");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура СформироватьКоманду(Знач Имя, Парсер)
|
||||
|
||||
Команда = Парсер.ОписаниеКоманды(Имя);
|
||||
ТаблицаПараметров = ОбъектОПИ.ПолучитьТаблицуПараметров(Имя).Скопировать();
|
||||
Парсер.ДобавитьПозиционныйПараметрКоманды(Команда, "Метод");
|
||||
|
||||
ДобавитьПараметрыКоманды(Парсер, Команда, ТаблицаПараметров);
|
||||
|
||||
Парсер.ДобавитьКоманду(Команда);
|
||||
ТаблицаПараметров = ОбъектОПИ.СоответствиеТаблицПараметров[Имя];
|
||||
|
||||
Если Не ТаблицаПараметров = Неопределено Тогда
|
||||
|
||||
ТаблицаПараметров = ТаблицаПараметров.Скопировать();
|
||||
Парсер.ДобавитьПозиционныйПараметрКоманды(Команда, "Метод");
|
||||
|
||||
ДобавитьПараметрыКоманды(Парсер, Команда, ТаблицаПараметров);
|
||||
Парсер.ДобавитьПараметрФлагКоманды(Команда, "--help");
|
||||
|
||||
Парсер.ДобавитьКоманду(Команда);
|
||||
|
||||
Иначе
|
||||
Справка.ВывестиСообщениеИсключения("Команда");
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ВыполнитьОбработкуКоманды(Знач Данные)
|
||||
|
||||
ТекущаяКоманда = Данные["Команда"];
|
||||
Параметры = Данные["ЗначенияПараметров"];
|
||||
Вывод = "";
|
||||
|
||||
Попытка
|
||||
|
||||
Вывод = ПолучитьРезультатОбработки(ТекущаяКоманда, Данные);
|
||||
ОбработатьВыводJSON(Вывод);
|
||||
Вывод = ПолучитьРезультатОбработки(ТекущаяКоманда, Параметры);
|
||||
|
||||
Если ЗначениеЗаполнено(Вывод) Тогда
|
||||
ОбработатьВыводJSON(Вывод);
|
||||
Сообщить(Символы.ПС + Вывод + Символы.ПС, СтатусСообщения.Внимание);
|
||||
КонецЕсли;
|
||||
|
||||
@ -66,37 +82,33 @@
|
||||
Если ЗначениеЗаполнено(Вывод) Тогда
|
||||
Сообщить(Вывод);
|
||||
Иначе
|
||||
Сообщить(ОписаниеОшибки(), СтатусСообщения.ОченьВажное);
|
||||
Сообщить(Символы.ПС);
|
||||
Справка.ВывестиСообщениеИсключения(КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
КонецЕсли;
|
||||
|
||||
КонецПопытки;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ПолучитьРезультатОбработки(Знач Команда, Знач Данные)
|
||||
Функция ПолучитьРезультатОбработки(Знач Команда, Знач Параметры)
|
||||
|
||||
Модуль = ОбъектОПИ.ПолучитьИмяМодуля(Команда);
|
||||
Параметры = Данные["ЗначенияПараметров"];
|
||||
Модуль = ОбъектОПИ.СоответствиеКомандМодулей[Команда];
|
||||
Метод = Параметры["Метод"];
|
||||
Ответ = "<пустой возврат>";
|
||||
Ответ = "Функция вернула пустое значение";
|
||||
|
||||
ТаблицаПараметров = ОбъектОПИ.ПолучитьТаблицуПараметров(Команда);
|
||||
ТаблицаПараметров = ОбъектОПИ.СоответствиеТаблицПараметров[Команда];
|
||||
|
||||
Если Не ЗначениеЗаполнено(Метод) Тогда
|
||||
Если Не ЗначениеЗаполнено(Метод) Или Метод = "--help" Тогда
|
||||
Справка.ВывестиСправкуПоМетодам(Команда, ТаблицаПараметров);
|
||||
Возврат "";
|
||||
КонецЕсли;
|
||||
|
||||
ОтборКоманды = Новый Структура("МетодПоиска", вРег(Метод));
|
||||
ПараметрыМетода = ТаблицаПараметров.НайтиСтроки(ОтборКоманды);
|
||||
|
||||
Если Параметры.Количество() = 1 Тогда
|
||||
Если Параметры.Количество() = 2 Или Параметры["--help"] = Истина Тогда
|
||||
Справка.ВывестиСправкуПоПараметрам(ПараметрыМетода, Команда);
|
||||
Возврат "";
|
||||
КонецЕсли;
|
||||
|
||||
ТекстВыполнения = СформироватьСтрокуВызоваМетода(Параметры, ПараметрыМетода, Модуль, Метод);
|
||||
ТекстВыполнения = СформироватьСтрокуВызоваМетода(Параметры, ПараметрыМетода, Модуль, Метод);
|
||||
|
||||
Выполнить(ТекстВыполнения);
|
||||
|
||||
@ -156,6 +168,7 @@
|
||||
|
||||
СтрокаВызова = СтрокаВызова + ИмяПараметра + ", ";
|
||||
Счетчик = Счетчик + 1;
|
||||
|
||||
Иначе
|
||||
СтрокаВызова = СтрокаВызова + " , ";
|
||||
КонецЕсли;
|
||||
@ -176,8 +189,9 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
|
||||
ПриСозданииОбъекта();
|
||||
Попытка
|
||||
ОсновнойОбработчик();
|
||||
|
||||
Исключение
|
||||
Справка.ВывестиСообщениеИсключения(КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
КонецПопытки;
|
||||
|
||||
|
@ -1,21 +1,12 @@
|
||||
#Использовать "../../tools"
|
||||
|
||||
Перем ОбъектОПИ;
|
||||
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
Процедура ПриСозданииОбъекта()
|
||||
|
||||
ОбъектОПИ = Новый СвязьОПИ;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ВывестиНачальнуюСтраницу() Экспорт
|
||||
Процедура ВывестиНачальнуюСтраницу(Знач СоответствиеКомандМодулей) Экспорт
|
||||
|
||||
СписокКоманд = "";
|
||||
Модули = ОбъектОПИ.ПолучитьИмяМодуля();
|
||||
|
||||
Для Каждого Команда Из Модули Цикл
|
||||
Для Каждого Команда Из СоответствиеКомандМодулей Цикл
|
||||
СписокКоманд = СписокКоманд + Команда.Ключ + ", ";
|
||||
КонецЦикла;
|
||||
|
||||
@ -44,6 +35,8 @@
|
||||
|
||||
Сообщить("Полную документацию можно найти по адресу: https://opi.neocities.org" + Символы.ПС
|
||||
, СтатусСообщения.Информация);
|
||||
|
||||
ЗавершитьРаботу(0);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@ -62,22 +55,28 @@
|
||||
|
||||
Сообщить(Символы.ПС);
|
||||
|
||||
ЗавершитьРаботу(0);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ВывестиСправкуПоПараметрам(Знач ТаблицаПараметров, Знач Команда) Экспорт
|
||||
|
||||
Если ТаблицаПараметров.Количество() = 0 Тогда
|
||||
Возврат;
|
||||
ВывестиСообщениеИсключения("Метод");
|
||||
КонецЕсли;
|
||||
|
||||
ИмяМетода = ТаблицаПараметров[0].Метод;
|
||||
ТекстСправки = "";
|
||||
|
||||
Сообщить("
|
||||
Дополнение = СформироватьДополненеОписания(Команда);
|
||||
ИмяМетода = ТаблицаПараметров[0].Метод;
|
||||
ТекстСправки = "
|
||||
| ## Метод " + ИмяМетода + "
|
||||
| ## " + ТаблицаПараметров[0].ОписаниеМетода + "
|
||||
| " + ОбъектОПИ.ДополнениеОписанияПараметров[Команда] + "
|
||||
| ", СтатусСообщения.Информация);
|
||||
| ## " + ТаблицаПараметров[0].ОписаниеМетода;
|
||||
|
||||
Если ЗначениеЗаполнено(Дополнение) Тогда
|
||||
ТекстСправки = Символы.ПС + ТекстСправки + Дополнение + Символы.ПС;
|
||||
КонецЕсли;
|
||||
|
||||
Сообщить(ТекстСправки, СтатусСообщения.Информация);
|
||||
ТекстСправки = "";
|
||||
|
||||
ОбработатьТабуляциюСправки(ТаблицаПараметров);
|
||||
|
||||
@ -93,22 +92,44 @@
|
||||
КонецЦикла;
|
||||
|
||||
Сообщить(ТекстСправки + Символы.ПС, СтатусСообщения.Внимание);
|
||||
|
||||
ЗавершитьРаботу(0);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ВывестиСообщениеИсключения(Знач Причина) Экспорт
|
||||
|
||||
Если Причина = "Команда" Тогда
|
||||
Текст = "Некорректная команда! Проверьте правильность ввода";
|
||||
Код = 1;
|
||||
|
||||
ИначеЕсли Причина = "Метод" Тогда
|
||||
Текст = "Некорректный метод! Проверьте правильность ввода";
|
||||
Код = 2;
|
||||
|
||||
Иначе
|
||||
Текст = "Непредвиденная ошибка!: " + Причина;
|
||||
Код = 99
|
||||
КонецЕсли;
|
||||
|
||||
Текст = Символы.ПС + Текст + Символы.ПС;
|
||||
|
||||
Сообщить(Текст, СтатусСообщения.ОченьВажное);
|
||||
ЗавершитьРаботу(Код);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Процедура ОбработатьТабуляциюСправки(ТаблицаПараметров)
|
||||
|
||||
МаксимальнаяДлина = 0;
|
||||
|
||||
МаксимальнаяДлина = 15;
|
||||
|
||||
Для Каждого ПараметрМетода Из ТаблицаПараметров Цикл
|
||||
|
||||
ДлинаТекущего = СтрДлина(ПараметрМетода["Параметр"]);
|
||||
МаксимальнаяДлина = ?(ДлинаТекущего > МаксимальнаяДлина, ДлинаТекущего, МаксимальнаяДлина);
|
||||
|
||||
Пока Не СтрДлина(ПараметрМетода["Параметр"]) = МаксимальнаяДлина Цикл
|
||||
ПараметрМетода["Параметр"] = ПараметрМетода["Параметр"] + " ";
|
||||
КонецЦикла;
|
||||
@ -139,7 +160,27 @@
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
Функция СформироватьДополненеОписания(Команда)
|
||||
|
||||
Если Команда = "vk" Тогда
|
||||
ТекстДополнения = "
|
||||
| Структура JSON данных авторизации (параметр --auth):
|
||||
| {
|
||||
| ""access_token"": """",
|
||||
| ""from_group"" : ""1"",
|
||||
| ""owner_id"" : """",
|
||||
| ""v"" : ""5.131"",
|
||||
| ""app_id"" : """",
|
||||
| ""group_id"" : """"
|
||||
| }
|
||||
|";
|
||||
|
||||
Иначе
|
||||
ТекстДополнения = "";
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ТекстДополнения;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
ПриСозданииОбъекта();
|
||||
|
@ -1,8 +1,7 @@
|
||||
#Использовать "../../data"
|
||||
|
||||
Перем СоответствиеТаблицПараметров;
|
||||
Перем СоответствиеКомандМодулей;
|
||||
Перем ДополнениеОписанияПараметров Экспорт;
|
||||
Перем СоответствиеТаблицПараметров Экспорт;
|
||||
Перем СоответствиеКомандМодулей Экспорт;
|
||||
|
||||
Процедура ПриСозданииОбъекта()
|
||||
|
||||
@ -13,8 +12,6 @@
|
||||
ТекущаяБиблиотека = "";
|
||||
ТекущаяТаблица = "";
|
||||
|
||||
СформироватьДополненяОписаний();
|
||||
|
||||
Для Каждого СтрокаСостава Из ТаблицаСостава Цикл
|
||||
|
||||
Если ТекущаяБиблиотека <> СтрокаСостава.Библиотека Тогда
|
||||
@ -57,45 +54,4 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьИмяМодуля(Знач Команда = "") Экспорт
|
||||
|
||||
Если ЗначениеЗаполнено(Команда) Тогда
|
||||
Значение = СоответствиеКомандМодулей[Команда];
|
||||
Иначе
|
||||
Значение = СоответствиеКомандМодулей;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ЗначениеЗаполнено(Значение) Тогда
|
||||
ВызватьИсключение "Команда не найдена: " + Команда;
|
||||
Иначе
|
||||
Возврат Значение;
|
||||
КонецЕсли;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьТаблицуПараметров(Знач Команда) Экспорт
|
||||
Возврат СоответствиеТаблицПараметров[Команда];
|
||||
КонецФункции
|
||||
|
||||
Функция СформироватьДополненяОписаний()
|
||||
|
||||
ТекстДополненияВК = "
|
||||
| Структура JSON данных авторизации (параметр --auth):
|
||||
| {
|
||||
| ""access_token"": """",
|
||||
| ""from_group"" : ""1"",
|
||||
| ""owner_id"" : """",
|
||||
| ""v"" : ""5.131"",
|
||||
| ""app_id"" : """",
|
||||
| ""group_id"" : """"
|
||||
| }
|
||||
|";
|
||||
|
||||
ДополнениеОписанияПараметров = Новый Соответствие;
|
||||
ДополнениеОписанияПараметров.Вставить("vk", ТекстДополненияВК);
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
ПриСозданииОбъекта();
|
@ -57,11 +57,11 @@
|
||||
|
||||
Процедура ОбработатьПараметрМассив(Значение)
|
||||
|
||||
Значение = СтрЗаменить(Значение, "['", "");
|
||||
Значение = СтрЗаменить(Значение, "']", "");
|
||||
Значение = СтрЗаменить(Значение, "', '", "','");
|
||||
Значение = СтрЗаменить(Значение, "['" , "");
|
||||
Значение = СтрЗаменить(Значение, "']" , "");
|
||||
Значение = СтрЗаменить(Значение, "', '" , "','");
|
||||
Значение = СтрЗаменить(Значение, "' , '", "','");
|
||||
Значение = СтрЗаменить(Значение, "' ,'", "','");
|
||||
Значение = СтрЗаменить(Значение, "' ,'" , "','");
|
||||
|
||||
Значение = СтрРазделить(Значение, "','", Ложь);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user