mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2024-11-28 09:08:38 +02:00
Преобразование OPI -> OInt (workflow)
This commit is contained in:
parent
31718e262a
commit
d420c8c1a9
4
.github/workflows/oint_test_VK.yml
vendored
4
.github/workflows/oint_test_VK.yml
vendored
@ -87,6 +87,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 "ВК_СоздатьСоставнойПост"
|
||||
|
||||
- name: Создать опрос
|
||||
if: ${{ cancelled() }} == false
|
||||
run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./OInt/tests/Modules/internal/OPI_Тесты.os "ВК_СоздатьОпрос"
|
||||
|
4
.github/workflows/oint_test_full.yml
vendored
4
.github/workflows/oint_test_full.yml
vendored
@ -213,6 +213,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 "ВК_СоздатьСоставнойПост"
|
||||
|
||||
- name: Создать опрос
|
||||
if: ${{ cancelled() }} == false
|
||||
run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./OInt/tests/Modules/internal/OPI_Тесты.os "ВК_СоздатьОпрос"
|
||||
|
@ -74,7 +74,7 @@
|
||||
// Параметры:
|
||||
// Текст - Строка - Текст поста - text
|
||||
// МассивКартинок - Массив из Строка,ДвоичныеДанные - Массив картинок - pictures
|
||||
// Рекламный - Булево - Признак ""Это реклама"" - ad
|
||||
// Реклама - Булево - Признак ""Это реклама"" - ad
|
||||
// СсылкаПодЗаписью - Строка - Ссылка (URL) под записью - url
|
||||
// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
|
||||
//
|
||||
@ -82,17 +82,14 @@
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
|
||||
Функция СоздатьПост(Знач Текст
|
||||
, Знач МассивКартинок
|
||||
, Знач Рекламный = Ложь
|
||||
, Знач Реклама = Ложь
|
||||
, Знач СсылкаПодЗаписью = ""
|
||||
, Знач Параметры = "") Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст);
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(СсылкаПодЗаписью);
|
||||
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(МассивКартинок);
|
||||
OPI_ПреобразованиеТипов.ПолучитьБулево(Рекламный);
|
||||
|
||||
|
||||
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
|
||||
СтрокаВложений = "";
|
||||
МассивВложений = Новый Массив;
|
||||
|
||||
Для Каждого КартинкаПоста Из МассивКартинок Цикл
|
||||
|
||||
@ -106,28 +103,58 @@
|
||||
Возврат ОтветСоответствие;
|
||||
КонецЕсли;
|
||||
|
||||
ФотоID = "photo"
|
||||
+ OPI_Инструменты.ЧислоВСтроку(OwnerId)
|
||||
+ "_"
|
||||
+ OPI_Инструменты.ЧислоВСтроку(ObjectId);
|
||||
OwnerId = OPI_Инструменты.ЧислоВСтроку(OwnerId);
|
||||
ObjectId = OPI_Инструменты.ЧислоВСтроку(ObjectId);
|
||||
|
||||
ФотоID = "photo" + OwnerId + "_" + ObjectId;
|
||||
|
||||
СтрокаВложений = СтрокаВложений + ФотоID + ",";
|
||||
МассивВложений.Добавить(ФотоID);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
СтрокаВложений = СтрокаВложений + СсылкаПодЗаписью;
|
||||
|
||||
Параметры_.Вставить("message" , Текст);
|
||||
Параметры_.Вставить("attachments" , СтрокаВложений);
|
||||
Параметры_.Вставить("mark_as_ads" , ?(Рекламный, 1, 0));
|
||||
Параметры_.Вставить("close_comments" , ?(Рекламный, 1, 0));
|
||||
|
||||
Ответ = OPI_Инструменты.Get("api.vk.com/method/wall.post", Параметры_);
|
||||
Ответ = СоздатьСоставнойПост(Текст, МассивВложений, Реклама, СсылкаПодЗаписью, Параметры);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Создать составной пост
|
||||
// Создает пост на основе массива идетификаторов объектов (картинок, видео и др.)
|
||||
//
|
||||
// Параметры:
|
||||
// Текст - Строка - Текст поста - text
|
||||
// Объекты - Массив из Строка - Массив идентификаторов вида photo123_123 - objects
|
||||
// Реклама - Булево - Признак ""Это реклама"" - ad
|
||||
// СсылкаПодЗаписью - Строка - Ссылка (URL) под записью - url
|
||||
// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
|
||||
Функция СоздатьСоставнойПост(Знач Текст
|
||||
, Знач Объекты
|
||||
, Знач Реклама = Ложь
|
||||
, Знач СсылкаПодЗаписью = ""
|
||||
, Знач Параметры = "") Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст);
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(СсылкаПодЗаписью);
|
||||
OPI_ПреобразованиеТипов.ПолучитьБулево(Реклама);
|
||||
|
||||
Параметры = ПолучитьСтандартныеПараметры(Параметры);
|
||||
СтрокаВложений = СтрСоединить(Объекты, ",");
|
||||
СтрокаВложений = СтрокаВложений + СсылкаПодЗаписью;
|
||||
|
||||
Параметры.Вставить("message" , Текст);
|
||||
Параметры.Вставить("attachments" , СтрокаВложений);
|
||||
Параметры.Вставить("mark_as_ads" , ?(Реклама, 1, 0));
|
||||
Параметры.Вставить("close_comments" , ?(Реклама, 1, 0));
|
||||
|
||||
Ответ = OPI_Инструменты.Get("api.vk.com/method/wall.post", Параметры);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Удалить пост
|
||||
// Удаляет пост по id
|
||||
//
|
||||
@ -346,8 +373,8 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Загрузить видео
|
||||
// Загружает видео в группу
|
||||
// Загрузить видео на сервер
|
||||
// Загружает видео в группу с возможностью его дальнейшего использования
|
||||
//
|
||||
// Параметры:
|
||||
// Видео - Строка, ДвоичныеДанные - Файл видео - file
|
||||
@ -358,7 +385,11 @@
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
|
||||
Функция ЗагрузитьВидео(Знач Видео, Знач Наименование, Знач Описание = "", Знач Альбом = "", Знач Параметры = "") Экспорт
|
||||
Функция ЗагрузитьВидеоНаСервер(Знач Видео
|
||||
, Знач Наименование
|
||||
, Знач Описание = ""
|
||||
, Знач Альбом = ""
|
||||
, Знач Параметры = "") Экспорт
|
||||
|
||||
Параметры = ПолучитьСтандартныеПараметры(Параметры);
|
||||
|
||||
@ -392,6 +423,74 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Загрузить фото на сервер
|
||||
// Загружает фото на сервер для его дальнейшего использования
|
||||
//
|
||||
// Параметры:
|
||||
// Картинка - Строка, ДвоичныеДанные - Файл картинки - file
|
||||
// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
|
||||
// Вид - Строка - Вид загрузки (Пост, Товар, История, Опрос, Прочее) - type
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
|
||||
Функция ЗагрузитьФотоНаСервер(Знач Картинка, Знач Параметры = "", Знач Вид = "Пост") Экспорт
|
||||
|
||||
Параметры = ПолучитьСтандартныеПараметры(Параметры);
|
||||
Метод = ОпределитьМетодЗагрузкиИзображений(Вид);
|
||||
Файлы = Новый Соответствие;
|
||||
|
||||
Response = "response";
|
||||
URL = "api.vk.com/method/";
|
||||
Загрузка = URL + Метод["Загрузка"];
|
||||
Сохранение = URL + Метод["Сохранение"];
|
||||
|
||||
Если ТипЗнч(Картинка) = Тип("Строка") Тогда
|
||||
КлючКартинка = СтрЗаменить(Картинка, ".", "___");
|
||||
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка);
|
||||
Иначе
|
||||
КлючКартинка = "image___jpeg";
|
||||
КонецЕсли;
|
||||
|
||||
Файлы.Вставить(КлючКартинка, Картинка);
|
||||
|
||||
Для Н = 1 По 5 Цикл
|
||||
|
||||
Ответ = OPI_Инструменты.Get(Загрузка, Параметры);
|
||||
Результат = Ответ[Response];
|
||||
|
||||
Если ЗначениеЗаполнено(Результат) Тогда
|
||||
|
||||
URL = Результат["upload_url"];
|
||||
|
||||
Если Не ЗначениеЗаполнено(URL) Тогда
|
||||
Возврат Ответ;
|
||||
КонецЕсли;
|
||||
|
||||
Иначе
|
||||
Возврат Ответ;
|
||||
КонецЕсли;
|
||||
|
||||
Параметры.Вставить("upload_url", URL);
|
||||
Ответ = OPI_Инструменты.PostMultipart(URL, Параметры, Файлы);
|
||||
|
||||
Если ТипЗнч(Ответ) = Тип("Соответствие") Тогда
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Если ТипЗнч(Ответ) <> Тип("Соответствие") Тогда
|
||||
Возврат ПолучитьСтрокуИзДвоичныхДанных(Ответ);
|
||||
КонецЕсли;
|
||||
|
||||
ЗаполнитьПараметрыЗагрузкиФото(Метод, Ответ, Параметры);
|
||||
|
||||
Ответ = OPI_Инструменты.Get(Сохранение, Параметры);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область РаботаСОбсуждениями
|
||||
@ -1710,63 +1809,6 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ЗагрузитьФотоНаСервер(Знач Картинка, Знач Параметры, Знач Вид = "Пост")
|
||||
|
||||
Метод = ОпределитьМетодЗагрузкиИзображений(Вид);
|
||||
Файлы = Новый Соответствие;
|
||||
|
||||
Response = "response";
|
||||
URL = "api.vk.com/method/";
|
||||
Загрузка = URL + Метод["Загрузка"];
|
||||
Сохранение = URL + Метод["Сохранение"];
|
||||
|
||||
Если ТипЗнч(Картинка) = Тип("Строка") Тогда
|
||||
КлючКартинка = СтрЗаменить(Картинка, ".", "___");
|
||||
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка);
|
||||
Иначе
|
||||
КлючКартинка = "image___jpeg";
|
||||
КонецЕсли;
|
||||
|
||||
Файлы.Вставить(КлючКартинка, Картинка);
|
||||
|
||||
Для Н = 1 По 5 Цикл
|
||||
|
||||
Ответ = OPI_Инструменты.Get(Загрузка, Параметры);
|
||||
Результат = Ответ[Response];
|
||||
|
||||
Если ЗначениеЗаполнено(Результат) Тогда
|
||||
|
||||
URL = Результат["upload_url"];
|
||||
|
||||
Если Не ЗначениеЗаполнено(URL) Тогда
|
||||
Возврат Ответ;
|
||||
КонецЕсли;
|
||||
|
||||
Иначе
|
||||
Возврат Ответ;
|
||||
КонецЕсли;
|
||||
|
||||
Параметры.Вставить("upload_url", URL);
|
||||
Ответ = OPI_Инструменты.PostMultipart(URL, Параметры, Файлы);
|
||||
|
||||
Если ТипЗнч(Ответ) = Тип("Соответствие") Тогда
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Если ТипЗнч(Ответ) <> Тип("Соответствие") Тогда
|
||||
Возврат ПолучитьСтрокуИзДвоичныхДанных(Ответ);
|
||||
КонецЕсли;
|
||||
|
||||
ЗаполнитьПараметрыЗагрузкиФото(Метод, Ответ, Параметры);
|
||||
|
||||
Ответ = OPI_Инструменты.Get(Сохранение, Параметры);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ОпределитьМетодЗагрузкиИзображений(Знач Вид)
|
||||
|
||||
СоответствиеМетодов = Новый Соответствие;
|
||||
|
@ -818,6 +818,32 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ВК_СоздатьСоставнойПост() Экспорт
|
||||
|
||||
Response = "response";
|
||||
Параметры = ПолучитьПараметрыВК();
|
||||
Текст = "Пост из автотеста";
|
||||
URL = "https://github.com/Bayselonarrend/OpenIntegrations";
|
||||
Картинка = OPI_ПолучениеДанныхТестов.ПолучитьДвоичные("Picture");
|
||||
Видео = OPI_ПолучениеДанныхТестов.ПолучитьДвоичные("Video");
|
||||
|
||||
ЗагрузкаКартинки = OPI_VK.ЗагрузитьФотоНаСервер(Картинка, Параметры)["response"][0];
|
||||
ЗагрузкаВидео = OPI_VK.ЗагрузитьВидеоНаСервер(Видео, "Новое видео", , , Параметры);
|
||||
|
||||
ВладелецКартинки = OPI_Инструменты.ЧислоВСтроку(ЗагрузкаКартинки["owner_id"]);
|
||||
ВладелецВидео = OPI_Инструменты.ЧислоВСтроку(ЗагрузкаВидео["owner_id"]);
|
||||
|
||||
IDКартинки = OPI_Инструменты.ЧислоВСтроку(ЗагрузкаКартинки["id"]);
|
||||
IDВидео = OPI_Инструменты.ЧислоВСтроку(ЗагрузкаВидео["video_id"]);
|
||||
|
||||
МассивВложений = Новый Массив;
|
||||
МассивВложений.Добавить("photo" + ВладелецКартинки + "_" + IDКартинки);
|
||||
МассивВложений.Добавить("video" + ВладелецВидео + "_" + IDВидео);
|
||||
|
||||
Результат = OPI_VK.СоздатьСоставнойПост(Текст, МассивВложений, , , Параметры);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ВК_СоздатьОпрос() Экспорт
|
||||
|
||||
Параметры = ПолучитьПараметрыВК();
|
||||
|
@ -109,6 +109,7 @@
|
||||
|
||||
НовыйТест(ТаблицаТестов, "ВК_СоздатьСсылкуТокена" , "Создать ссылку получения токена", ВКонтакте);
|
||||
НовыйТест(ТаблицаТестов, "ВК_СоздатьУдалитьПост" , "Создать/Удалить пост" , ВКонтакте);
|
||||
НовыйТест(ТаблицаТестов, "ВК_СоздатьСоставнойПост" , "Создать/Удалить составной пост" , ВКонтакте);
|
||||
НовыйТест(ТаблицаТестов, "ВК_СоздатьОпрос" , "Создать опрос" , ВКонтакте);
|
||||
НовыйТест(ТаблицаТестов, "ВК_СохранитьУдалитьКартинку" , "Добавить/Удалить картинку" , ВКонтакте);
|
||||
НовыйТест(ТаблицаТестов, "ВК_СоздатьИсторию" , "Создать историю" , ВКонтакте);
|
||||
|
Loading…
Reference in New Issue
Block a user