1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-01-06 03:54:27 +02:00

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

This commit is contained in:
Vitaly the Alpaca 2024-04-17 17:07:02 +00:00 committed by Vitaly the Alpaca (bot)
parent 007f342b2a
commit 0f2d3007e2
3 changed files with 147 additions and 119 deletions

View File

@ -74,7 +74,6 @@
КонецФункции
#КонецОбласти
#Область РаботаСЧатами

View File

@ -346,22 +346,9 @@
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Файл);
MediaKey = "media_key";
ProcessingInfo = "processing_info";
MIS = "media_id_string";
Command = "command";
ВидЗапроса = "POST";
Единица = 1024;
Количество = 4;
СоответствиеMIME = Новый Соответствие;
СоответствиеMIME.Вставить("tweet_image", "image/jpeg");
СоответствиеMIME.Вставить("tweet_video", "video/mp4");
СоответствиеMIME.Вставить("tweet_gif" , "image/gif");
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
URL = "https://upload.twitter.com/1.1/media/upload.json";
Размер = Файл.Размер();
Если Тип = "tweet_image" Тогда
@ -370,11 +357,32 @@
Поля.Вставить("media_category", Тип);
Авторизация = СоздатьЗаголовокАвторизацииV1(Параметры_, Поля, ВидЗапроса, URL);
Ответ = OPI_Инструменты.Post(URL, Поля, Авторизация, Ложь);
Иначе
Ответ = ЗагрузитьМедиаЧастями(Файл, Тип, ВидЗапроса, URL, Параметры_);
КонецЕсли;
Возврат Ответ;
КонецФункции
Функция ЗагрузитьМедиаЧастями(Знач Файл, Знач Тип, Знач ВидЗапроса, Знач URL, Параметры)
Единица = 1024;
Количество = 4;
MediaKey = "media_key";
MIS = "media_id_string";
Command = "command";
Размер = Файл.Размер();
СоответствиеMIME = Новый Соответствие;
СоответствиеMIME.Вставить("tweet_image", "image/jpeg");
СоответствиеMIME.Вставить("tweet_video", "video/mp4");
СоответствиеMIME.Вставить("tweet_gif" , "image/gif");
РазмерЧасти = Количество * Единица * Единица;
МассивЧтения = РазделитьДвоичныеДанные(Файл, РазмерЧасти);
@ -384,7 +392,7 @@
Поля.Вставить("media_type" , СоответствиеMIME.Получить(Тип));
Поля.Вставить("media_category" , Тип);
Авторизация = СоздатьЗаголовокАвторизацииV1(Параметры_, Поля, ВидЗапроса, URL);
Авторизация = СоздатьЗаголовокАвторизацииV1(Параметры, Поля, ВидЗапроса, URL);
ОтветИнициализации = OPI_Инструменты.Post(URL, Поля, Авторизация, Ложь);
KeyИнициализации = ОтветИнициализации[MediaKey];
@ -404,23 +412,34 @@
Поля.Вставить("segment_index" , OPI_Инструменты.ЧислоВСтроку(Счетчик));
Поля.Вставить("media" , Часть);
Авторизация = СоздатьЗаголовокАвторизацииV1(Параметры_, Новый Структура, ВидЗапроса, URL);
Авторизация = СоздатьЗаголовокАвторизацииV1(Параметры, Новый Структура, ВидЗапроса, URL);
OPI_Инструменты.PostMultipart(URL, Поля, , , Авторизация);
Счетчик = Счетчик + 1;
КонецЦикла;
Поля = Новый Структура;
Поля.Вставить(Command , "FINALIZE");
Поля.Вставить("media_id", IDИнициализации);
СтатусОбработки = ПолучитьСтатусОбработки(Параметры_, Поля, URL);
СтатусОбработки = ПолучитьСтатусОбработки(Параметры, Поля, URL);
Если Не ТипЗнч(СтатусОбработки) = Тип("Строка") Тогда
Возврат СтатусОбработки;
КонецЕсли;
Ответ = ОжидатьЗавершенияОбработки(СтатусОбработки, IDИнициализации, URL, Параметры);
Возврат Ответ;
КонецФункции
Функция ОжидатьЗавершенияОбработки(Знач СтатусОбработки, Знач IDИнициализации, Знач URL, Знач Параметры)
ProcessingInfo = "processing_info";
Command = "command";
Поля = Новый Структура;
Поля.Вставить(Command , "STATUS");
@ -428,7 +447,7 @@
Пока Строка(СтатусОбработки) = "pending" Или Строка(СтатусОбработки) = "in_progress" Цикл
Авторизация = СоздатьЗаголовокАвторизацииV1(Параметры_, Поля, "GET", URL);
Авторизация = СоздатьЗаголовокАвторизацииV1(Параметры, Поля, "GET", URL);
Ответ = OPI_Инструменты.Get(URL, Поля, Авторизация);
Информация = Ответ[ProcessingInfo];
@ -448,8 +467,6 @@
ВызватьИсключение "Твиттер не смог обработать загруженное вами видео";
КонецЕсли;
КонецЕсли;
Возврат Ответ;
КонецФункции

