1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-04-09 07:14:16 +02:00

Преобразование OPI -> OInt (workflow)

This commit is contained in:
Vitaly the Alpaca 2024-04-20 09:35:20 +00:00 committed by Vitaly the Alpaca (bot)
parent a4f55dbe51
commit 9c13df3f25
6 changed files with 448 additions and 349 deletions

View File

@ -730,6 +730,10 @@ jobs:
if: ${{ cancelled() }} == false
run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./OInt/tests/Modules/internal/OPI_Тесты.os "Слак_ОтправитьУдалитьСообщение"
- name: Получить отложенные сообщения
if: ${{ cancelled() }} == false
run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./OInt/tests/Modules/internal/OPI_Тесты.os "Слак_ПолучитьОтложенныеСообщения"
Encode:
runs-on: ubuntu-latest
needs: Testing-Twitter

View File

@ -82,33 +82,59 @@
// Отправляет сообщение в выбранный час
//
// Параметры:
// Токен - Строка - Токен бота - token
// Канал - Строка - Идентификатор канала - channel
// Текст - Строка - Текст сообщения - text
// МассивБлоков - Массив Из Структура - Массив описаний блоков - blocks - JSON массива описаний блоков
// Токен - Строка - Токен бота - token
// Канал - Строка - Идентификатор канала - channel
// Текст - Строка - Текст сообщения - text
// ДатаОтправки - Дата - Дата отправки для отложенного сообщения - date
// МассивБлоков - Массив Из Структура - Массив описаний блоков - blocks - JSON массива описаний блоков
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Slack
Функция ОтправитьСообщение(Знач Токен, Знач Канал, Знач Текст = "", Знач МассивБлоков = "") Экспорт
Функция ОтправитьСообщение(Знач Токен, Знач Канал, Знач Текст = "", Знач ДатаОтправки = "", Знач МассивБлоков = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Канал);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст);
ЕстьБлоки = ЗначениеЗаполнено(МассивБлоков);
ЕстьДата = ЗначениеЗаполнено(ДатаОтправки);
URL = "https://slack.com/api/chat.postMessage";
Заголовки = ПолучитьЗаголовокАвторизации(Токен);
Параметры = Новый Структура;
Параметры.Вставить("channel", Канал);
Параметры.Вставить("text" , Текст);
Если ЕстьБлоки Тогда
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(МассивБлоков);
Параметры.Вставить("blocks" , МассивБлоков);
OPI_Инструменты.ДобавитьПоле("channel", Канал , "Строка" , Параметры);
OPI_Инструменты.ДобавитьПоле("text" , Текст , "Строка" , Параметры);
OPI_Инструменты.ДобавитьПоле("blocks" , МассивБлоков, "Коллекция", Параметры);
Если ЕстьДата Тогда
URL = "https://slack.com/api/chat.scheduleMessage";
OPI_Инструменты.ДобавитьПоле("post_at", ДатаОтправки, "Дата", Параметры);
Иначе
URL = "https://slack.com/api/chat.postMessage";
КонецЕсли;
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
Функция ИзменитьСообщение(Знач Токен, Знач Канал, Знач Отметка, Знач Текст = "", Знач МассивБлоков = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
Строка_ = "Строка";
URL = "https://slack.com/api/chat.update";
Заголовки = ПолучитьЗаголовокАвторизации(Токен);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("channel", Канал , Строка_ , Параметры);
OPI_Инструменты.ДобавитьПоле("text" , Текст , Строка_ , Параметры);
OPI_Инструменты.ДобавитьПоле("ts" , Отметка , Строка_ , Параметры);
OPI_Инструменты.ДобавитьПоле("blocks" , МассивБлоков, "Коллекция", Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
@ -119,31 +145,71 @@
// Удаляет сообщение канала по timestamp
//
// Параметры:
// Токен - Строка - Токен бота - token
// Канал - Строка - Идентификатор канала - channel
// Отметка - Строка - Временная отметка сообщения - ts
// Токен - Строка - Токен бота - token
// Канал - Строка - Идентификатор канала - channel
// Отметка - Строка - Временная отметка или ID сообщения - stamp
// ЭтоОтложенное - Булево - Признак удаления отложенного сообщения - issheduled
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Slack
Функция УдалитьСообщение(Знач Токен, Знач Канал, Знач Отметка) Экспорт
Функция УдалитьСообщение(Знач Токен, Знач Канал, Знач Отметка, Знач ЭтоОтложенное = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Канал);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Отметка);
OPI_ПреобразованиеТипов.ПолучитьБулево(ЭтоОтложенное);
URL = "https://slack.com/api/chat.delete";
Заголовки = ПолучитьЗаголовокАвторизации(Токен);
Если ЭтоОтложенное Тогда
URL = "https://slack.com/api/chat.deleteScheduledMessage";
ПолеОтметки = "scheduled_message_id";
Иначе
URL = "https://slack.com/api/chat.delete";
ПолеОтметки = "ts";
КонецЕсли;
Параметры = Новый Структура;
Параметры.Вставить("channel", Канал);
Параметры.Вставить("ts" , Отметка);
OPI_Инструменты.ДобавитьПоле("channel" , Канал , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле(ПолеОтметки, Отметка, "Строка", Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
Функция ПолучитьСписокОтложенныхСообщений(Знач Токен, Знач Канал) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
URL = "https://slack.com/api/chat.scheduledMessages.list";
Заголовки = ПолучитьЗаголовокАвторизации(Токен);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("channel", Канал, "Строка", Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
Функция ПолучитьСсылкуНаСообщение(Знач Токен, Знач Канал, Знач Отметка) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
URL = "https://slack.com/api/chat.getPermalink";
Заголовки = ПолучитьЗаголовокАвторизации(Токен);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("channel" , Канал , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("message_ts", Отметка, "Строка", Параметры);
Ответ = OPI_Инструменты.Get(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
#КонецОбласти
#Область ФормированиеБлоков
@ -159,14 +225,10 @@
// Соответствие Из КлючИЗначение - Блок картинки
Функция СформироватьБлокКартинку(Знач URL, Знач АльтернативныйТекст = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(URL);
OPI_ПреобразованиеТипов.ПолучитьСтроку(АльтернативныйТекст);
Блок = Новый Соответствие;
Блок.Вставить("type" , "image");
Блок.Вставить("image_url", URL);
Блок.Вставить("alt_text" , АльтернативныйТекст);
Блок = Новый Соответствие;
OPI_Инструменты.ДобавитьПоле("type" , "image" , "Строка", Блок);
OPI_Инструменты.ДобавитьПоле("image_url", URL , "Строка", Блок);
OPI_Инструменты.ДобавитьПоле("alt_text" , АльтернативныйТекст , "Строка", Блок);
Возврат Блок;

View File

@ -84,13 +84,12 @@
Функция УстановитьWebhook(Знач Токен, Знач URL) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(URL);
Параметры_ = Новый Структура;
Параметры_.Вставить("url", URL);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("url", URL, "Строка", Параметры);
URL = "api.telegram.org/bot" + Токен + "/setWebHook";
Ответ = OPI_Инструменты.Get(URL, Параметры_);
Ответ = OPI_Инструменты.Get(URL, Параметры);
Возврат Ответ;
@ -137,22 +136,18 @@
, Знач Клавиатура = ""
, Знач Разметка = "Markdown") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Клавиатура, Истина);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_Инструменты.ЗаменитьСпецСимволы(Текст);
Параметры_ = Новый Структура;
Параметры_.Вставить("parse_mode" , Разметка);
Параметры_.Вставить("text" , Текст);
Параметры_.Вставить("reply_markup", Клавиатура);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("parse_mode" , Разметка , "Строка" , Параметры);
OPI_Инструменты.ДобавитьПоле("text" , Текст , "Строка" , Параметры);
OPI_Инструменты.ДобавитьПоле("reply_markup", Клавиатура, "СтрокаФайла", Параметры);
ДобавитьИдентификаторЧата(IDЧата, Параметры_);
ДобавитьИдентификаторЧата(IDЧата, Параметры);
URL = "api.telegram.org/bot" + Токен + "/sendMessage";
Ответ = OPI_Инструменты.Get(URL, Параметры_);
Ответ = OPI_Инструменты.Get(URL, Параметры);
Возврат Ответ;
@ -305,8 +300,6 @@
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Клавиатура, Истина);
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(СоответствиеФайлов);
OPI_Инструменты.ЗаменитьСпецсимволы(Текст);
@ -314,18 +307,17 @@
URL = "api.telegram.org/bot" + Токен + "/sendMediaGroup";
СтруктураФайлов = Новый Структура;
Медиа = Новый Массив;
Параметры_ = Новый Структура;
Параметры_.Вставить("parse_mode" , Разметка);
Параметры_.Вставить("caption" , Текст);
Параметры_.Вставить("reply_markup", Клавиатура);
Параметры = Новый Структура;
ДобавитьИдентификаторЧата(IDЧата, Параметры_);
ДобавитьИдентификаторЧата(IDЧата, Параметры);
СформироватьМассивМедиа(СоответствиеФайлов, Текст, СтруктураФайлов, Медиа);
Параметры_.Вставить("media", Медиа);
OPI_Инструменты.ДобавитьПоле("parse_mode" , Разметка , "Строка" , Параметры);
OPI_Инструменты.ДобавитьПоле("caption" , Текст , "Строка" , Параметры);
OPI_Инструменты.ДобавитьПоле("media" , Медиа , "Строка" , Параметры);
OPI_Инструменты.ДобавитьПоле("reply_markup", Клавиатура, "СтрокаФайла", Параметры);
Ответ = OPI_Инструменты.PostMultipart(URL, Параметры_, СтруктураФайлов, "mixed");
Ответ = OPI_Инструменты.PostMultipart(URL, Параметры, СтруктураФайлов, "mixed");
Возврат Ответ;
@ -347,21 +339,18 @@
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Широта);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Долгота);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Клавиатура, Истина);
URL = "api.telegram.org/bot" + Токен + "/sendLocation";
Параметры_ = Новый Структура;
Параметры_.Вставить("parse_mode" , "Markdown");
Параметры_.Вставить("latitude" , OPI_Инструменты.ЧислоВСтроку(Широта));
Параметры_.Вставить("longitude" , OPI_Инструменты.ЧислоВСтроку(Долгота));
Параметры_.Вставить("reply_markup", Клавиатура);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("parse_mode" , "Markdown" , "Строка" , Параметры);
OPI_Инструменты.ДобавитьПоле("latitude" , Широта , "Строка" , Параметры);
OPI_Инструменты.ДобавитьПоле("longitude" , Долгота , "Строка" , Параметры);
OPI_Инструменты.ДобавитьПоле("reply_markup", Клавиатура , "СтрокаФайла", Параметры);
ДобавитьИдентификаторЧата(IDЧата, Параметры_);
ДобавитьИдентификаторЧата(IDЧата, Параметры);
Ответ = OPI_Инструменты.Get(URL, Параметры_);
Ответ = OPI_Инструменты.Get(URL, Параметры);
Возврат Ответ;
@ -384,23 +373,19 @@
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Имя);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Фамилия);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Телефон);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Клавиатура, Истина);
URL = "api.telegram.org/bot" + Токен + "/sendContact";
URL = "api.telegram.org/bot" + Токен + "/sendContact";
Параметры_ = Новый Структура;
Параметры_.Вставить("parse_mode" , "Markdown");
Параметры_.Вставить("first_name" , Имя);
Параметры_.Вставить("last_name" , Фамилия);
Параметры_.Вставить("phone_number", Телефон);
Параметры_.Вставить("reply_markup", Клавиатура);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("parse_mode" , "Markdown", "Строка" , Параметры);
OPI_Инструменты.ДобавитьПоле("first_name" , Имя , "Строка" , Параметры);
OPI_Инструменты.ДобавитьПоле("last_name" , Фамилия , "Строка" , Параметры);
OPI_Инструменты.ДобавитьПоле("phone_number", Телефон , "Строка" , Параметры);
OPI_Инструменты.ДобавитьПоле("reply_markup", Клавиатура, "СтрокаФайла", Параметры);
ДобавитьИдентификаторЧата(IDЧата, Параметры_);
ДобавитьИдентификаторЧата(IDЧата, Параметры);
Ответ = OPI_Инструменты.Get(URL, Параметры_);
Ответ = OPI_Инструменты.Get(URL, Параметры);
Возврат Ответ;
@ -422,22 +407,21 @@
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Вопрос);
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(МассивОтветов);
OPI_ПреобразованиеТипов.ПолучитьСтроку(МассивОтветов, Истина);
OPI_ПреобразованиеТипов.ПолучитьБулево(Анонимный);
URL = "api.telegram.org/bot" + Токен + "/sendPoll";
Параметры_ = Новый Структура;
Параметры_.Вставить("parse_mode" , "Markdown");
Параметры_.Вставить("question" , Вопрос);
Параметры_.Вставить("options" , МассивОтветов);
Параметры_.Вставить("is_anonymous", ?(Анонимный, 1, 0));
ДобавитьИдентификаторЧата(IDЧата, Параметры_);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("parse_mode", "Markdown" , "Строка" , Параметры);
OPI_Инструменты.ДобавитьПоле("question" , Вопрос , "Строка" , Параметры);
OPI_Инструменты.ДобавитьПоле("options" , МассивОтветов, "СтрокаФайла", Параметры);
Параметры.Вставить("is_anonymous", ?(Анонимный, 1, 0));
ДобавитьИдентификаторЧата(IDЧата, Параметры);
Ответ = OPI_Инструменты.Get(URL, Параметры_);
Ответ = OPI_Инструменты.Get(URL, Параметры);
Возврат Ответ;
@ -461,15 +445,15 @@
OPI_ПреобразованиеТипов.ПолучитьСтроку(ОткудаID);
OPI_ПреобразованиеТипов.ПолучитьСтроку(КудаID);
URL = "api.telegram.org/bot" + Токен + "/forwardMessage";
URL = "api.telegram.org/bot" + Токен + "/forwardMessage";
Параметры_ = Новый Структура;
Параметры_.Вставить("from_chat_id", ОткудаID);
Параметры_.Вставить("message_id" , IDОригинала);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("from_chat_id", ОткудаID , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("message_id" , IDОригинала, "Строка", Параметры);
ДобавитьИдентификаторЧата(КудаID, Параметры_);
ДобавитьИдентификаторЧата(КудаID, Параметры);
Ответ = OPI_Инструменты.Get(URL, Параметры_);
Ответ = OPI_Инструменты.Get(URL, Параметры);
Возврат Ответ;
@ -492,17 +476,15 @@
Функция Бан(Знач Токен, Знач IDЧата, Знач IDПользователя) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDПользователя);
URL = "api.telegram.org/bot" + Токен + "/banChatMember";
Параметры_ = Новый Структура;
Параметры_.Вставить("parse_mode", "Markdown");
Параметры_.Вставить("chat_id" , IDЧата);
Параметры_.Вставить("user_id" , IDПользователя);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("parse_mode", "Markdown" , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("chat_id" , IDЧата , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("user_id" , IDПользователя, "Строка", Параметры);
Ответ = OPI_Инструменты.Get(URL, Параметры_);
Ответ = OPI_Инструменты.Get(URL, Параметры);
Возврат Ответ;
@ -521,18 +503,16 @@
Функция Разбан(Знач Токен, Знач IDЧата, Знач IDПользователя) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDПользователя);
URL = "api.telegram.org/bot" + Токен + "/unbanChatMember";
Параметры_ = Новый Структура;
Параметры_.Вставить("parse_mode" , "Markdown");
Параметры_.Вставить("chat_id" , IDЧата);
Параметры_.Вставить("user_id" , IDПользователя);
Параметры_.Вставить("only_if_banned", Ложь);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("parse_mode" , "Markdown" , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("chat_id" , IDЧата , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("user_id" , IDПользователя, "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("only_if_banned", Ложь , "Булево", Параметры);
Ответ = OPI_Инструменты.Get(URL, Параметры_);
Ответ = OPI_Инструменты.Get(URL, Параметры);
Возврат Ответ;
@ -557,26 +537,17 @@
, Знач ЛимитПользователей = 0) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Заголовок);
OPI_ПреобразованиеТипов.ПолучитьСтроку(ЛимитПользователей);
OPI_ПреобразованиеТипов.ПолучитьДату(ДатаИстечения);
URL = "api.telegram.org/bot" + Токен + "/createChatInviteLink";
Параметры_ = Новый Структура;
Параметры_.Вставить("parse_mode", "Markdown");
Параметры_.Вставить("chat_id" , IDЧата);
Параметры_.Вставить("name" , Заголовок);
Если ЗначениеЗаполнено(ДатаИстечения) Тогда
ДатаИстечения = OPI_Инструменты.UNIXTime(ДатаИстечения);
Параметры_.Вставить("expire_date", ДатаИстечения);
КонецЕсли;
Параметры_.Вставить("member_limit", ЛимитПользователей);
Ответ = OPI_Инструменты.Get(URL, Параметры_);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("parse_mode" , "Markdown" , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("chat_id" , IDЧата , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("name" , Заголовок , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("member_limit" , ЛимитПользователей, "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("expire_date" , ДатаИстечения , "Дата" , Параметры);
Ответ = OPI_Инструменты.Get(URL, Параметры);
Возврат Ответ;
@ -595,18 +566,16 @@
Функция ЗакрепитьСообщение(Знач Токен, Знач IDЧата, Знач IDСообщения) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDСообщения);
URL = "api.telegram.org/bot" + Токен + "/pinChatMessage";
Параметры_ = Новый Структура;
Параметры_.Вставить("parse_mode" , "Markdown");
Параметры_.Вставить("chat_id" , IDЧата);
Параметры_.Вставить("message_id" , IDСообщения);
Параметры_.Вставить("disable_notification", Истина);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("parse_mode" , "Markdown" , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("chat_id" , IDЧата , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("message_id" , IDСообщения, "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("disable_notification", Ложь , "Булево", Параметры);
Ответ = OPI_Инструменты.Get(URL, Параметры_);
Ответ = OPI_Инструменты.Get(URL, Параметры);
Возврат Ответ;
@ -625,17 +594,15 @@
Функция ОткрепитьСообщение(Знач Токен, Знач IDЧата, Знач IDСообщения) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDСообщения);
URL = "api.telegram.org/bot" + Токен + "/unpinChatMessage";
Параметры_ = Новый Структура;
Параметры_.Вставить("parse_mode", "Markdown");
Параметры_.Вставить("chat_id" , IDЧата);
Параметры_.Вставить("message_id", IDСообщения);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("parse_mode", "Markdown" , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("chat_id" , IDЧата , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("message_id", IDСообщения, "Строка", Параметры);
Ответ = OPI_Инструменты.Get(URL, Параметры_);
Ответ = OPI_Инструменты.Get(URL, Параметры);
Возврат Ответ;
@ -653,15 +620,14 @@
Функция ПолучитьЧислоУчастников(Знач Токен, Знач IDЧата) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
URL = "api.telegram.org/bot" + Токен + "/getChatMemberCount";
Параметры_ = Новый Структура;
Параметры_.Вставить("parse_mode", "Markdown");
Параметры_.Вставить("chat_id" , IDЧата);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("parse_mode", "Markdown" , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("chat_id" , IDЧата , "Строка", Параметры);
Ответ = OPI_Инструменты.Get(URL, Параметры_);
Ответ = OPI_Инструменты.Get(URL, Параметры);
Возврат Ответ;
@ -889,16 +855,14 @@
Функция ИзменитьИмяГлавнойТемыФорума(Знач Токен, Знач IDЧата, Знач Заголовок) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Заголовок);
URL = "api.telegram.org/bot" + Токен + "/editGeneralForumTopic";
URL = "api.telegram.org/bot" + Токен + "/editGeneralForumTopic";
Параметры_ = Новый Структура;
Параметры_.Вставить("chat_id", IDЧата);
Параметры_.Вставить("name" , Заголовок);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("chat_id", IDЧата , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("name" , Заголовок, "Строка", Параметры);
Ответ = OPI_Инструменты.Get(URL, Параметры_);
Ответ = OPI_Инструменты.Get(URL, Параметры);
Возврат Ответ;
@ -920,18 +884,18 @@
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDТемы);
Параметры_ = Новый Структура;
Параметры_.Вставить("chat_id", IDЧата);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("chat_id" , IDЧата, "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("message_thread_id", IDТемы, "Строка", Параметры);
Если ЗначениеЗаполнено(IDТемы) Тогда
Метод = "/unpinAllForumTopicMessages";
Параметры_.Вставить("message_thread_id", IDТемы);
Иначе
Метод = "/unpinAllGeneralForumTopicMessages";
КонецЕсли;
URL = "api.telegram.org/bot" + Токен + Метод;
Ответ = OPI_Инструменты.Get(URL, Параметры_);
Ответ = OPI_Инструменты.Get(URL, Параметры);
Возврат Ответ;
@ -987,36 +951,27 @@
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Вид);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Клавиатура, Истина);
Расширение = "";
Метод = "";
ОпределитьМетодОтправки(Вид, Метод, Расширение);
ПреобразоватьДанныеФайла(Файл, Расширение, Вид);
OPI_Инструменты.ЗаменитьСпецсимволы(Текст);
Если Не ТипЗнч(Файл) = Тип("ДвоичныеДанные") Тогда
ТекущийФайл = Новый Файл(Файл);
Расширение = ?(Вид = "document", ТекущийФайл.Расширение, Расширение);
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Файл);
КонецЕсли;
Расширение = СтрЗаменить(Расширение, ".", "___");
Параметры_ = Новый Структура;
Параметры_.Вставить("parse_mode" , Разметка);
Параметры_.Вставить("caption" , Текст);
Параметры_.Вставить("reply_markup", Клавиатура);
ДобавитьИдентификаторЧата(IDЧата, Параметры_);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("parse_mode" , Разметка , "Строка" , Параметры);
OPI_Инструменты.ДобавитьПоле("caption" , Текст , "Строка" , Параметры);
OPI_Инструменты.ДобавитьПоле("reply_markup", Клавиатура, "СтрокаФайла", Параметры);
ДобавитьИдентификаторЧата(IDЧата, Параметры);
СтруктураФайлов = Новый Структура;
СтруктураФайлов.Вставить(Вид + Расширение, Файл);
URL = "api.telegram.org/bot" + Токен + Метод;
Ответ = OPI_Инструменты.PostMultipart(URL, Параметры_, СтруктураФайлов, "mixed");
Ответ = OPI_Инструменты.PostMultipart(URL, Параметры, СтруктураФайлов, "mixed");
Возврат Ответ;
@ -1029,23 +984,21 @@
, Знач IDТемы = "")
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDТемы);
Параметры_ = Новый Структура;
Параметры_.Вставить("name" , Заголовок);
Параметры_.Вставить("chat_id" , IDЧата);
Параметры_.Вставить("icon_custom_emoji_id", IDИконки);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("name" , Заголовок, "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("chat_id" , IDЧата , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("icon_custom_emoji_id", IDИконки , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("message_thread_id" , IDТемы , "Строка", Параметры);
Если ЗначениеЗаполнено(IDТемы) Тогда
Метод = "/editForumTopic";
Параметры_.Вставить("message_thread_id", IDТемы);
Метод = "/editForumTopic";
Иначе
Метод = "/createForumTopic";
КонецЕсли;
OPI_Инструменты.УдалитьПустыеПоляКоллекции(Параметры_);
Ответ = OPI_Инструменты.Get("api.telegram.org/bot" + Токен + Метод, Параметры_);
OPI_Инструменты.УдалитьПустыеПоляКоллекции(Параметры);
Ответ = OPI_Инструменты.Get("api.telegram.org/bot" + Токен + Метод, Параметры);
Возврат Ответ;
@ -1054,8 +1007,6 @@
Функция УправлениеСостояниемТемыФорума(Знач Токен, Знач IDЧата, Знач Статус, Знач IDТемы = "")
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDТемы);
Если ЗначениеЗаполнено(IDТемы) Тогда
Форум = "Forum";
@ -1063,18 +1014,14 @@
Форум = "GeneralForum";
КонецЕсли;
IDТемы = OPI_Инструменты.ЧислоВСтроку(IDТемы);
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
Метод = ОпределитьМетодУправленияФорумом(Статус, Форум);
Параметры_ = Новый Структура;
Параметры_.Вставить("chat_id", IDЧата);
Если ЗначениеЗаполнено(IDТемы) Тогда
Параметры_.Вставить("message_thread_id", IDТемы);
КонецЕсли;
Метод = ОпределитьМетодУправленияФорумом(Статус, Форум);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("chat_id" , IDЧата, "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("message_thread_id", IDТемы, "Строка", Параметры);
URL = "api.telegram.org/bot" + Токен + Метод;
Ответ = OPI_Инструменты.Get(URL, Параметры_);
Ответ = OPI_Инструменты.Get(URL, Параметры);
Возврат Ответ;
@ -1083,7 +1030,6 @@
Функция УправлениеВидимостьюГлавнойТемыФорума(Знач Токен, Знач IDЧата, Знач Скрыть)
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьБулево(Скрыть);
Если Скрыть Тогда
@ -1092,11 +1038,11 @@
Метод = "/unhideGeneralForumTopic";
КонецЕсли;
Параметры_ = Новый Структура;
Параметры_.Вставить("chat_id", IDЧата);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("chat_id", IDЧата, "Строка", Параметры);
URL = "api.telegram.org/bot" + Токен + Метод;
Ответ = OPI_Инструменты.Get(URL, Параметры_);
Ответ = OPI_Инструменты.Get(URL, Параметры);
Возврат Ответ;
@ -1169,12 +1115,12 @@
Если Не ТипЗнч(ТекущийФайл.Ключ) = Тип("ДвоичныеДанные") Тогда
Двоичные = ТекущийФайл.Ключ;
Двоичные = ТекущийФайл.Ключ;
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Двоичные);
ЭтотФайл = Новый Файл(ТекущийФайл.Ключ);
ИмяМедиа = ТекущийФайл.Значение + Строка(Счетчик)
ЭтотФайл = Новый Файл(ТекущийФайл.Ключ);
ИмяМедиа = ТекущийФайл.Значение
+ Строка(Счетчик)
+ ?(ТекущийФайл.Значение = "document", ЭтотФайл.Расширение, "");
ПолноеИмяМедиа = СтрЗаменить(ИмяМедиа, ".", "___");
@ -1188,7 +1134,7 @@
СтруктураФайлов.Вставить(ПолноеИмяМедиа, Двоичные);
СтруктураМедиа = Новый Структура;
СтруктураМедиа.Вставить("type", ТекущийФайл.Значение);
СтруктураМедиа.Вставить("type" , ТекущийФайл.Значение);
СтруктураМедиа.Вставить("media", "attach://" + ИмяМедиа);
Если Счетчик = 0 Тогда
@ -1242,4 +1188,18 @@
КонецПроцедуры
Процедура ПреобразоватьДанныеФайла(Файл, Расширение, Вид)
Если Не ТипЗнч(Файл) = Тип("ДвоичныеДанные") Тогда
ТекущийФайл = Новый Файл(Файл);
Расширение = ?(Вид = "document", ТекущийФайл.Расширение, Расширение);
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Файл);
КонецЕсли;
Расширение = СтрЗаменить(Расширение, ".", "___");
КонецПроцедуры
#КонецОбласти

View File

@ -2871,13 +2871,24 @@
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["channel"]).Равно(Канал);
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ts"]).Заполнено();
Отметки.Добавить(Результат["ts"]);
Отметка = Результат["ts"];
Результат = OPI_Slack.ПолучитьСсылкуНаСообщение(Токен, Канал, Отметка);
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["channel"]).Равно(Канал);
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["permalink"]).Заполнено();
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСсылкуНаСообщение");
Проверка_СлакОк(Результат);
Отметки.Добавить(Отметка);
МассивБлоков = Новый Массив;
Блок = OPI_Slack.СформироватьБлокКартинку(Картинка, "Yo");
МассивБлоков.Добавить(Блок);
Результат = OPI_Slack.ОтправитьСообщение(Токен, Канал, Текст, МассивБлоков);
Результат = OPI_Slack.ОтправитьСообщение(Токен, Канал, Текст, , МассивБлоков);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьСообщение");
@ -2898,7 +2909,38 @@
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ts"]).Заполнено();
КонецЦикла;
Час = 3600;
Отправка = OPI_Инструменты.ПолучитьТекущуюДату() + Час;
Результат = OPI_Slack.ОтправитьСообщение(Токен, Канал, Текст, Отправка);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьСообщение");
Проверка_СлакОк(Результат);
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["channel"]).Равно(Канал);
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["scheduled_message_id"]).Заполнено();
Отметка = Результат["scheduled_message_id"];
Результат = OPI_Slack.УдалитьСообщение(Токен, Канал, Отметка, Истина);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьСообщение");
Проверка_СлакОк(Результат);
КонецПроцедуры
Процедура Слак_ПолучитьОтложенныеСообщения() Экспорт
Токен = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Slack_Token");
Канал = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Slack_Channel");
Результат = OPI_Slack.ПолучитьСписокОтложенныхСообщений(Токен, Канал);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокОтложенныхСообщений");
Проверка_СлакОк(Результат);
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["scheduled_messages"]).ИмеетТип("Массив");
КонецПроцедуры
#КонецОбласти

