mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-04-09 07:14:16 +02:00
Классы в CLI
This commit is contained in:
parent
8437b82ea9
commit
c341507d83
@ -1,10 +1,16 @@
|
|||||||
#Использовать cmdline
|
#Использовать cmdline
|
||||||
#Использовать oint
|
#Использовать oint
|
||||||
#Использовать "internal"
|
#Использовать "../../tools"
|
||||||
|
#Использовать "../../help"
|
||||||
|
|
||||||
#Область СлужебныйПрограммныйИнтерфейс
|
Перем ОбъектОПИ;
|
||||||
|
Перем Парсер;
|
||||||
|
|
||||||
#КонецОбласти
|
Процедура ПриСозданииОбъекта()
|
||||||
|
|
||||||
|
ОбъектОПИ = Новый СвязьОПИ;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
#Область СлужебныеПроцедурыИФункции
|
#Область СлужебныеПроцедурыИФункции
|
||||||
|
|
||||||
@ -14,7 +20,7 @@
|
|||||||
|
|
||||||
Парсер = Новый ПарсерАргументовКоманднойСтроки();
|
Парсер = Новый ПарсерАргументовКоманднойСтроки();
|
||||||
|
|
||||||
Для Каждого Команда Из ПолучитьИмяМодуля() Цикл
|
Для Каждого Команда Из ОбъектОПИ.ПолучитьИмяМодуля() Цикл
|
||||||
СформироватьКоманду(Команда.Ключ, Парсер);
|
СформироватьКоманду(Команда.Ключ, Парсер);
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
@ -22,7 +28,7 @@
|
|||||||
ТекущаяКоманда = Результат["Команда"];
|
ТекущаяКоманда = Результат["Команда"];
|
||||||
|
|
||||||
Если ТекущаяКоманда = Неопределено Тогда
|
Если ТекущаяКоманда = Неопределено Тогда
|
||||||
ВывестиНачальнуюСтраницу();
|
Справка.ВывестиНачальнуюСтраницу();
|
||||||
Иначе
|
Иначе
|
||||||
ВыполнитьОбработкуКоманды(Результат);
|
ВыполнитьОбработкуКоманды(Результат);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
@ -32,7 +38,7 @@
|
|||||||
Процедура СформироватьКоманду(Знач Имя, Парсер)
|
Процедура СформироватьКоманду(Знач Имя, Парсер)
|
||||||
|
|
||||||
Команда = Парсер.ОписаниеКоманды(Имя);
|
Команда = Парсер.ОписаниеКоманды(Имя);
|
||||||
ТаблицаПараметров = ПолучитьТаблицуПараметров(Имя);
|
ТаблицаПараметров = ОбъектОПИ.ПолучитьТаблицуПараметров(Имя).Скопировать();
|
||||||
Парсер.ДобавитьПозиционныйПараметрКоманды(Команда, "Метод");
|
Парсер.ДобавитьПозиционныйПараметрКоманды(Команда, "Метод");
|
||||||
|
|
||||||
ДобавитьПараметрыКоманды(Парсер, Команда, ТаблицаПараметров);
|
ДобавитьПараметрыКоманды(Парсер, Команда, ТаблицаПараметров);
|
||||||
@ -70,29 +76,27 @@
|
|||||||
|
|
||||||
Функция ПолучитьРезультатОбработки(Знач Команда, Знач Данные)
|
Функция ПолучитьРезультатОбработки(Знач Команда, Знач Данные)
|
||||||
|
|
||||||
Модуль = ПолучитьИмяМодуля(Команда);
|
Модуль = ОбъектОПИ.ПолучитьИмяМодуля(Команда);
|
||||||
Параметры = Данные["ЗначенияПараметров"];
|
Параметры = Данные["ЗначенияПараметров"];
|
||||||
Метод = Параметры["Метод"];
|
Метод = Параметры["Метод"];
|
||||||
Ответ = "<пустой возврат>";
|
Ответ = "<пустой возврат>";
|
||||||
|
|
||||||
ТаблицаПараметров = ПолучитьТаблицуПараметров(Команда);
|
ТаблицаПараметров = ОбъектОПИ.ПолучитьТаблицуПараметров(Команда);
|
||||||
|
|
||||||
Если Не ЗначениеЗаполнено(Метод) Тогда
|
Если Не ЗначениеЗаполнено(Метод) Тогда
|
||||||
ВывестиСправкуПоМетодам(Команда, ТаблицаПараметров);
|
Справка.ВывестиСправкуПоМетодам(Команда, ТаблицаПараметров);
|
||||||
Возврат "";
|
Возврат "";
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ОтборКоманды = Новый Структура("МетодПоиска", вРег(Метод));
|
ОтборКоманды = Новый Структура("МетодПоиска", вРег(Метод));
|
||||||
ПараметрыМетода = ТаблицаПараметров.НайтиСтроки(ОтборКоманды);
|
ПараметрыМетода = ТаблицаПараметров.НайтиСтроки(ОтборКоманды);
|
||||||
ТекстВыполнения = "";
|
|
||||||
|
|
||||||
Если Параметры.Количество() = 1 Тогда
|
Если Параметры.Количество() = 1 Тогда
|
||||||
ВывестиСправкуПоПараметрам(ПараметрыМетода);
|
Справка.ВывестиСправкуПоПараметрам(ПараметрыМетода);
|
||||||
Возврат "";
|
Возврат "";
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
СтрокаВызова = СформироватьСтрокуВызоваМетода(Параметры, ПараметрыМетода);
|
ТекстВыполнения = СформироватьСтрокуВызоваМетода(Параметры, ПараметрыМетода, Модуль, Метод);
|
||||||
ТекстВыполнения = ТекстВыполнения + Символы.ПС + СтрокаВызова;
|
|
||||||
|
|
||||||
Выполнить(ТекстВыполнения);
|
Выполнить(ТекстВыполнения);
|
||||||
|
|
||||||
@ -116,7 +120,7 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
Процедура ОбработатьВыводJSON()
|
Процедура ОбработатьВыводJSON(Вывод)
|
||||||
|
|
||||||
Если ТипЗнч(Вывод) = Тип("Структура")
|
Если ТипЗнч(Вывод) = Тип("Структура")
|
||||||
Или ТипЗнч(Вывод) = Тип("Соответствие")
|
Или ТипЗнч(Вывод) = Тип("Соответствие")
|
||||||
@ -127,96 +131,53 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
Функция СформироватьСтрокуВызоваМетода(Знач ПереданныеПараметры, Знач ПараметрыМетода)
|
Функция СформироватьСтрокуВызоваМетода(Знач ПереданныеПараметры, Знач ПараметрыМетода, Знач Модуль, Знач Метод)
|
||||||
|
|
||||||
|
ТекстВыполнения = "";
|
||||||
СтрокаВызова = Модуль + "." + Метод + "(";
|
СтрокаВызова = Модуль + "." + Метод + "(";
|
||||||
|
Счетчик = 0;
|
||||||
|
|
||||||
Для Каждого НеобходимыйПараметр Из ПараметрыМетода Цикл
|
Для Каждого НеобходимыйПараметр Из ПараметрыМетода Цикл
|
||||||
|
|
||||||
ЗначениеПараметра = ПереданныеПараметры.Получить(НеобходимыйПараметр.Параметр);
|
ЗначениеПараметра = ПереданныеПараметры.Получить(НеобходимыйПараметр.Параметр);
|
||||||
|
|
||||||
Если ЗначениеЗаполнено(ЗначениеПараметра) Тогда
|
Если ЗначениеЗаполнено(ЗначениеПараметра) Тогда
|
||||||
|
|
||||||
|
ИмяПараметра = "Параметра" + Строка(Счетчик);
|
||||||
|
|
||||||
ТекстВыполнения = ТекстВыполнения
|
ТекстВыполнения = ТекстВыполнения
|
||||||
+ Символы.ПС
|
+ Символы.ПС
|
||||||
+ НеобходимыйПараметр.Имя
|
+ ИмяПараметра
|
||||||
+ " = ОбработатьВходящийПараметр("""
|
+ " = ОбработатьВходящийПараметр("""
|
||||||
+ ЗначениеПараметра
|
+ ЗначениеПараметра
|
||||||
+ """, """
|
+ """, """
|
||||||
+ НеобходимыйПараметр.ВариантОбработки
|
+ НеобходимыйПараметр.ВариантОбработки
|
||||||
+ """);";
|
+ """);";
|
||||||
|
|
||||||
СтрокаВызова = СтрокаВызова + НеобходимыйПараметр.Имя + ", ";
|
СтрокаВызова = СтрокаВызова + ИмяПараметра + ", ";
|
||||||
|
Счетчик = Счетчик + 1;
|
||||||
Иначе
|
Иначе
|
||||||
СтрокаВызова = СтрокаВызова + " , ";
|
СтрокаВызова = СтрокаВызова + " , ";
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
СтрокаВызова = Лев(СтрокаВызова, СтрДлина(СтрокаВызова) - 2);
|
ЛишниеСимволы = 2;
|
||||||
|
СтрокаВызова = Лев(СтрокаВызова, СтрДлина(СтрокаВызова) - ЛишниеСимволы);
|
||||||
СтрокаВызова = СтрокаВызова + ");";
|
СтрокаВызова = СтрокаВызова + ");";
|
||||||
СтрокаВызова = "Ответ = " + СтрокаВызова;
|
СтрокаВызова = "Ответ = " + СтрокаВызова;
|
||||||
|
ТекстВыполнения = ТекстВыполнения + Символы.ПС + СтрокаВызова;
|
||||||
|
|
||||||
Возврат СтрокаВызова;
|
Возврат ТекстВыполнения;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|
||||||
#Область ОбработкаПараметров
|
|
||||||
|
|
||||||
Функция ОбработатьВходящийПараметр(Знач Значение, Знач ВидОбработки)
|
|
||||||
|
|
||||||
Если ВидОбработки = "СоответствиеJSON" Тогда
|
|
||||||
ОбработатьПараметрJSON(Значение);
|
|
||||||
ИначеЕсли ВидОбработки = "ТекстовыеДанные" Тогда
|
|
||||||
ОбработатьПараметрТекст(Значение);
|
|
||||||
Иначе
|
|
||||||
Значение = Строка(Значение);
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Возврат Значение;
|
|
||||||
|
|
||||||
КонецФункции
|
|
||||||
|
|
||||||
Процедура ОбработатьПараметрJSON(Значение)
|
|
||||||
|
|
||||||
Файл = Новый Файл(Значение);
|
|
||||||
ЧтениеJSON = Новый ЧтениеJSON;
|
|
||||||
|
|
||||||
Если Файл.Существует() Тогда
|
|
||||||
ЧтениеJSON.ОткрытьФайл(Значение);
|
|
||||||
ЧтениеJSON.Прочитать();
|
|
||||||
Иначе
|
|
||||||
ЧтениеJSON.УстановитьСтроку(СокрЛП(Значение));
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Значение = ПрочитатьJSON(ЧтениеJSON, Истина, Неопределено, ФорматДатыJSON.ISO);
|
|
||||||
ЧтениеJSON.Закрыть();
|
|
||||||
|
|
||||||
КонецПроцедуры
|
|
||||||
|
|
||||||
Процедура ОбработатьПараметрТекст(Значение)
|
|
||||||
|
|
||||||
Файл = Новый Файл(Значение);
|
|
||||||
|
|
||||||
Если Файл.Существует() Тогда
|
|
||||||
ЧтениеТекста = Новый ЧтениеТекста(Значение);
|
|
||||||
Значение = ЧтениеТекста.Прочитать();
|
|
||||||
ЧтениеТекста.Закрыть();
|
|
||||||
Иначе
|
|
||||||
Значение = Строка(Значение);
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Значение = СокрЛП(Значение);
|
|
||||||
|
|
||||||
КонецПроцедуры
|
|
||||||
|
|
||||||
#КонецОбласти
|
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|
||||||
Попытка
|
Попытка
|
||||||
|
ПриСозданииОбъекта();
|
||||||
ОсновнойОбработчик();
|
ОсновнойОбработчик();
|
||||||
Исключение
|
Исключение
|
||||||
Сообщить(Символы.ПС + "!!! ОШИБКА: Проверьте корректность введенных данных" + Символы.ПС, СтатусСообщения.ОченьВажное);
|
Сообщить(Символы.ПС + "!!! ОШИБКА: Проверьте корректность введенных данных" + Символы.ПС, СтатусСообщения.ОченьВажное);
|
@ -1,11 +1,12 @@
|
|||||||
#Использовать "internal"
|
#Использовать "../../tools"
|
||||||
|
|
||||||
#Область Справки
|
#Область СлужебныйПрограммныйИнтерфейс
|
||||||
|
|
||||||
Процедура ВывестиНачальнуюСтраницу() Экспорт
|
Процедура ВывестиНачальнуюСтраницу() Экспорт
|
||||||
|
|
||||||
СписокКоманд = "";
|
СписокКоманд = "";
|
||||||
Модули = ПолучитьИмяМодуля();
|
СвязьОПИ = Новый СвязьОПИ;
|
||||||
|
Модули = СвязьОПИ.ПолучитьИмяМодуля();
|
||||||
|
|
||||||
Для Каждого Команда Из Модули Цикл
|
Для Каждого Команда Из Модули Цикл
|
||||||
СписокКоманд = СписокКоманд + Команда.Ключ + ", ";
|
СписокКоманд = СписокКоманд + Команда.Ключ + ", ";
|
@ -1,113 +0,0 @@
|
|||||||
#Область СлужебныйПрограммныйИнтерфейс
|
|
||||||
|
|
||||||
Функция ПолучитьИмяМодуля(Знач ИмяКоманды = "") Экспорт
|
|
||||||
|
|
||||||
СоответствиеКомандМодулей = Новый Соответствие();
|
|
||||||
СоответствиеКомандМодулей.Вставить("telegram", "OPI_Telegram");
|
|
||||||
|
|
||||||
Если ЗначениеЗаполнено(ИмяКоманды) Тогда
|
|
||||||
Результат = СоответствиеКомандМодулей.Получить(ИмяКоманды);
|
|
||||||
Иначе
|
|
||||||
Результат = СоответствиеКомандМодулей;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Если Не ЗначениеЗаполнено(Результат) Тогда
|
|
||||||
ВызватьИсключение "Неизвестная команда: " + ИмяКоманды;
|
|
||||||
Иначе
|
|
||||||
Возврат Результат;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
КонецФункции
|
|
||||||
|
|
||||||
Функция ПолучитьТаблицуПараметров(Знач ИмяКоманды) Экспорт
|
|
||||||
|
|
||||||
ТПМ = Новый ТаблицаЗначений();
|
|
||||||
|
|
||||||
ТПМ.Колонки.Добавить("Метод");
|
|
||||||
ТПМ.Колонки.Добавить("МетодПоиска");
|
|
||||||
ТПМ.Колонки.Добавить("Параметр");
|
|
||||||
ТПМ.Колонки.Добавить("Имя");
|
|
||||||
ТПМ.Колонки.Добавить("Описание");
|
|
||||||
ТПМ.Колонки.Добавить("ВариантОбработки");
|
|
||||||
|
|
||||||
Попытка
|
|
||||||
Выполнить("ЗаполнитьТаблицуПараметров" + ИмяКоманды + "(ТПМ);");
|
|
||||||
Исключение
|
|
||||||
ВызватьИсключение "Неизвестная команда: " + ИмяКоманды;
|
|
||||||
КонецПопытки;
|
|
||||||
|
|
||||||
Возврат ТПМ;
|
|
||||||
|
|
||||||
КонецФункции
|
|
||||||
|
|
||||||
Процедура ЗаполнитьТаблицуПараметровTelegram(ТПМ) Экспорт
|
|
||||||
|
|
||||||
ДобавитьПараметрМетода(ТПМ, "ПолучитьИнформациюБота" , "--token" , "Токен" , "Токен бота");
|
|
||||||
|
|
||||||
ДобавитьПараметрМетода(ТПМ, "ПолучитьОбновления" , "--token" , "Токен" , "Токен бота");
|
|
||||||
|
|
||||||
ДобавитьПараметрМетода(ТПМ, "УстановитьWebhook" , "--token" , "Токен" , "Токен бота");
|
|
||||||
ДобавитьПараметрМетода(ТПМ, "УстановитьWebhook" , "--url" , "URL" , "Адрес обработки запросов (с https://)");
|
|
||||||
|
|
||||||
ДобавитьПараметрМетода(ТПМ, "УдалитьWebHook" , "--token" , "Токен" , "Токен бота");
|
|
||||||
ДобавитьПараметрМетода(ТПМ, "УдалитьWebHook" , "--url" , "URL" , "Адрес обработки запросов (с https://)");
|
|
||||||
|
|
||||||
ДобавитьПараметрМетода(ТПМ, "ОтправитьТекстовоеСообщение", "--token" , "Токен" , "Токен бота");
|
|
||||||
ДобавитьПараметрМетода(ТПМ, "ОтправитьТекстовоеСообщение", "--id" , "IDЧата" , "ID чата / ID чата*ID темы");
|
|
||||||
ДобавитьПараметрМетода(ТПМ, "ОтправитьТекстовоеСообщение", "--text" , "Текст" , "Текст сообщения");
|
|
||||||
ДобавитьПараметрМетода(ТПМ, "ОтправитьТекстовоеСообщение", "--keyboard", "Клавиатура", "JSON клавиатуры / файл .json клавиатуры (необяз.)" , "ОбработатьПараметрТекст");
|
|
||||||
|
|
||||||
ДобавитьПараметрМетода(ТПМ, "ОтправитьКартинку" , "--token" , "Токен" , "Токен бота");
|
|
||||||
ДобавитьПараметрМетода(ТПМ, "ОтправитьКартинку" , "--id" , "IDЧата" , "ID чата / ID чата*ID темы");
|
|
||||||
ДобавитьПараметрМетода(ТПМ, "ОтправитьКартинку" , "--text" , "Текст" , "Текст сообщения");
|
|
||||||
ДобавитьПараметрМетода(ТПМ, "ОтправитьКартинку" , "--path" , "Картинка" , "Путь к файлу");
|
|
||||||
ДобавитьПараметрМетода(ТПМ, "ОтправитьКартинку" , "--keyboard", "Клавиатура", "JSON клавиатуры / файл .json клавиатуры (необяз.)" , "ОбработатьПараметрТекст");
|
|
||||||
|
|
||||||
ДобавитьПараметрМетода(ТПМ, "ОтправитьВидео" , "--token" , "Токен" , "Токен бота");
|
|
||||||
ДобавитьПараметрМетода(ТПМ, "ОтправитьВидео" , "--id" , "IDЧата" , "ID чата / ID чата*ID темы");
|
|
||||||
ДобавитьПараметрМетода(ТПМ, "ОтправитьВидео" , "--text" , "Текст" , "Текст сообщения");
|
|
||||||
ДобавитьПараметрМетода(ТПМ, "ОтправитьВидео" , "--path" , "Картинка" , "Путь к файлу");
|
|
||||||
ДобавитьПараметрМетода(ТПМ, "ОтправитьВидео" , "--keyboard", "Клавиатура", "JSON клавиатуры / файл .json клавиатуры (необяз.)" , "ОбработатьПараметрТекст");
|
|
||||||
|
|
||||||
ДобавитьПараметрМетода(ТПМ, "ОтправитьГифку" , "--token" , "Токен" , "Токен бота");
|
|
||||||
ДобавитьПараметрМетода(ТПМ, "ОтправитьГифку" , "--id" , "IDЧата" , "ID чата / ID чата*ID темы");
|
|
||||||
ДобавитьПараметрМетода(ТПМ, "ОтправитьГифку" , "--text" , "Текст" , "Текст сообщения");
|
|
||||||
ДобавитьПараметрМетода(ТПМ, "ОтправитьГифку" , "--path" , "Гифка" , "Путь к файлу");
|
|
||||||
ДобавитьПараметрМетода(ТПМ, "ОтправитьГифку" , "--keyboard", "Клавиатура", "JSON клавиатуры / файл .json клавиатуры (необяз.)" , "ОбработатьПараметрТекст");
|
|
||||||
|
|
||||||
ДобавитьПараметрМетода(ТПМ, "ОтправитьАудио" , "--token" , "Токен" , "Токен бота");
|
|
||||||
ДобавитьПараметрМетода(ТПМ, "ОтправитьАудио" , "--id" , "IDЧата" , "ID чата / ID чата*ID темы");
|
|
||||||
ДобавитьПараметрМетода(ТПМ, "ОтправитьАудио" , "--text" , "Текст" , "Текст сообщения");
|
|
||||||
ДобавитьПараметрМетода(ТПМ, "ОтправитьАудио" , "--path" , "Аудио" , "Путь к файлу");
|
|
||||||
ДобавитьПараметрМетода(ТПМ, "ОтправитьАудио" , "--keyboard", "Клавиатура", "JSON клавиатуры / файл .json клавиатуры (необяз.)" , "ОбработатьПараметрТекст");
|
|
||||||
|
|
||||||
ДобавитьПараметрМетода(ТПМ, "ОтправитьДокумент" , "--token" , "Токен" , "Токен бота");
|
|
||||||
ДобавитьПараметрМетода(ТПМ, "ОтправитьДокумент" , "--id" , "IDЧата" , "ID чата / ID чата*ID темы");
|
|
||||||
ДобавитьПараметрМетода(ТПМ, "ОтправитьДокумент" , "--text" , "Текст" , "Текст сообщения");
|
|
||||||
ДобавитьПараметрМетода(ТПМ, "ОтправитьДокумент" , "--path" , "Документ" , "Путь к файлу");
|
|
||||||
ДобавитьПараметрМетода(ТПМ, "ОтправитьДокумент" , "--keyboard", "Клавиатура", "JSON клавиатуры / файл .json клавиатуры (необяз.)" , "ОбработатьПараметрТекст");
|
|
||||||
|
|
||||||
КонецПроцедуры
|
|
||||||
|
|
||||||
#КонецОбласти
|
|
||||||
|
|
||||||
#Область СлужебныеПроцедурыИФункции
|
|
||||||
|
|
||||||
Процедура ДобавитьПараметрМетода(Таблица
|
|
||||||
, Знач Метод
|
|
||||||
, Знач Параметр
|
|
||||||
, Знач Имя
|
|
||||||
, Знач Описание
|
|
||||||
, Знач ВариантОбработки = "Строка")
|
|
||||||
|
|
||||||
НовыйПараметр = Таблица.Добавить();
|
|
||||||
НовыйПараметр.МетодПоиска = вРег(Метод);
|
|
||||||
НовыйПараметр.Метод = Метод;
|
|
||||||
НовыйПараметр.Параметр = Параметр;
|
|
||||||
НовыйПараметр.Имя = Имя;
|
|
||||||
НовыйПараметр.Описание = Описание;
|
|
||||||
НовыйПараметр.ВариантОбработки = ВариантОбработки;
|
|
||||||
|
|
||||||
КонецПроцедуры
|
|
||||||
|
|
||||||
#КонецОбласти
|
|
128
cli/tools/Classes/СвязьОПИ.os
Normal file
128
cli/tools/Classes/СвязьОПИ.os
Normal file
@ -0,0 +1,128 @@
|
|||||||
|
Перем СоответствиеТаблицПараметров;
|
||||||
|
Перем СоответствиеКомандМодулей;
|
||||||
|
|
||||||
|
Процедура ПриСозданииОбъекта()
|
||||||
|
|
||||||
|
СоответствиеТаблицПараметров = Новый Соответствие();
|
||||||
|
СоответствиеКомандМодулей = Новый Соответствие();
|
||||||
|
СоответствиеКомандМодулей.Вставить("telegram", "OPI_Telegram");
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
#Область СлужебныйПрограммныйИнтерфейс
|
||||||
|
|
||||||
|
Функция ПолучитьИмяМодуля(Знач ИмяКоманды = "") Экспорт
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(ИмяКоманды) Тогда
|
||||||
|
Результат = СоответствиеКомандМодулей.Получить(ИмяКоманды);
|
||||||
|
Иначе
|
||||||
|
Результат = СоответствиеКомандМодулей;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если НЕ ЗначениеЗаполнено(Результат) Тогда
|
||||||
|
ВызватьИсключение "Неизвестная команда: " + ИмяКоманды;
|
||||||
|
Иначе
|
||||||
|
Возврат Результат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ПолучитьТаблицуПараметров(Знач ИмяКоманды) Экспорт
|
||||||
|
|
||||||
|
ТПМ = СоответствиеТаблицПараметров.Получить(ИмяКоманды);
|
||||||
|
|
||||||
|
Если ТПМ = Неопределено Тогда
|
||||||
|
|
||||||
|
ТПМ = Новый ТаблицаЗначений();
|
||||||
|
|
||||||
|
ТПМ.Колонки.Добавить("Метод");
|
||||||
|
ТПМ.Колонки.Добавить("МетодПоиска");
|
||||||
|
ТПМ.Колонки.Добавить("Параметр");
|
||||||
|
ТПМ.Колонки.Добавить("Описание");
|
||||||
|
ТПМ.Колонки.Добавить("ВариантОбработки");
|
||||||
|
|
||||||
|
Попытка
|
||||||
|
Выполнить("ЗаполнитьТаблицуПараметров" + ИмяКоманды + "(ТПМ);");
|
||||||
|
Исключение
|
||||||
|
ВызватьИсключение "Неизвестная команда: " + ИмяКоманды;
|
||||||
|
КонецПопытки;
|
||||||
|
|
||||||
|
СоответствиеТаблицПараметров.Вставить(ИмяКоманды, ТПМ);
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат ТПМ;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Процедура ЗаполнитьТаблицуПараметровTelegram(ТПМ) Экспорт
|
||||||
|
|
||||||
|
ДобавитьПараметрМетода(ТПМ, "ПолучитьИнформациюБота", "--token", "Токен бота");
|
||||||
|
|
||||||
|
ДобавитьПараметрМетода(ТПМ, "ПолучитьОбновления", "--token", "Токен бота");
|
||||||
|
|
||||||
|
ДобавитьПараметрМетода(ТПМ, "УстановитьWebhook", "--token", "Токен бота");
|
||||||
|
ДобавитьПараметрМетода(ТПМ, "УстановитьWebhook", "--url", "Адрес обработки запросов (с https://)");
|
||||||
|
|
||||||
|
ДобавитьПараметрМетода(ТПМ, "УдалитьWebHook", "--token", "Токен бота");
|
||||||
|
ДобавитьПараметрМетода(ТПМ, "УдалитьWebHook", "--url", "Адрес обработки запросов (с https://)");
|
||||||
|
|
||||||
|
ДобавитьПараметрМетода(ТПМ, "ОтправитьТекстовоеСообщение", "--token", "Токен бота");
|
||||||
|
ДобавитьПараметрМетода(ТПМ, "ОтправитьТекстовоеСообщение", "--id", "ID чата / ID чата*ID темы");
|
||||||
|
ДобавитьПараметрМетода(ТПМ, "ОтправитьТекстовоеСообщение", "--text", "Текст сообщения");
|
||||||
|
ДобавитьПараметрМетода(ТПМ, "ОтправитьТекстовоеСообщение", "--keyboard", "JSON клавиатуры / файл .json клавиатуры (необяз.)", "ОбработатьПараметрТекст");
|
||||||
|
|
||||||
|
ДобавитьПараметрМетода(ТПМ, "ОтправитьКартинку", "--token", "Токен бота");
|
||||||
|
ДобавитьПараметрМетода(ТПМ, "ОтправитьКартинку", "--id", "ID чата / ID чата*ID темы");
|
||||||
|
ДобавитьПараметрМетода(ТПМ, "ОтправитьКартинку", "--text", "Текст сообщения");
|
||||||
|
ДобавитьПараметрМетода(ТПМ, "ОтправитьКартинку", "--path", "Путь к файлу");
|
||||||
|
ДобавитьПараметрМетода(ТПМ, "ОтправитьКартинку", "--keyboard", "JSON клавиатуры / файл .json клавиатуры (необяз.)", "ОбработатьПараметрТекст");
|
||||||
|
|
||||||
|
ДобавитьПараметрМетода(ТПМ, "ОтправитьВидео", "--token", "Токен бота");
|
||||||
|
ДобавитьПараметрМетода(ТПМ, "ОтправитьВидео", "--id", "ID чата / ID чата*ID темы");
|
||||||
|
ДобавитьПараметрМетода(ТПМ, "ОтправитьВидео", "--text", "Текст сообщения");
|
||||||
|
ДобавитьПараметрМетода(ТПМ, "ОтправитьВидео", "--path", "Путь к файлу");
|
||||||
|
ДобавитьПараметрМетода(ТПМ, "ОтправитьВидео", "--keyboard", "JSON клавиатуры / файл .json клавиатуры (необяз.)", "ОбработатьПараметрТекст");
|
||||||
|
|
||||||
|
ДобавитьПараметрМетода(ТПМ, "ОтправитьГифку", "--token", "Токен бота");
|
||||||
|
ДобавитьПараметрМетода(ТПМ, "ОтправитьГифку", "--id", "ID чата / ID чата*ID темы");
|
||||||
|
ДобавитьПараметрМетода(ТПМ, "ОтправитьГифку", "--text", "Текст сообщения");
|
||||||
|
ДобавитьПараметрМетода(ТПМ, "ОтправитьГифку", "--path", "Путь к файлу");
|
||||||
|
ДобавитьПараметрМетода(ТПМ, "ОтправитьГифку", "--keyboard", "JSON клавиатуры / файл .json клавиатуры (необяз.)", "ОбработатьПараметрТекст");
|
||||||
|
|
||||||
|
ДобавитьПараметрМетода(ТПМ, "ОтправитьАудио", "--token", "Токен бота");
|
||||||
|
ДобавитьПараметрМетода(ТПМ, "ОтправитьАудио", "--id", "ID чата / ID чата*ID темы");
|
||||||
|
ДобавитьПараметрМетода(ТПМ, "ОтправитьАудио", "--text", "Текст сообщения");
|
||||||
|
ДобавитьПараметрМетода(ТПМ, "ОтправитьАудио", "--path", "Путь к файлу");
|
||||||
|
ДобавитьПараметрМетода(ТПМ, "ОтправитьАудио", "--keyboard", "JSON клавиатуры / файл .json клавиатуры (необяз.)", "ОбработатьПараметрТекст");
|
||||||
|
|
||||||
|
ДобавитьПараметрМетода(ТПМ, "ОтправитьДокумент", "--token", "Токен бота");
|
||||||
|
ДобавитьПараметрМетода(ТПМ, "ОтправитьДокумент", "--id", "ID чата / ID чата*ID темы");
|
||||||
|
ДобавитьПараметрМетода(ТПМ, "ОтправитьДокумент", "--text", "Текст сообщения");
|
||||||
|
ДобавитьПараметрМетода(ТПМ, "ОтправитьДокумент", "--path", "Путь к файлу");
|
||||||
|
ДобавитьПараметрМетода(ТПМ, "ОтправитьДокумент", "--keyboard", "JSON клавиатуры / файл .json клавиатуры (необяз.)", "ОбработатьПараметрТекст");
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
#КонецОбласти
|
||||||
|
|
||||||
|
#Область СлужебныеПроцедурыИФункции
|
||||||
|
|
||||||
|
Процедура ДобавитьПараметрМетода(Таблица
|
||||||
|
, Знач Метод
|
||||||
|
, Знач Параметр
|
||||||
|
, Знач Описание
|
||||||
|
, Знач ВариантОбработки = "Строка")
|
||||||
|
|
||||||
|
НовыйПараметр = Таблица.Добавить();
|
||||||
|
НовыйПараметр.МетодПоиска = вРег(Метод);
|
||||||
|
НовыйПараметр.Метод = Метод;
|
||||||
|
НовыйПараметр.Параметр = Параметр;
|
||||||
|
НовыйПараметр.Описание = Описание;
|
||||||
|
НовыйПараметр.ВариантОбработки = ВариантОбработки;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
#КонецОбласти
|
||||||
|
|
||||||
|
ПриСозданииОбъекта();
|
54
cli/tools/Modules/ОбработкаПараметров.os
Normal file
54
cli/tools/Modules/ОбработкаПараметров.os
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
#Область СлужебныйПрограммныйИнтерфейс
|
||||||
|
|
||||||
|
Функция ОбработатьВходящийПараметр(Знач Значение, Знач ВидОбработки) Экспорт
|
||||||
|
|
||||||
|
Если ВидОбработки = "СоответствиеJSON" Тогда
|
||||||
|
ОбработатьПараметрJSON(Значение);
|
||||||
|
ИначеЕсли ВидОбработки = "ТекстовыеДанные" Тогда
|
||||||
|
ОбработатьПараметрТекст(Значение);
|
||||||
|
Иначе
|
||||||
|
Значение = Строка(Значение);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат Значение;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
#КонецОбласти
|
||||||
|
|
||||||
|
#Область СлужебныеПроцедурыИФункции
|
||||||
|
|
||||||
|
Процедура ОбработатьПараметрJSON(Значение)
|
||||||
|
|
||||||
|
Файл = Новый Файл(Значение);
|
||||||
|
ЧтениеJSON = Новый ЧтениеJSON;
|
||||||
|
|
||||||
|
Если Файл.Существует() Тогда
|
||||||
|
ЧтениеJSON.ОткрытьФайл(Значение);
|
||||||
|
ЧтениеJSON.Прочитать();
|
||||||
|
Иначе
|
||||||
|
ЧтениеJSON.УстановитьСтроку(СокрЛП(Значение));
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Значение = ПрочитатьJSON(ЧтениеJSON, Истина, Неопределено, ФорматДатыJSON.ISO);
|
||||||
|
ЧтениеJSON.Закрыть();
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура ОбработатьПараметрТекст(Значение)
|
||||||
|
|
||||||
|
Файл = Новый Файл(Значение);
|
||||||
|
|
||||||
|
Если Файл.Существует() Тогда
|
||||||
|
ЧтениеТекста = Новый ЧтениеТекста(Значение);
|
||||||
|
Значение = ЧтениеТекста.Прочитать();
|
||||||
|
ЧтениеТекста.Закрыть();
|
||||||
|
Иначе
|
||||||
|
Значение = Строка(Значение);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Значение = СокрЛП(Значение);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
#КонецОбласти
|
Loading…
x
Reference in New Issue
Block a user