View File

@ -1841,36 +1841,10 @@
OPI_ПреобразованиеТипов.ПолучитьБулево(Скрытая);
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
PhotoID = "photo_id";
Если ЗначениеЗаполнено(Картинка) Тогда
ИДФото = ПолучитьИДКартинки(Картинка, Параметры_, "Товар");
Если Не ТипЗнч(ИДФото) = Тип("Строка") Тогда
Возврат ИДФото;
КонецЕсли;
Параметры_.Вставить(PhotoID, ИДФото);
Иначе
Если ЗначениеЗаполнено(ИДПодборки) Тогда
Подборки = ПолучитьМассивПодборок(ИДПодборки, Параметры_);
Если Не ТипЗнч(Подборки) = Тип("Массив") Тогда
Возврат Подборки;
КонецЕсли;
Если Не Подборки.Количество() = 0 Тогда
ИДФото = Подборки[0]["photo"]["id"];
OPI_ПреобразованиеТипов.ПолучитьСтроку(ИДФото);
Параметры_.Вставить(PhotoID, ИДФото);
КонецЕсли;
КонецЕсли;
Ответ = ДобавитьПараметрКартинки(Картинка, ИДПодборки, Параметры_);
Если ЗначениеЗаполнено(Ответ) Тогда
Возврат Ответ;
КонецЕсли;
Параметры_.Вставить("title" , Название);
@ -1890,6 +1864,44 @@
КонецФункции
Функция ДобавитьПараметрКартинки(Знач Картинка, Знач ИДПодборки, Параметры)
PhotoID = "photo_id";
Если ЗначениеЗаполнено(Картинка) Тогда
ИДФото = ПолучитьИДКартинки(Картинка, Параметры, "Товар");
Если Не ТипЗнч(ИДФото) = Тип("Строка") Тогда
Возврат ИДФото;
КонецЕсли;
Параметры.Вставить(PhotoID, ИДФото);
Иначе
Если ЗначениеЗаполнено(ИДПодборки) Тогда
Подборки = ПолучитьМассивПодборок(ИДПодборки, Параметры);
Если Не ТипЗнч(Подборки) = Тип("Массив") Тогда
Возврат Подборки;
КонецЕсли;
Если Не Подборки.Количество() = 0 Тогда
ИДФото = Подборки[0]["photo"]["id"];
OPI_ПреобразованиеТипов.ПолучитьСтроку(ИДФото);
Параметры.Вставить(PhotoID, ИДФото);
КонецЕсли;
КонецЕсли;
КонецЕсли;
Возврат "";
КонецФункции
Процедура ЗаполнитьПараметрыЗагрузкиФото(Знач Метод, Знач Ответ, Параметры)
Response = "response";