View File

@ -38,6 +38,148 @@
#Область СлужебныйПрограммныйИнтерфейс
Функция ПолучитьСоответствиеРазделовТестирования() Экспорт
Разделы = Новый Соответствие;
Разделы.Вставить("Telegram" , "[Decode, Build]");
Разделы.Вставить("VK" , "[Decode, Build]");
Разделы.Вставить("Viber" , "[Decode, Build]");
Разделы.Вставить("Twitter" , "[Decode, Build]");
Разделы.Вставить("YandexDisk" , "[Decode, Build]");
Разделы.Вставить("GoogleWorkspace", "[Decode, Build]");
Разделы.Вставить("GoogleCalendar" , "Testing-GoogleWorkspace");
Разделы.Вставить("GoogleDrive" , "Testing-GoogleWorkspace");
Разделы.Вставить("Notion" , "[Decode, Build]");
Разделы.Вставить("Slack" , "[Decode, Build]");
Возврат Разделы;
КонецФункции
Функция ПолучитьТаблицуТестов() Экспорт
Телеграм = "Telegram";
ВКонтакте = "VK";
ЯДиск = "YandexDisk";
Календарь = "GoogleCalendar";
Твиттер = "Twitter";
Вайбер = "Viber";
Драйв = "GoogleDrive";
ВСпейс = "GoogleWorkspace";
Ноушн = "Notion";
Слак = "Slack";
ТаблицаТестов = Новый ТаблицаЗначений;
ТаблицаТестов.Колонки.Добавить("Метод");
ТаблицаТестов.Колонки.Добавить("Синоним");
ТаблицаТестов.Колонки.Добавить("Раздел");
НовыйТест(ТаблицаТестов, "Телеграм_ПолучитьИнформациюБота" , "Получить информацию бота" , Телеграм);
НовыйТест(ТаблицаТестов, "Телеграм_ПолучитьОбновления" , "Получить обновления" , Телеграм);
НовыйТест(ТаблицаТестов, "Телеграм_УстановитьWebhook" , "Установить Webhook" , Телеграм);
НовыйТест(ТаблицаТестов, "Телеграм_УдалитьWebhook" , "Удалить Webhook" , Телеграм);
НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьТекстовоеСообщение" , "Отправить текстовое сообщение" , Телеграм);
НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьКартинку" , "Отправить картинку" , Телеграм);
НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьВидео" , "Отправить видео" , Телеграм);
НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьАудио" , "Отправить аудио" , Телеграм);
НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьДокумент" , "Отправить документ" , Телеграм);
НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьГифку" , "Отправить гифку" , Телеграм);
НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьМедиагруппу" , "Отправить медиагруппу" , Телеграм);
НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьМестоположение" , "Отправить местоположение" , Телеграм);
НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьКонтакт" , "Отправить контакт" , Телеграм);
НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьОпрос" , "Отправить опрос" , Телеграм);
НовыйТест(ТаблицаТестов, "Телеграм_ПереслатьСообщение" , "Переслать сообщение" , Телеграм);
НовыйТест(ТаблицаТестов, "Телеграм_БанРазбан" , "Бан/Разбан" , Телеграм);
НовыйТест(ТаблицаТестов, "Телеграм_СоздатьСсылкуПриглашение" , "Создать ссылку-приглашение" , Телеграм);
НовыйТест(ТаблицаТестов, "Телеграм_ЗакрепитьОткрепитьСообщение" , "Закрепить/Открепить сообщение" , Телеграм);
НовыйТест(ТаблицаТестов, "Телеграм_ПолучитьЧислоУчастников" , "Получить число участников" , Телеграм);
НовыйТест(ТаблицаТестов, "Телеграм_ПолучитьСписокАватаровФорума", "Получить список аватаров форума", Телеграм);
НовыйТест(ТаблицаТестов, "Телеграм_СоздатьУдалитьТемуФорума" , "Создать/Удалить тему форума" , Телеграм);
НовыйТест(ТаблицаТестов, "Телеграм_ОткрытьЗакрытьГлавнуюТему" , "Открыть/Закрыть главную тему" , Телеграм);
НовыйТест(ТаблицаТестов, "Телеграм_ИзменитьИмяГлавнойТемы" , "Изменить имя главной темы" , Телеграм);
НовыйТест(ТаблицаТестов, "Телеграм_СкрытьПоказатьГлавнуюТему" , "Скрыть/Показать главную тему" , Телеграм);
НовыйТест(ТаблицаТестов, "ВК_СоздатьСсылкуТокена" , "Создать ссылку получения токена", ВКонтакте);
НовыйТест(ТаблицаТестов, "ВК_СоздатьУдалитьПост" , "Создать/Удалить пост" , ВКонтакте);
НовыйТест(ТаблицаТестов, "ВК_СоздатьОпрос" , "Создать опрос" , ВКонтакте);
НовыйТест(ТаблицаТестов, "ВК_СохранитьУдалитьКартинку" , "Добавить/Удалить картинку" , ВКонтакте);
НовыйТест(ТаблицаТестов, "ВК_СоздатьИсторию" , "Создать историю" , ВКонтакте);
НовыйТест(ТаблицаТестов, "ВК_МетодыОбсуждений" , "Действия с обсуждениями" , ВКонтакте);
НовыйТест(ТаблицаТестов, "ВК_ЛайкРепостКоммент" , "Лайк/Репост/Комментарий" , ВКонтакте);
НовыйТест(ТаблицаТестов, "ВК_ПолучитьСтатистику" , "Получить статистику" , ВКонтакте);
НовыйТест(ТаблицаТестов, "ВК_ПолучитьСтатистикуПостов" , "Получить статистику постов" , ВКонтакте);
НовыйТест(ТаблицаТестов, "ВК_СоздатьРекламнуюКампанию" , "Создать рекламную кампанию" , ВКонтакте);
НовыйТест(ТаблицаТестов, "ВК_ОтправитьСообщение" , "Отправить сообщение" , ВКонтакте);
НовыйТест(ТаблицаТестов, "ВК_ПолучитьКатегорииТоваров" , "Получить категории товаров" , ВКонтакте);
НовыйТест(ТаблицаТестов, "ВК_СоздатьТоварПодборку" , "Создать товар и подборку" , ВКонтакте);
НовыйТест(ТаблицаТестов, "ВК_СоздатьТоварСоСвойствами" , "Создать товар со свойствами" , ВКонтакте);
НовыйТест(ТаблицаТестов, "ВК_ПолучитьСписокТоваров" , "Получить список товаров" , ВКонтакте);
НовыйТест(ТаблицаТестов, "ВК_ПолучитьСписокПодборок" , "Получить список подборок" , ВКонтакте);
НовыйТест(ТаблицаТестов, "ВК_ПолучитьСписокСвойств" , "Получить список свойств" , ВКонтакте);
НовыйТест(ТаблицаТестов, "ВК_ПолучитьСписокЗаказов" , "Получить список заказов" , ВКонтакте);
НовыйТест(ТаблицаТестов, "ЯДиск_ПолучитьИнформациюОДиске" , "Получить информацию о диске" , ЯДиск);
НовыйТест(ТаблицаТестов, "ЯДиск_СоздатьПапку" , "Создать папку" , ЯДиск);
НовыйТест(ТаблицаТестов, "ЯДиск_ЗагрузитьПоАдресуПолучитьОбъект", "Загрузить по URL и получить" , ЯДиск);
НовыйТест(ТаблицаТестов, "ЯДиск_ЗагрузитьУдалитьФайл" , "Загрузить/Удалить файл" , ЯДиск);
НовыйТест(ТаблицаТестов, "ЯДиск_СоздатьКопиюОбъекта" , "Создать копию объекта" , ЯДиск);
НовыйТест(ТаблицаТестов, "ЯДиск_ПолучитьСсылкуНаСкачивание" , "Получить ссылку на скачивание" , ЯДиск);
НовыйТест(ТаблицаТестов, "ЯДиск_ПолучитьСписокФайлов" , "Получить список файлов" , ЯДиск);
НовыйТест(ТаблицаТестов, "ЯДиск_ПереместитьОбъект" , "Переместить объект" , ЯДиск);
НовыйТест(ТаблицаТестов, "ЯДиск_ДействияПубличныхОбъектов" , "Действия с публичными объектами", ЯДиск);
НовыйТест(ТаблицаТестов, "ЯДиск_ПолучитьСписокОпубликованных" , "Получить список опубликованных" , ЯДиск);
НовыйТест(ТаблицаТестов, "ГВ_ПолучитьСсылкуАвторизации" , "Получить ссылку авторизации" , ВСпейс);
НовыйТест(ТаблицаТестов, "ГВ_ПолучитьТокен" , "Получить токен" , ВСпейс);
НовыйТест(ТаблицаТестов, "ГВ_ОбновитьТокен" , "Обновить токен" , ВСпейс);
НовыйТест(ТаблицаТестов, "ГК_ПолучитьСписокКалендарей" , "Получить список календарей" , Календарь);
НовыйТест(ТаблицаТестов, "ГК_СоздатьУдалитьКалендарь" , "Создать/Удалить календарь" , Календарь);
НовыйТест(ТаблицаТестов, "ГК_СоздатьУдалитьСобытие" , "Создать/Удалить событие" , Календарь);
НовыйТест(ТаблицаТестов, "ГК_ПолучитьСписокСобытий" , "Получить список событий" , Календарь);
НовыйТест(ТаблицаТестов, "ГД_ПолучитьСписокКаталогов" , "Получить список каталогов" , Драйв);
НовыйТест(ТаблицаТестов, "ГД_ЗагрузитьУдалитьФайл" , "Загрузить/Удалить Файл" , Драйв);
НовыйТест(ТаблицаТестов, "ГД_СоздатьУдалитьКомментарий" , "Создать/Удалить кооментарий" , Драйв);
НовыйТест(ТаблицаТестов, "ГД_СоздатьКаталог" , "Создать/Удалить каталог" , Драйв);
НовыйТест(ТаблицаТестов, "Твиттер_ПолучитьСсылкуАвторизации" , "Получить ссылку авторизации" , Твиттер);
НовыйТест(ТаблицаТестов, "Твиттер_ОбновитьТокен" , "Обновить токен" , Твиттер);
НовыйТест(ТаблицаТестов, "Твиттер_СоздатьТекстовыйТвит" , "Текстовый твит" , Твиттер);
НовыйТест(ТаблицаТестов, "Твиттер_СоздатьТвитСКартинкой" , "Твит с картинкой" , Твиттер);
НовыйТест(ТаблицаТестов, "Твиттер_СоздатьТвитСВидео" , "Твит с видео" , Твиттер);
НовыйТест(ТаблицаТестов, "Твиттер_СоздатьТвитСГиф" , "Твит с гиф" , Твиттер);
НовыйТест(ТаблицаТестов, "Твиттер_СоздатьТвитСОпросом" , "Твит с опросом" , Твиттер);
НовыйТест(ТаблицаТестов, "Вайбер_ПолучитьИнформациюОКанале" , "Получить информацию канала" , Вайбер);
НовыйТест(ТаблицаТестов, "Вайбер_ПолучитьДанныеПользователя" , "Получить данные пользователя" , Вайбер);
НовыйТест(ТаблицаТестов, "Вайбер_ПолучитьОнлайнПользователей" , "Получить онлайн пользователей" , Вайбер);
НовыйТест(ТаблицаТестов, "Вайбер_ОтправитьТекстовоеСообщение" , "Отправить текстовое сообщение" , Вайбер);
НовыйТест(ТаблицаТестов, "Вайбер_ОтправитьКартинку" , "Отправить картинку" , Вайбер);
НовыйТест(ТаблицаТестов, "Вайбер_ОтправитьФайл" , "Отправить файл" , Вайбер);
НовыйТест(ТаблицаТестов, "Вайбер_ОтправитьКонтакт" , "Отправить контакт" , Вайбер);
НовыйТест(ТаблицаТестов, "Вайбер_ОтправитьЛокацию" , "Отправить локацию" , Вайбер);
НовыйТест(ТаблицаТестов, "Вайбер_ОтправитьСсылку" , "Отправить ссылку" , Вайбер);
НовыйТест(ТаблицаТестов, "Ноушн_СоздатьСтраницу" , "Создать страницу" , Ноушн);
НовыйТест(ТаблицаТестов, "Ноушн_СоздатьИзменитьБазу" , "Создать/Изменить базу" , Ноушн);
НовыйТест(ТаблицаТестов, "Ноушн_ПолучитьИнформациюОСтранице" , "Получить информацию о странице" , Ноушн);
НовыйТест(ТаблицаТестов, "Ноушн_ПолучитьИнформациюОБазе" , "Получить информацию о базе" , Ноушн);
НовыйТест(ТаблицаТестов, "Ноушн_СоздатьСтраницуВБазу" , "Создать страницу в базу" , Ноушн);
НовыйТест(ТаблицаТестов, "Ноушн_ИзменитьСвойстваСтраницы" , "Изменить свойства страницы" , Ноушн);
НовыйТест(ТаблицаТестов, "Ноушн_СоздатьУдалитьБлок" , "Создать/Удалить блок" , Ноушн);
НовыйТест(ТаблицаТестов, "Ноушн_ПолучитьПользователей" , "Получить пользователей" , Ноушн);
НовыйТест(ТаблицаТестов, "Ноушн_ПолучитьДанныеПользователя" , "Получить данные пользователя" , Ноушн);
НовыйТест(ТаблицаТестов, "Слак_ПолучитьИнформациюОБоте" , "Получить информацию о боте" , Слак);
НовыйТест(ТаблицаТестов, "Слак_ПолучитьСписокОбластей" , "Получить список областей" , Слак);
НовыйТест(ТаблицаТестов, "Слак_ОтправитьУдалитьСообщение" , "Отправить/Удалить сообщение" , Слак);
НовыйТест(ТаблицаТестов, "Слак_ПолучитьОтложенныеСообщения" , "Получить отложенные сообщения" , Слак);
Возврат ТаблицаТестов;
КонецФункции
Функция ОжидаетЧто(Значение) Экспорт
Попытка
@ -200,147 +342,6 @@
КонецФункции
Функция ПолучитьСоответствиеРазделовТестирования() Экспорт
Разделы = Новый Соответствие;
Разделы.Вставить("Telegram" , "[Decode, Build]");
Разделы.Вставить("VK" , "[Decode, Build]");
Разделы.Вставить("Viber" , "[Decode, Build]");
Разделы.Вставить("Twitter" , "[Decode, Build]");
Разделы.Вставить("YandexDisk" , "[Decode, Build]");
Разделы.Вставить("GoogleWorkspace", "[Decode, Build]");
Разделы.Вставить("GoogleCalendar" , "Testing-GoogleWorkspace");
Разделы.Вставить("GoogleDrive" , "Testing-GoogleWorkspace");
Разделы.Вставить("Notion" , "[Decode, Build]");
Разделы.Вставить("Slack" , "[Decode, Build]");
Возврат Разделы;
КонецФункции
Функция ПолучитьТаблицуТестов() Экспорт
Телеграм = "Telegram";
ВКонтакте = "VK";
ЯДиск = "YandexDisk";
Календарь = "GoogleCalendar";
Твиттер = "Twitter";
Вайбер = "Viber";
Драйв = "GoogleDrive";
ВСпейс = "GoogleWorkspace";
Ноушн = "Notion";
Слак = "Slack";
ТаблицаТестов = Новый ТаблицаЗначений;
ТаблицаТестов.Колонки.Добавить("Метод");
ТаблицаТестов.Колонки.Добавить("Синоним");
ТаблицаТестов.Колонки.Добавить("Раздел");
НовыйТест(ТаблицаТестов, "Телеграм_ПолучитьИнформациюБота" , "Получить информацию бота" , Телеграм);
НовыйТест(ТаблицаТестов, "Телеграм_ПолучитьОбновления" , "Получить обновления" , Телеграм);
НовыйТест(ТаблицаТестов, "Телеграм_УстановитьWebhook" , "Установить Webhook" , Телеграм);
НовыйТест(ТаблицаТестов, "Телеграм_УдалитьWebhook" , "Удалить Webhook" , Телеграм);
НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьТекстовоеСообщение" , "Отправить текстовое сообщение" , Телеграм);
НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьКартинку" , "Отправить картинку" , Телеграм);
НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьВидео" , "Отправить видео" , Телеграм);
НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьАудио" , "Отправить аудио" , Телеграм);
НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьДокумент" , "Отправить документ" , Телеграм);
НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьГифку" , "Отправить гифку" , Телеграм);
НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьМедиагруппу" , "Отправить медиагруппу" , Телеграм);
НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьМестоположение" , "Отправить местоположение" , Телеграм);
НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьКонтакт" , "Отправить контакт" , Телеграм);
НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьОпрос" , "Отправить опрос" , Телеграм);
НовыйТест(ТаблицаТестов, "Телеграм_ПереслатьСообщение" , "Переслать сообщение" , Телеграм);
НовыйТест(ТаблицаТестов, "Телеграм_БанРазбан" , "Бан/Разбан" , Телеграм);
НовыйТест(ТаблицаТестов, "Телеграм_СоздатьСсылкуПриглашение" , "Создать ссылку-приглашение" , Телеграм);
НовыйТест(ТаблицаТестов, "Телеграм_ЗакрепитьОткрепитьСообщение" , "Закрепить/Открепить сообщение" , Телеграм);
НовыйТест(ТаблицаТестов, "Телеграм_ПолучитьЧислоУчастников" , "Получить число участников" , Телеграм);
НовыйТест(ТаблицаТестов, "Телеграм_ПолучитьСписокАватаровФорума", "Получить список аватаров форума", Телеграм);
НовыйТест(ТаблицаТестов, "Телеграм_СоздатьУдалитьТемуФорума" , "Создать/Удалить тему форума" , Телеграм);
НовыйТест(ТаблицаТестов, "Телеграм_ОткрытьЗакрытьГлавнуюТему" , "Открыть/Закрыть главную тему" , Телеграм);
НовыйТест(ТаблицаТестов, "Телеграм_ИзменитьИмяГлавнойТемы" , "Изменить имя главной темы" , Телеграм);
НовыйТест(ТаблицаТестов, "Телеграм_СкрытьПоказатьГлавнуюТему" , "Скрыть/Показать главную тему" , Телеграм);
НовыйТест(ТаблицаТестов, "ВК_СоздатьСсылкуТокена" , "Создать ссылку получения токена", ВКонтакте);
НовыйТест(ТаблицаТестов, "ВК_СоздатьУдалитьПост" , "Создать/Удалить пост" , ВКонтакте);
НовыйТест(ТаблицаТестов, "ВК_СоздатьОпрос" , "Создать опрос" , ВКонтакте);
НовыйТест(ТаблицаТестов, "ВК_СохранитьУдалитьКартинку" , "Добавить/Удалить картинку" , ВКонтакте);
НовыйТест(ТаблицаТестов, "ВК_СоздатьИсторию" , "Создать историю" , ВКонтакте);
НовыйТест(ТаблицаТестов, "ВК_МетодыОбсуждений" , "Действия с обсуждениями" , ВКонтакте);
НовыйТест(ТаблицаТестов, "ВК_ЛайкРепостКоммент" , "Лайк/Репост/Комментарий" , ВКонтакте);
НовыйТест(ТаблицаТестов, "ВК_ПолучитьСтатистику" , "Получить статистику" , ВКонтакте);
НовыйТест(ТаблицаТестов, "ВК_ПолучитьСтатистикуПостов" , "Получить статистику постов" , ВКонтакте);
НовыйТест(ТаблицаТестов, "ВК_СоздатьРекламнуюКампанию" , "Создать рекламную кампанию" , ВКонтакте);
НовыйТест(ТаблицаТестов, "ВК_ОтправитьСообщение" , "Отправить сообщение" , ВКонтакте);
НовыйТест(ТаблицаТестов, "ВК_ПолучитьКатегорииТоваров" , "Получить категории товаров" , ВКонтакте);
НовыйТест(ТаблицаТестов, "ВК_СоздатьТоварПодборку" , "Создать товар и подборку" , ВКонтакте);
НовыйТест(ТаблицаТестов, "ВК_СоздатьТоварСоСвойствами" , "Создать товар со свойствами" , ВКонтакте);
НовыйТест(ТаблицаТестов, "ВК_ПолучитьСписокТоваров" , "Получить список товаров" , ВКонтакте);
НовыйТест(ТаблицаТестов, "ВК_ПолучитьСписокПодборок" , "Получить список подборок" , ВКонтакте);
НовыйТест(ТаблицаТестов, "ВК_ПолучитьСписокСвойств" , "Получить список свойств" , ВКонтакте);
НовыйТест(ТаблицаТестов, "ВК_ПолучитьСписокЗаказов" , "Получить список заказов" , ВКонтакте);
НовыйТест(ТаблицаТестов, "ЯДиск_ПолучитьИнформациюОДиске" , "Получить информацию о диске" , ЯДиск);
НовыйТест(ТаблицаТестов, "ЯДиск_СоздатьПапку" , "Создать папку" , ЯДиск);
НовыйТест(ТаблицаТестов, "ЯДиск_ЗагрузитьПоАдресуПолучитьОбъект", "Загрузить по URL и получить" , ЯДиск);
НовыйТест(ТаблицаТестов, "ЯДиск_ЗагрузитьУдалитьФайл" , "Загрузить/Удалить файл" , ЯДиск);
НовыйТест(ТаблицаТестов, "ЯДиск_СоздатьКопиюОбъекта" , "Создать копию объекта" , ЯДиск);
НовыйТест(ТаблицаТестов, "ЯДиск_ПолучитьСсылкуНаСкачивание" , "Получить ссылку на скачивание" , ЯДиск);
НовыйТест(ТаблицаТестов, "ЯДиск_ПолучитьСписокФайлов" , "Получить список файлов" , ЯДиск);
НовыйТест(ТаблицаТестов, "ЯДиск_ПереместитьОбъект" , "Переместить объект" , ЯДиск);
НовыйТест(ТаблицаТестов, "ЯДиск_ДействияПубличныхОбъектов" , "Действия с публичными объектами", ЯДиск);
НовыйТест(ТаблицаТестов, "ЯДиск_ПолучитьСписокОпубликованных" , "Получить список опубликованных" , ЯДиск);
НовыйТест(ТаблицаТестов, "ГВ_ПолучитьСсылкуАвторизации" , "Получить ссылку авторизации" , ВСпейс);
НовыйТест(ТаблицаТестов, "ГВ_ПолучитьТокен" , "Получить токен" , ВСпейс);
НовыйТест(ТаблицаТестов, "ГВ_ОбновитьТокен" , "Обновить токен" , ВСпейс);
НовыйТест(ТаблицаТестов, "ГК_ПолучитьСписокКалендарей" , "Получить список календарей" , Календарь);
НовыйТест(ТаблицаТестов, "ГК_СоздатьУдалитьКалендарь" , "Создать/Удалить календарь" , Календарь);
НовыйТест(ТаблицаТестов, "ГК_СоздатьУдалитьСобытие" , "Создать/Удалить событие" , Календарь);
НовыйТест(ТаблицаТестов, "ГК_ПолучитьСписокСобытий" , "Получить список событий" , Календарь);
НовыйТест(ТаблицаТестов, "ГД_ПолучитьСписокКаталогов" , "Получить список каталогов" , Драйв);
НовыйТест(ТаблицаТестов, "ГД_ЗагрузитьУдалитьФайл" , "Загрузить/Удалить Файл" , Драйв);
НовыйТест(ТаблицаТестов, "ГД_СоздатьУдалитьКомментарий" , "Создать/Удалить кооментарий" , Драйв);
НовыйТест(ТаблицаТестов, "ГД_СоздатьКаталог" , "Создать/Удалить каталог" , Драйв);
НовыйТест(ТаблицаТестов, "Твиттер_ПолучитьСсылкуАвторизации" , "Получить ссылку авторизации" , Твиттер);
НовыйТест(ТаблицаТестов, "Твиттер_ОбновитьТокен" , "Обновить токен" , Твиттер);
НовыйТест(ТаблицаТестов, "Твиттер_СоздатьТекстовыйТвит" , "Текстовый твит" , Твиттер);
НовыйТест(ТаблицаТестов, "Твиттер_СоздатьТвитСКартинкой" , "Твит с картинкой" , Твиттер);
НовыйТест(ТаблицаТестов, "Твиттер_СоздатьТвитСВидео" , "Твит с видео" , Твиттер);
НовыйТест(ТаблицаТестов, "Твиттер_СоздатьТвитСГиф" , "Твит с гиф" , Твиттер);
НовыйТест(ТаблицаТестов, "Твиттер_СоздатьТвитСОпросом" , "Твит с опросом" , Твиттер);
НовыйТест(ТаблицаТестов, "Вайбер_ПолучитьИнформациюОКанале" , "Получить информацию канала" , Вайбер);
НовыйТест(ТаблицаТестов, "Вайбер_ПолучитьДанныеПользователя" , "Получить данные пользователя" , Вайбер);
НовыйТест(ТаблицаТестов, "Вайбер_ПолучитьОнлайнПользователей" , "Получить онлайн пользователей" , Вайбер);
НовыйТест(ТаблицаТестов, "Вайбер_ОтправитьТекстовоеСообщение" , "Отправить текстовое сообщение" , Вайбер);
НовыйТест(ТаблицаТестов, "Вайбер_ОтправитьКартинку" , "Отправить картинку" , Вайбер);
НовыйТест(ТаблицаТестов, "Вайбер_ОтправитьФайл" , "Отправить файл" , Вайбер);
НовыйТест(ТаблицаТестов, "Вайбер_ОтправитьКонтакт" , "Отправить контакт" , Вайбер);
НовыйТест(ТаблицаТестов, "Вайбер_ОтправитьЛокацию" , "Отправить локацию" , Вайбер);
НовыйТест(ТаблицаТестов, "Вайбер_ОтправитьСсылку" , "Отправить ссылку" , Вайбер);
НовыйТест(ТаблицаТестов, "Ноушн_СоздатьСтраницу" , "Создать страницу" , Ноушн);
НовыйТест(ТаблицаТестов, "Ноушн_СоздатьИзменитьБазу" , "Создать/Изменить базу" , Ноушн);
НовыйТест(ТаблицаТестов, "Ноушн_ПолучитьИнформациюОСтранице" , "Получить информацию о странице" , Ноушн);
НовыйТест(ТаблицаТестов, "Ноушн_ПолучитьИнформациюОБазе" , "Получить информацию о базе" , Ноушн);
НовыйТест(ТаблицаТестов, "Ноушн_СоздатьСтраницуВБазу" , "Создать страницу в базу" , Ноушн);
НовыйТест(ТаблицаТестов, "Ноушн_ИзменитьСвойстваСтраницы" , "Изменить свойства страницы" , Ноушн);
НовыйТест(ТаблицаТестов, "Ноушн_СоздатьУдалитьБлок" , "Создать/Удалить блок" , Ноушн);
НовыйТест(ТаблицаТестов, "Ноушн_ПолучитьПользователей" , "Получить пользователей" , Ноушн);
НовыйТест(ТаблицаТестов, "Ноушн_ПолучитьДанныеПользователя" , "Получить данные пользователя" , Ноушн);
НовыйТест(ТаблицаТестов, "Слак_ПолучитьИнформациюОБоте" , "Получить информацию о боте" , Слак);
НовыйТест(ТаблицаТестов, "Слак_ПолучитьСписокОбластей" , "Получить список областей" , Слак);
НовыйТест(ТаблицаТестов, "Слак_ОтправитьУдалитьСообщение" , "Отправить/Удалить сообщение" , Слак);
Возврат ТаблицаТестов;
КонецФункции
Функция ПолучитьОбщийМодуль(Знач Имя)
Модуль = Вычислить(Имя);

View File

@ -388,6 +388,36 @@
КонецПроцедуры
Процедура ДобавитьПоле(Знач Имя, Знач Значение, Знач Тип, Коллекция) Экспорт
Заполнено = ЗначениеЗаполнено(Значение);
Если Не Заполнено Тогда
Возврат;
КонецЕсли;
Если Тип = "Дата" Тогда
OPI_ПреобразованиеТипов.ПолучитьДату(Значение);
Значение = OPI_Инструменты.UNIXTime(Значение);
ИначеЕсли Тип = "Коллекция" Тогда
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Значение);
ИначеЕсли Тип = "Булево" Тогда
OPI_ПреобразованиеТипов.ПолучитьБулево(Значение);
ИначеЕсли Тип = "СтрокаФайла" Тогда
OPI_ПреобразованиеТипов.ПолучитьСтроку(Значение, Истина);
Иначе
OPI_ПреобразованиеТипов.ПолучитьСтроку(Значение);
КонецЕсли;
Коллекция.Вставить(Имя, Значение);
КонецПроцедуры
#КонецОбласти
#КонецОбласти