mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2024-12-25 02:42:28 +02:00
Начало унификации с OneScript, методы форума Telegram
This commit is contained in:
parent
4e01dfbdad
commit
a34d35f789
@ -22,6 +22,9 @@
|
|||||||
|
|
||||||
// https://github.com/Bayselonarrend/OpenIntegrations
|
// https://github.com/Bayselonarrend/OpenIntegrations
|
||||||
|
|
||||||
|
//Раскомментировать, если выполняется OneScript
|
||||||
|
//#Использовать ".."
|
||||||
|
|
||||||
#Область ПрограммныйИнтерфейс
|
#Область ПрограммныйИнтерфейс
|
||||||
|
|
||||||
#Область РаботаСМетаданнымиКалендарей
|
#Область РаботаСМетаданнымиКалендарей
|
||||||
@ -257,14 +260,15 @@
|
|||||||
// Соответствие Из КлючИЗначение - Пустой макет события
|
// Соответствие Из КлючИЗначение - Пустой макет события
|
||||||
Функция ПолучитьОписаниеСобытия() Экспорт
|
Функция ПолучитьОписаниеСобытия() Экспорт
|
||||||
|
|
||||||
|
ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДата();
|
||||||
Час = 3600;
|
Час = 3600;
|
||||||
Событие = Новый Соответствие;
|
Событие = Новый Соответствие;
|
||||||
|
|
||||||
Событие.Вставить("Описание" , ""); // Описание события
|
Событие.Вставить("Описание" , ""); // Описание события
|
||||||
Событие.Вставить("Заголовок" , "Новое событие"); // Заголовок события
|
Событие.Вставить("Заголовок" , "Новое событие"); // Заголовок события
|
||||||
Событие.Вставить("МестоПроведения" , ""); // Строка описание места проведения
|
Событие.Вставить("МестоПроведения" , ""); // Строка описание места проведения
|
||||||
Событие.Вставить("ДатаНачала" , ТекущаяДатаСеанса()); // Дата начала события
|
Событие.Вставить("ДатаНачала" , ТекущаяДата); // Дата начала события
|
||||||
Событие.Вставить("ДатаОкончания" , Событие["ДатаНачала"] + Час); // Дата окончания события
|
Событие.Вставить("ДатаОкончания" , ТекущаяДата + Час); // Дата окончания события
|
||||||
Событие.Вставить("МассивURLФайловВложений", Новый Соответствие); // Ключ - название, Значение - URL к файлу
|
Событие.Вставить("МассивURLФайловВложений", Новый Соответствие); // Ключ - название, Значение - URL к файлу
|
||||||
Событие.Вставить("ОтправлятьУведомления" , Истина); // Признак отправки уведомлений участникам
|
Событие.Вставить("ОтправлятьУведомления" , Истина); // Признак отправки уведомлений участникам
|
||||||
|
|
||||||
|
@ -22,6 +22,9 @@
|
|||||||
|
|
||||||
// https://github.com/Bayselonarrend/OpenIntegrations
|
// https://github.com/Bayselonarrend/OpenIntegrations
|
||||||
|
|
||||||
|
//Раскомментировать, если выполняется OneScript
|
||||||
|
//#Использовать ".."
|
||||||
|
|
||||||
#Область ПрограммныйИнтерфейс
|
#Область ПрограммныйИнтерфейс
|
||||||
|
|
||||||
// Сформировать ссылку получения кода.
|
// Сформировать ссылку получения кода.
|
||||||
|
@ -22,6 +22,9 @@
|
|||||||
|
|
||||||
// https://github.com/Bayselonarrend/OpenIntegrations
|
// https://github.com/Bayselonarrend/OpenIntegrations
|
||||||
|
|
||||||
|
//Раскомментировать, если выполняется OneScript
|
||||||
|
//#Использовать ".."
|
||||||
|
|
||||||
#Область ПрограммныйИнтерфейс
|
#Область ПрограммныйИнтерфейс
|
||||||
|
|
||||||
#Область РаботаСоСтраницами
|
#Область РаботаСоСтраницами
|
||||||
|
@ -24,6 +24,9 @@
|
|||||||
|
|
||||||
// BSLLS:Typo-off
|
// BSLLS:Typo-off
|
||||||
|
|
||||||
|
//Раскомментировать, если выполняется OneScript
|
||||||
|
//#Использовать ".."
|
||||||
|
|
||||||
#Область ПрограммныйИнтерфейс
|
#Область ПрограммныйИнтерфейс
|
||||||
|
|
||||||
#Область ДанныеИНастройка
|
#Область ДанныеИНастройка
|
||||||
@ -94,102 +97,6 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
// Обработать данные, полученные на Webhook.
|
|
||||||
//
|
|
||||||
// Параметры:
|
|
||||||
// Запрос - HTTPСервисЗапрос - Запрос на http-сервис от Telegram
|
|
||||||
//
|
|
||||||
// Возвращаемое значение:
|
|
||||||
// Структура - Обработанный запрос на http-сервис от Telegram:
|
|
||||||
// * Вид - Строка - Вид запроса от телеграм
|
|
||||||
// * Никнейм - Строка - Никнейм пользователя
|
|
||||||
// * IDПользователя - Строка - ID пользователя
|
|
||||||
// * IDСообщения - Строка - ID сообщения
|
|
||||||
// * IDЧата - Строка - ID чата
|
|
||||||
// * Сообщение - Строка - Текст сообщения
|
|
||||||
// * Дата - Дата - Дата запроса
|
|
||||||
// * БотОтключен - Булево - Истина, если запрос - запрос остановки бота
|
|
||||||
Функция ОбработатьДанные(Знач Запрос) Экспорт
|
|
||||||
// BSLLS:DuplicateStringLiteral-off
|
|
||||||
|
|
||||||
Message = "message";
|
|
||||||
From = "from";
|
|
||||||
Chat = "chat";
|
|
||||||
Id_ = "id";
|
|
||||||
Username = "username";
|
|
||||||
MessageId = "message_id";
|
|
||||||
|
|
||||||
ЧтениеJSON = Новый ЧтениеJSON;
|
|
||||||
ЧтениеJSON.УстановитьСтроку(Запрос.ПолучитьТелоКакСтроку());
|
|
||||||
|
|
||||||
СтруктураПараметровВходная = ПрочитатьJSON(ЧтениеJSON);
|
|
||||||
СтруктураПараметровВыходная = Новый Структура;
|
|
||||||
|
|
||||||
Если СтруктураПараметровВходная.Свойство(Message) Тогда
|
|
||||||
|
|
||||||
СтруктураСообщения = СтруктураПараметровВходная[Message];
|
|
||||||
СтруктураПользователя = СтруктураСообщения[From];
|
|
||||||
СтруктураЧата = СтруктураСообщения[Chat];
|
|
||||||
|
|
||||||
СтруктураПараметровВыходная.Вставить("Вид", "Сообщение");
|
|
||||||
СтруктураПараметровВыходная.Вставить("Никнейм", СтруктураПользователя[Username]);
|
|
||||||
СтруктураПараметровВыходная.Вставить("IDПользователя", СтруктураПользователя[Id_]);
|
|
||||||
СтруктураПараметровВыходная.Вставить("IDСообщения", СтруктураСообщения[MessageId]);
|
|
||||||
СтруктураПараметровВыходная.Вставить("IDЧата", СтруктураЧата[Id_]);
|
|
||||||
СтруктураПараметровВыходная.Вставить("Сообщение", СтруктураСообщения["text"]);
|
|
||||||
СтруктураПараметровВыходная.Вставить("Дата", Дата(1970, 1, 1, 1, 0, 0) + СтруктураСообщения["date"]);
|
|
||||||
|
|
||||||
СтруктураПараметровВыходная.Вставить("БотОтключен", Ложь);
|
|
||||||
|
|
||||||
ИначеЕсли СтруктураПараметровВходная.Свойство("my_chat_member") Тогда
|
|
||||||
|
|
||||||
СтруктураСообщения = СтруктураПараметровВходная["my_chat_member"];
|
|
||||||
СтруктураПользователя = СтруктураСообщения[From];
|
|
||||||
СтруктураЧата = СтруктураСообщения[Chat];
|
|
||||||
|
|
||||||
СтруктураПараметровВыходная.Вставить("Вид", "Запуск/Остановка");
|
|
||||||
СтруктураПараметровВыходная.Вставить("Никнейм", СтруктураПользователя[Username]);
|
|
||||||
СтруктураПараметровВыходная.Вставить("IDПользователя", СтруктураПользователя[Id_]);
|
|
||||||
СтруктураПараметровВыходная.Вставить("IDСообщения", "");
|
|
||||||
СтруктураПараметровВыходная.Вставить("IDЧата", СтруктураЧата[Id_]);
|
|
||||||
СтруктураПараметровВыходная.Вставить("Сообщение", СтруктураСообщения["new_chat_member"]["status"]);
|
|
||||||
СтруктураПараметровВыходная.Вставить("Дата", Дата(1970, 1, 1, 1, 0, 0) + СтруктураСообщения["date"]);
|
|
||||||
|
|
||||||
СтруктураПараметровВыходная.Вставить("БотОтключен", ?(СтруктураСообщения["new_chat_member"]["status"]
|
|
||||||
= "kicked", Истина, Ложь));
|
|
||||||
|
|
||||||
ИначеЕсли СтруктураПараметровВходная.Свойство("callback_query") Тогда
|
|
||||||
|
|
||||||
СтруктураСообщения = СтруктураПараметровВходная["callback_query"];
|
|
||||||
СтруктураПользователя = СтруктураСообщения[From];
|
|
||||||
|
|
||||||
СтруктураПараметровВыходная.Вставить("Вид", "Кнопка под сообщением");
|
|
||||||
СтруктураПараметровВыходная.Вставить("Никнейм", СтруктураПользователя[Username]);
|
|
||||||
СтруктураПараметровВыходная.Вставить("IDПользователя", СтруктураПользователя[Id_]);
|
|
||||||
СтруктураПараметровВыходная.Вставить("IDСообщения", СтруктураСообщения[Message][MessageId]);
|
|
||||||
СтруктураПараметровВыходная.Вставить("IDЧата", СтруктураСообщения[Message][Chat][Id_]);
|
|
||||||
СтруктураПараметровВыходная.Вставить("Сообщение", СтруктураСообщения["data"]);
|
|
||||||
СтруктураПараметровВыходная.Вставить("БотОтключен", Ложь);
|
|
||||||
СтруктураПараметровВыходная.Вставить("Дата", Дата(1970, 1, 1, 1, 0, 0) + СтруктураСообщения[Message]["date"]);
|
|
||||||
|
|
||||||
Иначе
|
|
||||||
|
|
||||||
СтруктураПараметровВыходная.Вставить("Вид", "");
|
|
||||||
СтруктураПараметровВыходная.Вставить("Никнейм", "");
|
|
||||||
СтруктураПараметровВыходная.Вставить("IDПользователя", "");
|
|
||||||
СтруктураПараметровВыходная.Вставить("IDСообщения", "");
|
|
||||||
СтруктураПараметровВыходная.Вставить("IDЧата", "");
|
|
||||||
СтруктураПараметровВыходная.Вставить("Сообщение", "");
|
|
||||||
СтруктураПараметровВыходная.Вставить("Дата", ТекущаяДатаСеанса());
|
|
||||||
СтруктураПараметровВыходная.Вставить("БотОтключен", Ложь);
|
|
||||||
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Возврат СтруктураПараметровВыходная;
|
|
||||||
|
|
||||||
// BSLLS:DuplicateStringLiteral-on
|
|
||||||
КонецФункции
|
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|
||||||
#Область ОтправкаДанных
|
#Область ОтправкаДанных
|
||||||
@ -558,8 +465,9 @@
|
|||||||
Параметры_.Вставить("chat_id" , IDЧата);
|
Параметры_.Вставить("chat_id" , IDЧата);
|
||||||
Параметры_.Вставить("name" , Заголовок);
|
Параметры_.Вставить("name" , Заголовок);
|
||||||
|
|
||||||
Если ЗначениеЗаполнено(ДатаИстечения) Тогда
|
Если ЗначениеЗаполнено(ДатаИстечения) Тогда
|
||||||
Параметры_.Вставить("expire_date", Формат(ДатаИстечения - Дата(1970, 1, 1, 1, 0, 0), "ЧГ=0"));
|
ДатаИстечения = OPI_Инструменты.UNIXTime(ДатаИстечения);
|
||||||
|
Параметры_.Вставить("expire_date", ДатаИстечения);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Параметры_.Вставить("member_limit", ЛимитПользователей);
|
Параметры_.Вставить("member_limit", ЛимитПользователей);
|
||||||
@ -682,7 +590,7 @@
|
|||||||
ТЗнач.Сортировать("Ключ");
|
ТЗнач.Сортировать("Ключ");
|
||||||
|
|
||||||
СоответствиеВозврата = Новый Соответствие;
|
СоответствиеВозврата = Новый Соответствие;
|
||||||
DCS = "";
|
DCS = "";
|
||||||
|
|
||||||
Для Каждого СтрокаТЗ Из ТЗнач Цикл
|
Для Каждого СтрокаТЗ Из ТЗнач Цикл
|
||||||
|
|
||||||
@ -782,8 +690,8 @@
|
|||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// Неопределено, HTTPОтвет - Ответ сервера Telegram
|
// Неопределено, HTTPОтвет - Ответ сервера Telegram
|
||||||
Функция ЗакрытьТемуФорума(Знач Токен, Знач IDЧата, Знач IDТемы) Экспорт
|
Функция ЗакрытьТемуФорума(Знач Токен, Знач IDЧата, Знач IDТемы = "") Экспорт
|
||||||
Возврат УправлениеСостояниемТемыФорума(Токен, IDЧата, IDТемы, 2);
|
Возврат УправлениеСостояниемТемыФорума(Токен, IDЧата, 2, IDТемы);
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
// Открыть тему форума.
|
// Открыть тему форума.
|
||||||
@ -795,8 +703,8 @@
|
|||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// Неопределено, HTTPОтвет - Ответ сервера Telegram
|
// Неопределено, HTTPОтвет - Ответ сервера Telegram
|
||||||
Функция ОткрытьТемуФорума(Знач Токен, Знач IDЧата, Знач IDТемы) Экспорт
|
Функция ОткрытьТемуФорума(Знач Токен, Знач IDЧата, Знач IDТемы = "") Экспорт
|
||||||
Возврат УправлениеСостояниемТемыФорума(Токен, IDЧата, IDТемы, 1);
|
Возврат УправлениеСостояниемТемыФорума(Токен, IDЧата, 1, IDТемы);
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
// Удалить тему форума.
|
// Удалить тему форума.
|
||||||
@ -809,7 +717,84 @@
|
|||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// Неопределено, HTTPОтвет - Ответ сервера Telegram
|
// Неопределено, HTTPОтвет - Ответ сервера Telegram
|
||||||
Функция УдалитьТемуФорума(Знач Токен, Знач IDЧата, Знач IDТемы) Экспорт
|
Функция УдалитьТемуФорума(Знач Токен, Знач IDЧата, Знач IDТемы) Экспорт
|
||||||
Возврат УправлениеСостояниемТемыФорума(Токен, IDЧата, IDТемы, 3);
|
Возврат УправлениеСостояниемТемыФорума(Токен, IDЧата, 3, IDТемы);
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
// Скрыть главную тему форума.
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// Токен - Строка - Токен
|
||||||
|
// IDЧата - Строка,Число - ID чата темы
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// HTTPОтвет - Ответ сервера Telegram
|
||||||
|
Функция СкрытьГлавнуюТемуФорума(Знач Токен, Знач IDЧата) Экспорт
|
||||||
|
Возврат УправлениеВидимостьюГлавнойТемыФорума(Токен, IDЧата, Истина);
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
// Показать главную тему форума.
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// Токен - Строка - Токен
|
||||||
|
// IDЧата - Строка,Число - ID чата темы
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// HTTPОтвет - Ответ сервера Telegram
|
||||||
|
Функция ПоказатьГлавнуюТемуФорума(Знач Токен, Знач IDЧата) Экспорт
|
||||||
|
Возврат УправлениеВидимостьюГлавнойТемыФорума(Токен, IDЧата, Ложь);
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
// Изменить имя главной темы форума.
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// Токен - Строка - Токен
|
||||||
|
// IDЧата - Строка,Число - ID Чата темы
|
||||||
|
// Заголовок - Строка - Новый заголовок
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// HTTPОтвет - Ответ сервера Telegram
|
||||||
|
Функция ИзменитьИмяГлавнойТемыФорума(Знач Токен, Знач IDЧата, Знач Заголовок) Экспорт
|
||||||
|
|
||||||
|
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
|
||||||
|
Параметры_ = Новый Структура;
|
||||||
|
Параметры_.Вставить("chat_id", IDЧата);
|
||||||
|
Параметры_.Вставить("name" , Заголовок);
|
||||||
|
|
||||||
|
URL = "api.telegram.org/bot" + Токен + "/editGeneralForumTopic";
|
||||||
|
Ответ = OPI_Инструменты.Get(URL, Параметры_);
|
||||||
|
|
||||||
|
Возврат Ответ;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
// Очистить список закрепленных сообщений темы.
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// Токен - Строка - Токен
|
||||||
|
// IDЧата - Строка,Число - ID чата темы
|
||||||
|
// IDТемы - Строка - ID темы. Главная, если не заполнено
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// HTTPОтвет - Очистить список закрепленных сообщений темы
|
||||||
|
Функция ОчиститьСписокЗакрепленныхСообщенийТемы(Знач Токен, Знач IDЧата, Знач IDТемы = "") Экспорт
|
||||||
|
|
||||||
|
IDТемы = OPI_Инструменты.ЧислоВСтроку(IDТемы);
|
||||||
|
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
|
||||||
|
Параметры_ = Новый Структура;
|
||||||
|
Параметры_.Вставить("chat_id", IDЧата);
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(IDТемы) Тогда
|
||||||
|
Метод = "/unpinAllForumTopicMessages";
|
||||||
|
Параметры_.Вставить("message_thread_id", IDТемы);
|
||||||
|
Иначе
|
||||||
|
Метод = "/unpinAllGeneralForumTopicMessages";
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
URL = "api.telegram.org/bot" + Токен + Метод;
|
||||||
|
Ответ = OPI_Инструменты.Get(URL, Параметры_);
|
||||||
|
|
||||||
|
Возврат Ответ;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
@ -830,27 +815,9 @@
|
|||||||
, Знач ОднаПодОдной = Истина) Экспорт
|
, Знач ОднаПодОдной = Истина) Экспорт
|
||||||
|
|
||||||
Если ОднаПодОдной Тогда
|
Если ОднаПодОдной Тогда
|
||||||
|
Строки = СоздатьВысокуюКлавиатуру(МассивКнопок);
|
||||||
Строки = Новый Массив;
|
|
||||||
|
|
||||||
Для Каждого Кнопка Из МассивКнопок Цикл
|
|
||||||
Кнопки = Новый Массив;
|
|
||||||
Кнопка = OPI_Инструменты.ЧислоВСтроку(Кнопка);
|
|
||||||
Кнопки.Добавить(Новый Структура("text,callback_data", Кнопка, Кнопка));
|
|
||||||
Строки.Добавить(Кнопки);
|
|
||||||
КонецЦикла;
|
|
||||||
|
|
||||||
Иначе
|
Иначе
|
||||||
|
Строки = СоздатьДлиннуюКлваиатуру(МассивКнопок);
|
||||||
Строки = Новый Массив;
|
|
||||||
Кнопки = Новый Массив;
|
|
||||||
|
|
||||||
Для Каждого Кнопка Из МассивКнопок Цикл
|
|
||||||
Кнопка = OPI_Инструменты.ЧислоВСтроку(Кнопка);
|
|
||||||
Кнопки.Добавить(Новый Структура("text,callback_data", Кнопка, Кнопка));
|
|
||||||
КонецЦикла;
|
|
||||||
|
|
||||||
Строки.Добавить(Кнопки);
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если ПодСообщением Тогда
|
Если ПодСообщением Тогда
|
||||||
@ -915,7 +882,8 @@
|
|||||||
, Знач IDИконки = Неопределено
|
, Знач IDИконки = Неопределено
|
||||||
, Знач IDТемы = "")
|
, Знач IDТемы = "")
|
||||||
|
|
||||||
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
|
IDТемы = OPI_Инструменты.ЧислоВСтроку(IDТемы);
|
||||||
|
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
|
||||||
|
|
||||||
Параметры_ = Новый Структура;
|
Параметры_ = Новый Структура;
|
||||||
Параметры_.Вставить("name" , Заголовок);
|
Параметры_.Вставить("name" , Заголовок);
|
||||||
@ -923,16 +891,10 @@
|
|||||||
Параметры_.Вставить("icon_custom_emoji_id", IDИконки);
|
Параметры_.Вставить("icon_custom_emoji_id", IDИконки);
|
||||||
|
|
||||||
Если ЗначениеЗаполнено(IDТемы) Тогда
|
Если ЗначениеЗаполнено(IDТемы) Тогда
|
||||||
|
|
||||||
IDТемы = OPI_Инструменты.ЧислоВСтроку(IDТемы);
|
|
||||||
Метод = "/editForumTopic";
|
Метод = "/editForumTopic";
|
||||||
|
|
||||||
Параметры_.Вставить("message_thread_id", IDТемы);
|
Параметры_.Вставить("message_thread_id", IDТемы);
|
||||||
|
|
||||||
Иначе
|
Иначе
|
||||||
|
|
||||||
Метод = "/createForumTopic";
|
Метод = "/createForumTopic";
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
OPI_Инструменты.УдалитьПустыеПоляКоллекции(Параметры_);
|
OPI_Инструменты.УдалитьПустыеПоляКоллекции(Параметры_);
|
||||||
@ -942,28 +904,102 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция УправлениеСостояниемТемыФорума(Знач Токен, Знач IDЧата, Знач IDТемы, Знач Статус)
|
Функция УправлениеСостояниемТемыФорума(Знач Токен, Знач IDЧата, Знач Статус, Знач IDТемы = "")
|
||||||
|
|
||||||
Если Статус = 1 Тогда
|
Если ЗначениеЗаполнено(IDТемы) Тогда
|
||||||
Метод = "/reopenForumTopic";
|
Форум = "Forum";
|
||||||
ИначеЕсли Статус = 2 Тогда
|
|
||||||
Метод = "/closeForumTopic";
|
|
||||||
ИначеЕсли Статус = 3 Тогда
|
|
||||||
Метод = "/deleteForumTopic";
|
|
||||||
Иначе
|
Иначе
|
||||||
Возврат Неопределено;
|
Форум = "GeneralForum";
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
IDТемы = OPI_Инструменты.ЧислоВСтроку(IDТемы);
|
||||||
|
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
|
||||||
|
Метод = ОпределитьМетодУправленияФорумом(Статус, Форум);
|
||||||
|
Параметры_ = Новый Структура;
|
||||||
|
Параметры_.Вставить("chat_id", IDЧата);
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(IDТемы) Тогда
|
||||||
|
Параметры_.Вставить("message_thread_id", IDТемы);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
URL = "api.telegram.org/bot" + Токен + Метод;
|
||||||
|
Ответ = OPI_Инструменты.Get(URL, Параметры_);
|
||||||
|
|
||||||
|
Возврат Ответ;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Функция УправлениеВидимостьюГлавнойТемыФорума(Знач Токен, Знач IDЧата, Знач Скрыть)
|
||||||
|
|
||||||
|
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
|
||||||
|
|
||||||
|
Если Скрыть Тогда
|
||||||
|
Метод = "/hideGeneralForumTopic";
|
||||||
|
Иначе
|
||||||
|
Метод = "/unhideGeneralForumTopic";
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Параметры_ = Новый Структура;
|
Параметры_ = Новый Структура;
|
||||||
Параметры_.Вставить("chat_id" , IDЧата);
|
Параметры_.Вставить("chat_id", IDЧата);
|
||||||
Параметры_.Вставить("message_thread_id", IDТемы);
|
|
||||||
|
|
||||||
Ответ = OPI_Инструменты.Get("api.telegram.org/bot" + Токен + Метод, Параметры_);
|
URL = "api.telegram.org/bot" + Токен + Метод;
|
||||||
|
Ответ = OPI_Инструменты.Get(URL, Параметры_);
|
||||||
|
|
||||||
Возврат Ответ;
|
Возврат Ответ;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ОпределитьМетодУправленияФорумом(Знач Статус, Знач Форум)
|
||||||
|
|
||||||
|
Открыть = 1;
|
||||||
|
Закрыть = 2;
|
||||||
|
Удалить = 3;
|
||||||
|
|
||||||
|
Если Статус = Открыть Тогда
|
||||||
|
Метод = "/reopen" + Форум + "Topic";
|
||||||
|
ИначеЕсли Статус = Закрыть Тогда
|
||||||
|
Метод = "/close" + Форум + "Topic";
|
||||||
|
ИначеЕсли Статус = Удалить Тогда
|
||||||
|
Метод = "/deleteForumTopic";
|
||||||
|
Иначе
|
||||||
|
ВызватьИсключение "Некорректный статус управления форумом";
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат Метод;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Функция СоздатьВысокуюКлавиатуру(Знач МассивКнопок)
|
||||||
|
|
||||||
|
Строки = Новый Массив;
|
||||||
|
|
||||||
|
Для Каждого Кнопка Из МассивКнопок Цикл
|
||||||
|
Кнопки = Новый Массив;
|
||||||
|
Кнопка = OPI_Инструменты.ЧислоВСтроку(Кнопка);
|
||||||
|
Кнопки.Добавить(Новый Структура("text,callback_data", Кнопка, Кнопка));
|
||||||
|
Строки.Добавить(Кнопки);
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Возврат Строки;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Функция СоздатьДлиннуюКлваиатуру(Знач МассивКнопок)
|
||||||
|
|
||||||
|
Строки = Новый Массив;
|
||||||
|
Кнопки = Новый Массив;
|
||||||
|
|
||||||
|
Для Каждого Кнопка Из МассивКнопок Цикл
|
||||||
|
Кнопка = OPI_Инструменты.ЧислоВСтроку(Кнопка);
|
||||||
|
Кнопки.Добавить(Новый Структура("text,callback_data", Кнопка, Кнопка));
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Строки.Добавить(Кнопки);
|
||||||
|
|
||||||
|
Возврат Строки;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
Процедура СформироватьМассивМедиа(Знач СоответствиеФайлов, Знач Текст, СтруктураФайлов, Медиа)
|
Процедура СформироватьМассивМедиа(Знач СоответствиеФайлов, Знач Текст, СтруктураФайлов, Медиа)
|
||||||
|
|
||||||
Счетчик = 0;
|
Счетчик = 0;
|
||||||
|
@ -26,6 +26,9 @@
|
|||||||
|
|
||||||
// BSLLS:Typo-off
|
// BSLLS:Typo-off
|
||||||
|
|
||||||
|
//Раскомментировать, если выполняется OneScript
|
||||||
|
//#Использовать ".."
|
||||||
|
|
||||||
#Область ПрограммныйИнтерфейс
|
#Область ПрограммныйИнтерфейс
|
||||||
|
|
||||||
#Область ДанныеИНастройка
|
#Область ДанныеИНастройка
|
||||||
@ -490,6 +493,7 @@
|
|||||||
|
|
||||||
Функция СоздатьЗаголовокАвторизацииV1(Знач Параметры, Знач Поля, Знач ВидЗапроса, Знач URL)
|
Функция СоздатьЗаголовокАвторизацииV1(Знач Параметры, Знач Поля, Знач ВидЗапроса, Знач URL)
|
||||||
|
|
||||||
|
ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДата();
|
||||||
ЗаголовокАвторизации = "";
|
ЗаголовокАвторизации = "";
|
||||||
МетодХэширования = "HMAC-SHA1";
|
МетодХэширования = "HMAC-SHA1";
|
||||||
ВерсияАпи = "1.0";
|
ВерсияАпи = "1.0";
|
||||||
@ -497,7 +501,7 @@
|
|||||||
Подпись = "";
|
Подпись = "";
|
||||||
OCK = "oauth_consumer_key";
|
OCK = "oauth_consumer_key";
|
||||||
OTK = "oauth_token";
|
OTK = "oauth_token";
|
||||||
ТекущаяДатаUNIX = OPI_Инструменты.UNIXTime(ТекущаяДатаСеанса());
|
ТекущаяДатаUNIX = OPI_Инструменты.UNIXTime(ТекущаяДата);
|
||||||
ТекущаяДатаUNIX = OPI_Инструменты.ЧислоВСтроку(ТекущаяДатаUNIX);
|
ТекущаяДатаUNIX = OPI_Инструменты.ЧислоВСтроку(ТекущаяДатаUNIX);
|
||||||
ТаблицаПараметров = Новый ТаблицаЗначений;
|
ТаблицаПараметров = Новый ТаблицаЗначений;
|
||||||
ТаблицаПараметров.Колонки.Добавить("Ключ");
|
ТаблицаПараметров.Колонки.Добавить("Ключ");
|
||||||
|
@ -26,6 +26,9 @@
|
|||||||
|
|
||||||
// BSLLS:NumberOfOptionalParams-off
|
// BSLLS:NumberOfOptionalParams-off
|
||||||
|
|
||||||
|
//Раскомментировать, если выполняется OneScript
|
||||||
|
//#Использовать ".."
|
||||||
|
|
||||||
#Область ПрограммныйИнтерфейс
|
#Область ПрограммныйИнтерфейс
|
||||||
|
|
||||||
#Область ПолучениеТокена
|
#Область ПолучениеТокена
|
||||||
@ -653,12 +656,13 @@
|
|||||||
// ДвоичныеДанные, Неопределено, Произвольный - Ответ сервера
|
// ДвоичныеДанные, Неопределено, Произвольный - Ответ сервера
|
||||||
Функция СоздатьРекламнуюКампанию(Знач IDКабинета, Знач Наименование, Знач Параметры = "") Экспорт
|
Функция СоздатьРекламнуюКампанию(Знач IDКабинета, Знач Наименование, Знач Параметры = "") Экспорт
|
||||||
|
|
||||||
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
|
ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДата();
|
||||||
|
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
|
||||||
Параметры_.Вставить("account_id", OPI_Инструменты.ЧислоВСтроку(IDКабинета));
|
Параметры_.Вставить("account_id", OPI_Инструменты.ЧислоВСтроку(IDКабинета));
|
||||||
|
|
||||||
МассивСтруктур = Новый Массив;
|
МассивСтруктур = Новый Массив;
|
||||||
ДатаСтарт = Формат(ТекущаяДатаСеанса() - Дата(1970, 1, 1, 1, 0, 0), "ЧГ=0");
|
ДатаСтарт = Формат(ТекущаяДата - Дата(1970, 1, 1, 1, 0, 0), "ЧГ=0");
|
||||||
ДатаСтоп = Формат(ДобавитьМесяц(ТекущаяДатаСеанса(), 24) - Дата(1970, 1, 1, 1, 0, 0), "ЧГ=0");
|
ДатаСтоп = Формат(ДобавитьМесяц(ТекущаяДата, 24) - Дата(1970, 1, 1, 1, 0, 0), "ЧГ=0");
|
||||||
|
|
||||||
СтруктураКампании = Новый Структура;
|
СтруктураКампании = Новый Структура;
|
||||||
СтруктураКампании.Вставить("type" , "promoted_posts");
|
СтруктураКампании.Вставить("type" , "promoted_posts");
|
||||||
|
@ -22,6 +22,9 @@
|
|||||||
|
|
||||||
// https://github.com/Bayselonarrend/OpenIntegrations
|
// https://github.com/Bayselonarrend/OpenIntegrations
|
||||||
|
|
||||||
|
//Раскомментировать, если выполняется OneScript
|
||||||
|
//#Использовать ".."
|
||||||
|
|
||||||
#Область ПрограммныйИнтерфейс
|
#Область ПрограммныйИнтерфейс
|
||||||
|
|
||||||
#Область НастройкиИИнформация
|
#Область НастройкиИИнформация
|
||||||
|
@ -22,6 +22,9 @@
|
|||||||
|
|
||||||
// https://github.com/Bayselonarrend/OpenIntegrations
|
// https://github.com/Bayselonarrend/OpenIntegrations
|
||||||
|
|
||||||
|
//Раскомментировать, если выполняется OneScript
|
||||||
|
//#Использовать ".."
|
||||||
|
|
||||||
#Область ПрограммныйИнтерфейс
|
#Область ПрограммныйИнтерфейс
|
||||||
|
|
||||||
#Область РаботаСФайламиИПапками
|
#Область РаботаСФайламиИПапками
|
||||||
|
@ -22,6 +22,9 @@
|
|||||||
|
|
||||||
// https://github.com/Bayselonarrend/OpenIntegrations
|
// https://github.com/Bayselonarrend/OpenIntegrations
|
||||||
|
|
||||||
|
//Раскомментировать, если выполняется OneScript
|
||||||
|
//#Использовать ".."
|
||||||
|
|
||||||
#Область ПрограммныйИнтерфейс
|
#Область ПрограммныйИнтерфейс
|
||||||
|
|
||||||
// Получить код подтверждения.
|
// Получить код подтверждения.
|
||||||
|
@ -23,6 +23,9 @@
|
|||||||
// https://github.com/Bayselonarrend/OpenIntegrations
|
// https://github.com/Bayselonarrend/OpenIntegrations
|
||||||
// BSLLS:Typo-off
|
// BSLLS:Typo-off
|
||||||
|
|
||||||
|
//Раскомментировать, если выполняется OneScript
|
||||||
|
//#Использовать ".."
|
||||||
|
|
||||||
#Область СлужебныйПрограммныйИнтерфейс
|
#Область СлужебныйПрограммныйИнтерфейс
|
||||||
|
|
||||||
#Область HTTPМетоды
|
#Область HTTPМетоды
|
||||||
@ -103,6 +106,13 @@
|
|||||||
Возврат Формат(Дата - Дата(1970, 1, 1, 1, 0, 0), "ЧГ=0");
|
Возврат Формат(Дата - Дата(1970, 1, 1, 1, 0, 0), "ЧГ=0");
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ПолучитьТекущуюДата() Экспорт
|
||||||
|
|
||||||
|
//@skip-check use-non-recommended-method
|
||||||
|
Возврат ТекущаяДата();
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
Процедура ЗаменитьСпецСимволы(Текст) Экспорт
|
Процедура ЗаменитьСпецСимволы(Текст) Экспорт
|
||||||
|
|
||||||
МассивСимволов = Новый Соответствие;
|
МассивСимволов = Новый Соответствие;
|
||||||
@ -142,6 +152,17 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура Пауза(Знач Секунды) Экспорт
|
||||||
|
|
||||||
|
Соединение = Новый HTTPСоединение("1C.ru", 11111, , , , Секунды);
|
||||||
|
Попытка
|
||||||
|
Соединение.Получить(Новый HTTPЗапрос(""));
|
||||||
|
Исключение
|
||||||
|
Возврат;
|
||||||
|
Конецпопытки;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|
||||||
#Область Служебные
|
#Область Служебные
|
||||||
@ -155,8 +176,12 @@
|
|||||||
СтрокаПараметров = "?";
|
СтрокаПараметров = "?";
|
||||||
|
|
||||||
Для Каждого Параметр Из Параметры Цикл
|
Для Каждого Параметр Из Параметры Цикл
|
||||||
СтрокаПараметров = СтрокаПараметров + Параметр.Ключ + "=" + КодироватьСтроку(Параметр.Значение,
|
СтрокаПараметров = СтрокаПараметров
|
||||||
СпособКодированияСтроки.КодировкаURL) + "&";
|
+ Параметр.Ключ
|
||||||
|
+ "="
|
||||||
|
+ КодироватьСтроку(Параметр.Значение,
|
||||||
|
СпособКодированияСтроки.КодировкаURL)
|
||||||
|
+ "&";
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
СтрокаПараметров = Лев(СтрокаПараметров, СтрДлина(СтрокаПараметров) - 1);
|
СтрокаПараметров = Лев(СтрокаПараметров, СтрДлина(СтрокаПараметров) - 1);
|
||||||
@ -171,22 +196,32 @@
|
|||||||
URL = СтрЗаменить(URL, "http://", "");
|
URL = СтрЗаменить(URL, "http://", "");
|
||||||
URL = СтрЗаменить(URL, ":443", "");
|
URL = СтрЗаменить(URL, ":443", "");
|
||||||
|
|
||||||
|
Адрес = Прав(URL, СтрДлина(URL) - СтрНайти(URL, "/", НаправлениеПоиска.СНачала) + 1);
|
||||||
|
Сервер = Лев(URL, СтрНайти(URL, "/", НаправлениеПоиска.СНачала) - 1);
|
||||||
|
|
||||||
|
Попытка
|
||||||
|
//@skip-check module-unused-local-variable
|
||||||
|
SSL = Новый ЗащищенноеСоединениеOpenSSL;
|
||||||
|
Исключение
|
||||||
|
Сервер = "https://" + Сервер;
|
||||||
|
КонецПопытки;
|
||||||
|
|
||||||
СтруктураВозврата = Новый Структура;
|
СтруктураВозврата = Новый Структура;
|
||||||
СтруктураВозврата.Вставить("Сервер", Лев(URL, СтрНайти(URL, "/", НаправлениеПоиска.СНачала) - 1));
|
СтруктураВозврата.Вставить("Сервер", Сервер);
|
||||||
СтруктураВозврата.Вставить("Адрес", Прав(URL, СтрДлина(URL) - СтрНайти(URL, "/", НаправлениеПоиска.СНачала) + 1));
|
СтруктураВозврата.Вставить("Адрес" , Адрес);
|
||||||
|
|
||||||
Возврат СтруктураВозврата;
|
Возврат СтруктураВозврата;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция JsonВСтруктуру(Знач Текст, Знач Кодировка = "utf-8") Экспорт
|
Функция JsonВСтруктуру(Знач Текст) Экспорт
|
||||||
|
|
||||||
Если Не ЗначениеЗаполнено(Текст) Тогда
|
Если Не ЗначениеЗаполнено(Текст) Тогда
|
||||||
Возврат "";
|
Возврат "";
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ЧтениеJSON = Новый ЧтениеJSON;
|
ЧтениеJSON = Новый ЧтениеJSON;
|
||||||
ЧтениеJSON.ОткрытьПоток(Текст.ОткрытьПотокДляЧтения());
|
ЧтениеJSON.УстановитьСтроку(ПолучитьСтрокуИзДвоичныхДанных(Текст));
|
||||||
|
|
||||||
Данные = ПрочитатьJSON(ЧтениеJSON, Истина, Неопределено, ФорматДатыJSON.ISO);
|
Данные = ПрочитатьJSON(ЧтениеJSON, Истина, Неопределено, ФорматДатыJSON.ISO);
|
||||||
ЧтениеJSON.Закрыть();
|
ЧтениеJSON.Закрыть();
|
||||||
@ -213,6 +248,18 @@
|
|||||||
Возврат СтрЗаменить(Строка(Число), Символы.НПП, "");
|
Возврат СтрЗаменить(Строка(Число), Символы.НПП, "");
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ПрочитатьJSONФайл(Знач Путь) Экспорт
|
||||||
|
|
||||||
|
ЧтениеJSON = Новый ЧтениеJSON;
|
||||||
|
ЧтениеJSON.ОткрытьФайл(Путь);
|
||||||
|
Значения = ПрочитатьJSON(ЧтениеJSON);
|
||||||
|
|
||||||
|
ЧтениеJSON.Закрыть();
|
||||||
|
|
||||||
|
Возврат Значения;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
@ -350,7 +397,14 @@
|
|||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция СоздатьСоединение(Знач Сервер)
|
Функция СоздатьСоединение(Знач Сервер)
|
||||||
Возврат Новый HTTPСоединение(Сервер, 443, , , , 300, Новый ЗащищенноеСоединениеOpenSSL);
|
|
||||||
|
Попытка
|
||||||
|
SSL = Новый ЗащищенноеСоединениеOpenSSL;
|
||||||
|
Возврат Новый HTTPСоединение(Сервер, 443, , , , 300, SSL);
|
||||||
|
Исключение
|
||||||
|
Возврат Новый HTTPСоединение(Сервер, 443, , , , 300);
|
||||||
|
КонецПопытки;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция ЭтоПереадресация(Знач Ответ)
|
Функция ЭтоПереадресация(Знач Ответ)
|
||||||
|
275
OPI/src/CommonModules/OPI_ПолучениеДанныхТестов/Module.bsl
Normal file
275
OPI/src/CommonModules/OPI_ПолучениеДанныхТестов/Module.bsl
Normal file
@ -0,0 +1,275 @@
|
|||||||
|
// MIT License
|
||||||
|
|
||||||
|
// Copyright (c) 2023 Anton Tsitavets
|
||||||
|
|
||||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
// of this software and associated documentation files (the "Software"), to deal
|
||||||
|
// in the Software without restriction, including without limitation the rights
|
||||||
|
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
// copies of the Software, and to permit persons to whom the Software is
|
||||||
|
// furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
// The above copyright notice and this permission notice shall be included in all
|
||||||
|
// copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
// SOFTWARE.
|
||||||
|
|
||||||
|
// https://github.com/Bayselonarrend/OpenIntegrations
|
||||||
|
|
||||||
|
//Раскомментировать, если выполняется OneScript
|
||||||
|
//#Использовать ".."
|
||||||
|
|
||||||
|
|
||||||
|
// @skip-check undefined-variable
|
||||||
|
|
||||||
|
#Область СлужебныйПрограммныйИнтерфейс
|
||||||
|
|
||||||
|
Функция ОжидаетЧто(Значение) Экспорт
|
||||||
|
|
||||||
|
Попытка
|
||||||
|
|
||||||
|
Модуль = ПолучитьОбщийМодуль("ЮТест");
|
||||||
|
Ожидаем = ТипЗнч(Модуль) = Тип("ОбщийМодуль");
|
||||||
|
Возврат Модуль.ОжидаетЧто(Значение);
|
||||||
|
|
||||||
|
Исключение
|
||||||
|
Возврат Ожидаем.Что(Значение);
|
||||||
|
КонецПопытки;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Функция СформироватьТестыЯкс() Экспорт
|
||||||
|
|
||||||
|
Модуль = ПолучитьОбщийМодуль("ЮТТесты");
|
||||||
|
МассивРазделов = ПолучитьМассивРазделовТестирования();
|
||||||
|
ТаблицаТестов = ПолучитьТаблицуТестов();
|
||||||
|
|
||||||
|
Для Каждого Раздел Из МассивРазделов Цикл
|
||||||
|
|
||||||
|
Отбор = Новый Структура("Раздел", Раздел);
|
||||||
|
ТестыРаздела = ТаблицаТестов.НайтиСтроки(Отбор);
|
||||||
|
|
||||||
|
Набор = Модуль.ДобавитьТестовыйНабор(Раздел);
|
||||||
|
|
||||||
|
Для Каждого Тест Из ТестыРаздела Цикл
|
||||||
|
Набор.ДобавитьСерверныйТест(Тест.Метод, Тест.Синоним);
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Возврат "";
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Функция СформироватьТестыАссертс() Экспорт
|
||||||
|
|
||||||
|
ТаблицаТестов = ПолучитьТаблицуТестов();
|
||||||
|
МассивТестов = Новый Массив;
|
||||||
|
|
||||||
|
Для Каждого Тест Из ТаблицаТестов Цикл
|
||||||
|
МассивТестов.Добавить(Тест.Метод);
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Возврат МассивТестов;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ПолучитьПараметр(Параметр) Экспорт
|
||||||
|
|
||||||
|
Путь = ПутьКФайлуДанных();
|
||||||
|
Возврат ПолучитьЗначениеИзФайла(Параметр, Путь);
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ПолучитьДвоичные(Параметр) Экспорт
|
||||||
|
|
||||||
|
Путь = ПутьКФайлуДанных();
|
||||||
|
Значение = ПолучитьЗначениеИзФайла(Параметр, Путь);
|
||||||
|
|
||||||
|
Если ТипЗнч(Значение) = Тип("Строка") Тогда
|
||||||
|
Значение = ПолучитьФайлПути(Значение);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат Значение;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ПолучитьФайлПути(Знач Путь) Экспорт
|
||||||
|
|
||||||
|
Если СтрНайти(Путь, "http") > 0
|
||||||
|
Или СтрНайти(Путь, "www") > 0 Тогда
|
||||||
|
|
||||||
|
ИВФ = ПолучитьИмяВременногоФайла();
|
||||||
|
КопироватьФайл(Путь, ИВФ);
|
||||||
|
Путь = ИВФ;
|
||||||
|
Двоичные = Новый ДвоичныеДанные(Путь);
|
||||||
|
|
||||||
|
УдалитьФайлы(ИВФ);
|
||||||
|
|
||||||
|
Иначе
|
||||||
|
|
||||||
|
Двоичные = Новый ДвоичныеДанные(Путь);
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат Двоичные;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Процедура ЗаписатьПараметр(Параметр, Значение) Экспорт
|
||||||
|
|
||||||
|
Путь = ПутьКФайлуДанных();
|
||||||
|
ЗаписатьПараметрВФайл(Параметр, Значение, Путь);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
#КонецОбласти
|
||||||
|
|
||||||
|
#Область СлужебныеПроцедурыИФункции
|
||||||
|
|
||||||
|
Функция ПолучитьЗначениеИзФайла(Параметр, Путь)
|
||||||
|
|
||||||
|
Значения = OPI_Инструменты.ПрочитатьJSONФайл(Путь);
|
||||||
|
Возврат Значения[Параметр];
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ПутьКФайлуДанных()
|
||||||
|
Возврат "C:\data.json";
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ПолучитьМассивРазделовТестирования()
|
||||||
|
|
||||||
|
МассивРазделов = Новый Массив;
|
||||||
|
МассивРазделов.Добавить("Телеграм");
|
||||||
|
МассивРазделов.Добавить("ВКонтакте");
|
||||||
|
МассивРазделов.Добавить("Яндекс.Диск");
|
||||||
|
МассивРазделов.Добавить("Google Calendar");
|
||||||
|
МассивРазделов.Добавить("Twitter");
|
||||||
|
|
||||||
|
Возврат МассивРазделов;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ПолучитьТаблицуТестов()
|
||||||
|
|
||||||
|
Телеграм = "Телеграм";
|
||||||
|
ВКонтакте = "ВКонтакте";
|
||||||
|
ЯДиск = "Яндекс.Диск";
|
||||||
|
Календарь = "Google Calendar";
|
||||||
|
Твиттер = "Twitter";
|
||||||
|
|
||||||
|
ТаблицаТестов = Новый ТаблицаЗначений;
|
||||||
|
ТаблицаТестов.Колонки.Добавить("Метод");
|
||||||
|
ТаблицаТестов.Колонки.Добавить("Синоним");
|
||||||
|
ТаблицаТестов.Колонки.Добавить("Раздел");
|
||||||
|
|
||||||
|
НовыйТест(ТаблицаТестов, "Телеграм_ПолучитьИнформациюБота" , "Получить информацию бота" , Телеграм);
|
||||||
|
НовыйТест(ТаблицаТестов, "Телеграм_ПолучитьОбновления" , "Получить обновления" , Телеграм);
|
||||||
|
НовыйТест(ТаблицаТестов, "Телеграм_УстановитьWebhook" , "Установить Webhook" , Телеграм);
|
||||||
|
НовыйТест(ТаблицаТестов, "Телеграм_УдалитьWebhook" , "Удалить Webhook" , Телеграм);
|
||||||
|
НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьТекстовоеСообщение" , "Отправить текстовое сообщение" , Телеграм);
|
||||||
|
НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьКартинку" , "Отправить картинку" , Телеграм);
|
||||||
|
НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьВидео" , "Отправить видео" , Телеграм);
|
||||||
|
НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьАудио" , "Отправить аудио" , Телеграм);
|
||||||
|
НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьДокумент" , "Отправить документ" , Телеграм);
|
||||||
|
НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьГифку" , "Отправить гифку" , Телеграм);
|
||||||
|
НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьМедиагруппу" , "Отправить медиагруппу" , Телеграм);
|
||||||
|
НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьМестоположение" , "Отправить местоположение" , Телеграм);
|
||||||
|
НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьКонтакт" , "Отправить контакт" , Телеграм);
|
||||||
|
НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьОпрос" , "Отправить опрос" , Телеграм);
|
||||||
|
НовыйТест(ТаблицаТестов, "Телеграм_ПереслатьСообщение" , "Переслать сообщение" , Телеграм);
|
||||||
|
НовыйТест(ТаблицаТестов, "Телеграм_БанРазбан" , "Бан/Разбан" , Телеграм);
|
||||||
|
НовыйТест(ТаблицаТестов, "Телеграм_СоздатьСсылкуПриглашение" , "Создать ссылку-приглашение" , Телеграм);
|
||||||
|
НовыйТест(ТаблицаТестов, "Телеграм_ЗакрепитьОткрепитьСообщение" , "Закрепить/Открепить сообщение" , Телеграм);
|
||||||
|
НовыйТест(ТаблицаТестов, "Телеграм_ПолучитьЧислоУчастников" , "Получить число участников" , Телеграм);
|
||||||
|
НовыйТест(ТаблицаТестов, "Телеграм_ПолучитьСписокАватаровФорума", "Получить список аватаров форума", Телеграм);
|
||||||
|
НовыйТест(ТаблицаТестов, "Телеграм_СоздатьУдалитьТемуФорума" , "Создать/Удалить тему форума" , Телеграм);
|
||||||
|
НовыйТест(ТаблицаТестов, "Телеграм_ОткрытьЗакрытьГлавнуюТему" , "Открыть/Закрыть главную тему" , Телеграм);
|
||||||
|
НовыйТест(ТаблицаТестов, "Телеграм_ИзменитьИмяГлавнойТемы" , "Изменить имя главной темы" , Телеграм);
|
||||||
|
|
||||||
|
НовыйТест(ТаблицаТестов, "ВК_СоздатьСсылкуТокена" , "Создать ссылку получения токена", ВКонтакте);
|
||||||
|
НовыйТест(ТаблицаТестов, "ВК_СоздатьУдалитьПост" , "Создать/Удалить пост" , ВКонтакте);
|
||||||
|
НовыйТест(ТаблицаТестов, "ВК_СоздатьОпрос" , "Создать опрос" , ВКонтакте);
|
||||||
|
НовыйТест(ТаблицаТестов, "ВК_СохранитьУдалитьКартинку" , "Добавить/Удалить картинку" , ВКонтакте);
|
||||||
|
НовыйТест(ТаблицаТестов, "ВК_СоздатьИсторию" , "Создать историю" , ВКонтакте);
|
||||||
|
НовыйТест(ТаблицаТестов, "ВК_МетодыОбсуждений" , "Действия с обсуждениями" , ВКонтакте);
|
||||||
|
НовыйТест(ТаблицаТестов, "ВК_ЛайкРепостКоммент" , "Лайк/Репост/Комментарий" , ВКонтакте);
|
||||||
|
НовыйТест(ТаблицаТестов, "ВК_ПолучитьСтатистику" , "Получить статистику" , ВКонтакте);
|
||||||
|
НовыйТест(ТаблицаТестов, "ВК_ПолучитьСтатистикуПостов" , "Получить статистику постов" , ВКонтакте);
|
||||||
|
НовыйТест(ТаблицаТестов, "ВК_СоздатьРекламнуюКампанию" , "Создать рекламную кампанию" , ВКонтакте);
|
||||||
|
НовыйТест(ТаблицаТестов, "ВК_ОтправитьСообщение" , "Отправить сообщение" , ВКонтакте);
|
||||||
|
НовыйТест(ТаблицаТестов, "ВК_ПолучитьКатегорииТоваров" , "Получить категории товаров" , ВКонтакте);
|
||||||
|
НовыйТест(ТаблицаТестов, "ВК_СоздатьТоварПодборку" , "Создать товар и подборку" , ВКонтакте);
|
||||||
|
НовыйТест(ТаблицаТестов, "ВК_СоздатьТоварСоСвойствами" , "Создать товар со свойствами" , ВКонтакте);
|
||||||
|
НовыйТест(ТаблицаТестов, "ВК_ПолучитьСписокТоваров" , "Получить список товаров" , ВКонтакте);
|
||||||
|
НовыйТест(ТаблицаТестов, "ВК_ПолучитьСписокПодборок" , "Получить список подборок" , ВКонтакте);
|
||||||
|
НовыйТест(ТаблицаТестов, "ВК_ПолучитьСписокСвойств" , "Получить список свойств" , ВКонтакте);
|
||||||
|
НовыйТест(ТаблицаТестов, "ВК_ПолучитьСписокЗаказов" , "Получить список заказов" , ВКонтакте);
|
||||||
|
|
||||||
|
НовыйТест(ТаблицаТестов, "ЯДиск_ПолучитьИнформациюОДиске" , "Получить информацию о диске" , ЯДиск);
|
||||||
|
НовыйТест(ТаблицаТестов, "ЯДиск_СоздатьПапку" , "Создать папку" , ЯДиск);
|
||||||
|
НовыйТест(ТаблицаТестов, "ЯДиск_ЗагрузитьПоАдресуПолучитьОбъект", "Загрузить по URL и получить" , ЯДиск);
|
||||||
|
НовыйТест(ТаблицаТестов, "ЯДиск_ЗагрузитьУдалитьФайл" , "Загрузить/Удалить файл" , ЯДиск);
|
||||||
|
НовыйТест(ТаблицаТестов, "ЯДиск_СоздатьКопиюОбъекта" , "Создать копию объекта" , ЯДиск);
|
||||||
|
НовыйТест(ТаблицаТестов, "ЯДиск_ПолучитьСсылкуНаСкачивание" , "Получить ссылку на скачивание" , ЯДиск);
|
||||||
|
НовыйТест(ТаблицаТестов, "ЯДиск_ПолучитьСписокФайлов" , "Получить список файлов" , ЯДиск);
|
||||||
|
НовыйТест(ТаблицаТестов, "ЯДиск_ПереместитьОбъект" , "Переместить объект" , ЯДиск);
|
||||||
|
НовыйТест(ТаблицаТестов, "ЯДиск_ДействияПубличныхОбъектов" , "Действия с публичными объектами", ЯДиск);
|
||||||
|
НовыйТест(ТаблицаТестов, "ЯДиск_ПолучитьСписокОпубликованных" , "Получить список опубликованных" , ЯДиск);
|
||||||
|
|
||||||
|
НовыйТест(ТаблицаТестов, "ГК_ПолучитьСсылкуАвторизации" , "Получить ссылку авторизации" , Календарь);
|
||||||
|
НовыйТест(ТаблицаТестов, "ГК_ПолучитьТокен" , "Получить токен" , Календарь);
|
||||||
|
НовыйТест(ТаблицаТестов, "ГК_ОбновитьТокен" , "Обновить токен" , Календарь);
|
||||||
|
НовыйТест(ТаблицаТестов, "ГК_ПолучитьСписокКалендарей" , "Получить список календарей" , Календарь);
|
||||||
|
НовыйТест(ТаблицаТестов, "ГК_СоздатьУдалитьКалендарь" , "Создать/Удалить календарь" , Календарь);
|
||||||
|
НовыйТест(ТаблицаТестов, "ГК_СоздатьУдалитьСобытие" , "Создать/Удалить событие" , Календарь);
|
||||||
|
НовыйТест(ТаблицаТестов, "ГК_ПолучитьСписокСобытий" , "Получить список событий" , Календарь);
|
||||||
|
|
||||||
|
НовыйТест(ТаблицаТестов, "Твиттер_ОбновитьТокен" , "Обновить токен" , Твиттер);
|
||||||
|
|
||||||
|
Возврат ТаблицаТестов;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ПолучитьОбщийМодуль(Знач Имя)
|
||||||
|
|
||||||
|
УстановитьБезопасныйРежим(Истина);
|
||||||
|
|
||||||
|
Модуль = Вычислить(Имя);
|
||||||
|
|
||||||
|
УстановитьБезопасныйРежим(Ложь);
|
||||||
|
|
||||||
|
Возврат Модуль;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Процедура НовыйТест(ТаблицаЗначений, Знач Метод, Знач Синоним, Знач Раздел);
|
||||||
|
|
||||||
|
НовыйТест = ТаблицаЗначений.Добавить();
|
||||||
|
НовыйТест.Метод = Метод;
|
||||||
|
НовыйТест.Синоним = Синоним;
|
||||||
|
НовыйТест.Раздел = Раздел;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура ЗаписатьПараметрВФайл(Знач Параметр, Знач Значение, Знач Путь)
|
||||||
|
|
||||||
|
Значения = OPI_Инструменты.ПрочитатьJSONФайл(Путь);
|
||||||
|
Значения.Вставить(Параметр, Значение);
|
||||||
|
|
||||||
|
Запись = Новый ЗаписьJSON;
|
||||||
|
ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Авто, Символы.Таб);
|
||||||
|
Запись.ОткрытьФайл(Путь, , , ПараметрыЗаписиJSON);
|
||||||
|
ЗаписатьJSON(Запись, Значения);
|
||||||
|
Запись.Закрыть();
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
#КонецОбласти
|
@ -0,0 +1,11 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="546edcad-c9a0-4823-a44c-fefd7200de6c">
|
||||||
|
<name>OPI_ПолучениеДанныхТестов</name>
|
||||||
|
<synonym>
|
||||||
|
<key></key>
|
||||||
|
<value>OPI получение данных тестов</value>
|
||||||
|
</synonym>
|
||||||
|
<server>true</server>
|
||||||
|
<externalConnection>true</externalConnection>
|
||||||
|
<clientOrdinaryApplication>true</clientOrdinaryApplication>
|
||||||
|
</mdclass:CommonModule>
|
File diff suppressed because it is too large
Load Diff
@ -1,10 +1,14 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="ca6868b2-8987-4ae3-9d97-50a8becc72df">
|
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="ca6868b2-8987-4ae3-9d97-50a8becc72df">
|
||||||
<name>YAX_Тесты</name>
|
<name>OPI_Тесты</name>
|
||||||
<synonym>
|
<synonym>
|
||||||
<key>ru</key>
|
<key>ru</key>
|
||||||
<value>Тесты для YaxUnit (ОПИ)</value>
|
<value>Тесты для YaxUnit (ОПИ)</value>
|
||||||
</synonym>
|
</synonym>
|
||||||
|
<synonym>
|
||||||
|
<key></key>
|
||||||
|
<value>OPI тесты</value>
|
||||||
|
</synonym>
|
||||||
<server>true</server>
|
<server>true</server>
|
||||||
<externalConnection>true</externalConnection>
|
<externalConnection>true</externalConnection>
|
||||||
<clientOrdinaryApplication>true</clientOrdinaryApplication>
|
<clientOrdinaryApplication>true</clientOrdinaryApplication>
|
@ -58,5 +58,6 @@
|
|||||||
<commonModules>CommonModule.OPI_YandexDisk</commonModules>
|
<commonModules>CommonModule.OPI_YandexDisk</commonModules>
|
||||||
<commonModules>CommonModule.OPI_GoogleWorkspace</commonModules>
|
<commonModules>CommonModule.OPI_GoogleWorkspace</commonModules>
|
||||||
<commonModules>CommonModule.OPI_GoogleCalendar</commonModules>
|
<commonModules>CommonModule.OPI_GoogleCalendar</commonModules>
|
||||||
<commonModules>CommonModule.YAX_Тесты</commonModules>
|
<commonModules>CommonModule.OPI_Тесты</commonModules>
|
||||||
|
<commonModules>CommonModule.OPI_ПолучениеДанныхТестов</commonModules>
|
||||||
</mdclass:Configuration>
|
</mdclass:Configuration>
|
||||||
|
Loading…
Reference in New Issue
Block a user