From 4c90fddfb3d4ded37a17db47863642e7679b7412 Mon Sep 17 00:00:00 2001 From: Vitaly the Alpaca Date: Thu, 21 Mar 2024 08:58:24 +0000 Subject: [PATCH] =?UTF-8?q?=D0=9F=D1=80=D0=B5=D0=BE=D0=B1=D1=80=D0=B0?= =?UTF-8?q?=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20OPI=20->=20OInt=20?= =?UTF-8?q?(workflow)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- OInt/core/Modules/OPI_GoogleDrive.os | 5 +-- OInt/core/Modules/OPI_Telegram.os | 4 +-- OInt/core/Modules/OPI_Twitter.os | 14 +++----- OInt/core/Modules/OPI_VK.os | 4 +-- OInt/core/Modules/OPI_YandexDisk.os | 6 +--- .../internal/Modules/OPI_Инструменты.os | 34 +++++++++++++++++++ 6 files changed, 44 insertions(+), 23 deletions(-) diff --git a/OInt/core/Modules/OPI_GoogleDrive.os b/OInt/core/Modules/OPI_GoogleDrive.os index 0159925f88..e79aa54620 100644 --- a/OInt/core/Modules/OPI_GoogleDrive.os +++ b/OInt/core/Modules/OPI_GoogleDrive.os @@ -467,10 +467,7 @@ Если ЗначениеЗаполнено(Файл) Тогда - Если ТипЗнч(Файл) <> Тип("ДвоичныеДанные") Тогда - Файл = Новый ДвоичныеДанные(Файл); - КонецЕсли; - + Файл = OPI_Инструменты.ПолучитьДвоичныеДанные(Файл); СоответствиеФайла.Вставить(Файл, MIME); КонецЕсли; diff --git a/OInt/core/Modules/OPI_Telegram.os b/OInt/core/Modules/OPI_Telegram.os index ac3f99e826..8a043690f6 100644 --- a/OInt/core/Modules/OPI_Telegram.os +++ b/OInt/core/Modules/OPI_Telegram.os @@ -855,7 +855,7 @@ Если Не ТипЗнч(Файл) = Тип("ДвоичныеДанные") Тогда ТекущийФайл = Новый Файл(Файл); Расширение = ?(Вид = "document" Или Вид = "animation", ТекущийФайл.Расширение, ""); - Файл = Новый ДвоичныеДанные(Файл); + Файл = OPI_Инструменты.ПолучитьДвоичныеДанные(Файл); КонецЕсли; Расширение = СтрЗаменить(Расширение, ".", "___"); @@ -1008,7 +1008,7 @@ Для Каждого ТекущийФайл Из СоответствиеФайлов Цикл Если Не ТипЗнч(ТекущийФайл.Ключ) = Тип("ДвоичныеДанные") Тогда - ДД = Новый ДвоичныеДанные(ТекущийФайл.Ключ); + ДД = OPI_Инструменты.ПолучитьДвоичныеДанные(ТекущийФайл.Ключ); ЭтотФайл = Новый Файл(ТекущийФайл.Ключ); ИмяМедиа = ТекущийФайл.Значение + Строка(Счетчик) + ?(ТекущийФайл.Значение = "document", ЭтотФайл.Расширение, ""); diff --git a/OInt/core/Modules/OPI_Twitter.os b/OInt/core/Modules/OPI_Twitter.os index 1f99ff4db8..a455f8b817 100644 --- a/OInt/core/Modules/OPI_Twitter.os +++ b/OInt/core/Modules/OPI_Twitter.os @@ -303,12 +303,9 @@ КонецЕсли; Для Каждого ФайлОтправки Из МассивФайлов Цикл - - Если Не ТипЗнч(ФайлОтправки) = Тип("ДвоичныеДанные") Тогда - ФайлОтправки = Новый ДвоичныеДанные(ФайлОтправки); - КонецЕсли; - - IDМедиа = ЗагрузитьМедиафайл(ФайлОтправки, ТипВложений, Параметры_)[MIS]; + + ФайлОтправки = OPI_Инструменты.ПолучитьДвоичныеДанные(ФайлОтправки); + IDМедиа = ЗагрузитьМедиафайл(ФайлОтправки, ТипВложений, Параметры_)[MIS]; МассивМедиа.Добавить(IDМедиа); КонецЦикла; @@ -340,10 +337,7 @@ СоответствиеMIME.Вставить("tweet_video", "video/mp4"); СоответствиеMIME.Вставить("tweet_gif" , "image/gif"); - Если Не ТипЗнч(Файл) = Тип("ДвоичныеДанные") Тогда - Файл = Новый ДвоичныеДанные(Файл); - КонецЕсли; - + Файл = OPI_Инструменты.ПолучитьДвоичныеДанные(Файл); Параметры_ = ПолучитьСтандартныеПараметры(Параметры); URL = "https://upload.twitter.com/1.1/media/upload.json"; Размер = Файл.Размер(); diff --git a/OInt/core/Modules/OPI_VK.os b/OInt/core/Modules/OPI_VK.os index 4046cf1d3a..98016662f4 100644 --- a/OInt/core/Modules/OPI_VK.os +++ b/OInt/core/Modules/OPI_VK.os @@ -161,7 +161,7 @@ Если ТипЗнч(Картинка) = Тип("Строка") Тогда Путь = Картинка; - Картинка = Новый ДвоичныеДанные(Картинка); + Картинка = OPI_Инструменты.ПолучитьДвоичныеДанные(Картинка); Иначе Путь = ("image.jpeg"); КонецЕсли; @@ -1452,7 +1452,7 @@ Если ТипЗнч(Картинка) = Тип("Строка") Тогда КлючКартинка = СтрЗаменить(Картинка, ".", "___"); - ЗначениеКартинка = Новый ДвоичныеДанные(Картинка); + ЗначениеКартинка = OPI_Инструменты.ПолучитьДвоичныеДанные(Картинка); Иначе КлючКартинка = "image___jpeg"; ЗначениеКартинка = Картинка; diff --git a/OInt/core/Modules/OPI_YandexDisk.os b/OInt/core/Modules/OPI_YandexDisk.os index 53264d0802..318e3049f8 100644 --- a/OInt/core/Modules/OPI_YandexDisk.os +++ b/OInt/core/Modules/OPI_YandexDisk.os @@ -267,11 +267,7 @@ Заголовки = ЗаголовокАвторизации(Токен); Href = "href"; - - Если Не ТипЗнч(Файл) = Тип("ДвоичныеДанные") Тогда - Файл = Новый ДвоичныеДанные(Файл); - КонецЕсли; - + Файл = OPI_Инструменты.ПолучитьДвоичныеДанные(Файл); Файл = Новый Структура("file", Файл); Параметры = Новый Структура; diff --git a/OInt/tools/Modules/internal/Modules/OPI_Инструменты.os b/OInt/tools/Modules/internal/Modules/OPI_Инструменты.os index bd41941fb6..6266389fdc 100644 --- a/OInt/tools/Modules/internal/Modules/OPI_Инструменты.os +++ b/OInt/tools/Modules/internal/Modules/OPI_Инструменты.os @@ -267,6 +267,40 @@ КонецФункции +Функция ПолучитьДвоичныеДанные(Знач Значение) Экспорт + + Попытка + + Если ТипЗнч(Значение) <> Тип("ДвоичныеДанные") Тогда + + Файл = Новый Файл(Значение); + + Если Файл.Существует() Тогда + Возврат Новый ДвоичныеДанные(Значение); + Иначе + + ИВФ = ПолучитьИмяВременногоФайла(); + КопироватьФайл(Значение, ИВФ); + Двоичные = Новый ДвоичныеДанные(ИВФ); + + УдалитьФайлы(ИВФ); + + Возврат Двоичные; + + КонецЕсли; + + Иначе + + Возврат Значение; + + КонецЕсли; + + Исключение + ВызватьИсключение "Ошибка получения данных файла из параметра"; + КонецПопытки + +КонецФункции + #КонецОбласти #КонецОбласти