You've already forked OpenIntegrations
mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-08-15 20:13:31 +02:00
Преобразование OPI -> OInt (workflow)
This commit is contained in:
committed by
Vitaly the Alpaca (bot)
parent
031986830a
commit
461dc64c24
@@ -467,7 +467,7 @@
|
|||||||
|
|
||||||
Если ЗначениеЗаполнено(Файл) Тогда
|
Если ЗначениеЗаполнено(Файл) Тогда
|
||||||
|
|
||||||
Файл = OPI_Инструменты.ПолучитьДвоичныеДанные(Файл);
|
Файл = OPI_Инструменты.ПолучитьДвоичныеДанные(Файл);
|
||||||
СоответствиеФайла.Вставить(Файл, MIME);
|
СоответствиеФайла.Вставить(Файл, MIME);
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
@@ -304,9 +304,8 @@
|
|||||||
Параметры.Вставить("after", ВставитьПосле);
|
Параметры.Вставить("after", ВставитьПосле);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Ответ = OPI_Инструменты.Patch("https://api.notion.com/v1/blocks/" + Родитель + "/children"
|
URL = "https://api.notion.com/v1/blocks/" + Родитель + "/children";
|
||||||
, Параметры
|
Ответ = OPI_Инструменты.Patch(URL, Параметры, Заголовки);
|
||||||
, Заголовки);
|
|
||||||
|
|
||||||
Возврат Ответ;
|
Возврат Ответ;
|
||||||
|
|
||||||
@@ -451,6 +450,7 @@
|
|||||||
ПреобразоватьИД(Родитель);
|
ПреобразоватьИД(Родитель);
|
||||||
|
|
||||||
ПолеИдентификатора = ?(РодительБаза, "database_id", "page_id");
|
ПолеИдентификатора = ?(РодительБаза, "database_id", "page_id");
|
||||||
|
|
||||||
СтруктураРодителя = Новый Структура();
|
СтруктураРодителя = Новый Структура();
|
||||||
СтруктураРодителя.Вставить("type" , ПолеИдентификатора);
|
СтруктураРодителя.Вставить("type" , ПолеИдентификатора);
|
||||||
СтруктураРодителя.Вставить(ПолеИдентификатора, Родитель);
|
СтруктураРодителя.Вставить(ПолеИдентификатора, Родитель);
|
||||||
@@ -606,6 +606,7 @@
|
|||||||
Если Не Блок.Получить(Поле) = Неопределено Тогда
|
Если Не Блок.Получить(Поле) = Неопределено Тогда
|
||||||
Блок.Удалить(Поле);
|
Блок.Удалить(Поле);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
@@ -43,9 +43,9 @@
|
|||||||
Функция ПолучитьИнформациюБота(Знач Токен) Экспорт
|
Функция ПолучитьИнформациюБота(Знач Токен) Экспорт
|
||||||
|
|
||||||
URL = "api.telegram.org/bot" + Токен + "/getMe";
|
URL = "api.telegram.org/bot" + Токен + "/getMe";
|
||||||
Ответ = OPI_Инструменты.Get(URL);
|
Ответ = OPI_Инструменты.Get(URL);
|
||||||
|
|
||||||
Возврат Ответ;
|
Возврат Ответ;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
@@ -59,8 +59,8 @@
|
|||||||
Функция ПолучитьОбновления(Знач Токен) Экспорт
|
Функция ПолучитьОбновления(Знач Токен) Экспорт
|
||||||
|
|
||||||
URL = "api.telegram.org/bot" + Токен + "/getUpdates";
|
URL = "api.telegram.org/bot" + Токен + "/getUpdates";
|
||||||
Ответ = OPI_Инструменты.Get(URL);
|
Ответ = OPI_Инструменты.Get(URL);
|
||||||
Возврат Ответ;
|
Возврат Ответ;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
@@ -74,13 +74,13 @@
|
|||||||
// ДвоичныеДанные, Неопределено, Произвольный - Ответ сервера Telegram
|
// ДвоичныеДанные, Неопределено, Произвольный - Ответ сервера Telegram
|
||||||
Функция УстановитьWebhook(Знач Токен, Знач URL) Экспорт
|
Функция УстановитьWebhook(Знач Токен, Знач URL) Экспорт
|
||||||
|
|
||||||
Параметры_ = Новый Структура;
|
Параметры_ = Новый Структура;
|
||||||
Параметры_.Вставить("url", URL);
|
Параметры_.Вставить("url", URL);
|
||||||
|
|
||||||
URL = "api.telegram.org/bot" + Токен + "/setWebHook";
|
URL = "api.telegram.org/bot" + Токен + "/setWebHook";
|
||||||
Ответ = OPI_Инструменты.Get(URL, Параметры_);
|
Ответ = OPI_Инструменты.Get(URL, Параметры_);
|
||||||
|
|
||||||
Возврат Ответ;
|
Возврат Ответ;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
@@ -94,8 +94,8 @@
|
|||||||
Функция УдалитьWebhook(Знач Токен) Экспорт
|
Функция УдалитьWebhook(Знач Токен) Экспорт
|
||||||
|
|
||||||
URL = "api.telegram.org/bot" + Токен + "/deleteWebHook";
|
URL = "api.telegram.org/bot" + Токен + "/deleteWebHook";
|
||||||
Ответ = OPI_Инструменты.Get(URL);
|
Ответ = OPI_Инструменты.Get(URL);
|
||||||
Возврат Ответ;
|
Возврат Ответ;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
@@ -115,19 +115,19 @@
|
|||||||
// ДвоичныеДанные, Неопределено, Произвольный - Ответ сервера Telegram
|
// ДвоичныеДанные, Неопределено, Произвольный - Ответ сервера Telegram
|
||||||
Функция ОтправитьТекстовоеСообщение(Знач Токен, Знач IDЧата, Знач Текст, Знач Клавиатура = "") Экспорт
|
Функция ОтправитьТекстовоеСообщение(Знач Токен, Знач IDЧата, Знач Текст, Знач Клавиатура = "") Экспорт
|
||||||
|
|
||||||
OPI_Инструменты.ЗаменитьСпецСимволы(Текст);
|
OPI_Инструменты.ЗаменитьСпецСимволы(Текст);
|
||||||
|
|
||||||
Параметры_ = Новый Структура;
|
Параметры_ = Новый Структура;
|
||||||
Параметры_.Вставить("parse_mode" , "Markdown");
|
Параметры_.Вставить("parse_mode" , "Markdown");
|
||||||
Параметры_.Вставить("text" , Текст);
|
Параметры_.Вставить("text" , Текст);
|
||||||
Параметры_.Вставить("reply_markup", Клавиатура);
|
Параметры_.Вставить("reply_markup", Клавиатура);
|
||||||
|
|
||||||
ДобавитьИдентификаторЧата(IDЧата, Параметры_);
|
ДобавитьИдентификаторЧата(IDЧата, Параметры_);
|
||||||
|
|
||||||
URL = "api.telegram.org/bot" + Токен + "/sendMessage";
|
URL = "api.telegram.org/bot" + Токен + "/sendMessage";
|
||||||
Ответ = OPI_Инструменты.Get(URL, Параметры_);
|
Ответ = OPI_Инструменты.Get(URL, Параметры_);
|
||||||
|
|
||||||
Возврат Ответ;
|
Возврат Ответ;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
@@ -144,7 +144,7 @@
|
|||||||
// Строка, Произвольный, HTTPОтвет - Ответ сервера Telegram
|
// Строка, Произвольный, HTTPОтвет - Ответ сервера Telegram
|
||||||
Функция ОтправитьКартинку(Знач Токен, Знач IDЧата, Знач Текст, Знач Картинка, Знач Клавиатура = "") Экспорт
|
Функция ОтправитьКартинку(Знач Токен, Знач IDЧата, Знач Текст, Знач Картинка, Знач Клавиатура = "") Экспорт
|
||||||
|
|
||||||
Возврат ОтправитьФайл(Токен, IDЧата, Текст, Картинка, "photo", Клавиатура);
|
Возврат ОтправитьФайл(Токен, IDЧата, Текст, Картинка, "photo", Клавиатура);
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
@@ -161,7 +161,7 @@
|
|||||||
// Строка, Произвольный, HTTPОтвет - Ответ сервера Telegram
|
// Строка, Произвольный, HTTPОтвет - Ответ сервера Telegram
|
||||||
Функция ОтправитьВидео(Знач Токен, Знач IDЧата, Знач Текст, Знач Видео, Знач Клавиатура = "") Экспорт
|
Функция ОтправитьВидео(Знач Токен, Знач IDЧата, Знач Текст, Знач Видео, Знач Клавиатура = "") Экспорт
|
||||||
|
|
||||||
Возврат ОтправитьФайл(Токен, IDЧата, Текст, Видео, "video", Клавиатура);
|
Возврат ОтправитьФайл(Токен, IDЧата, Текст, Видео, "video", Клавиатура);
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
@@ -178,7 +178,7 @@
|
|||||||
// Строка, Произвольный, HTTPОтвет - Ответ сервера Telegram
|
// Строка, Произвольный, HTTPОтвет - Ответ сервера Telegram
|
||||||
Функция ОтправитьАудио(Знач Токен, Знач IDЧата, Знач Текст, Знач Аудио, Знач Клавиатура = "") Экспорт
|
Функция ОтправитьАудио(Знач Токен, Знач IDЧата, Знач Текст, Знач Аудио, Знач Клавиатура = "") Экспорт
|
||||||
|
|
||||||
Возврат ОтправитьФайл(Токен, IDЧата, Текст, Аудио, "audio", Клавиатура);
|
Возврат ОтправитьФайл(Токен, IDЧата, Текст, Аудио, "audio", Клавиатура);
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
@@ -195,7 +195,7 @@
|
|||||||
// Строка, Произвольный, HTTPОтвет - Ответ сервера Telegram
|
// Строка, Произвольный, HTTPОтвет - Ответ сервера Telegram
|
||||||
Функция ОтправитьДокумент(Знач Токен, Знач IDЧата, Знач Текст, Знач Документ, Знач Клавиатура = "") Экспорт
|
Функция ОтправитьДокумент(Знач Токен, Знач IDЧата, Знач Текст, Знач Документ, Знач Клавиатура = "") Экспорт
|
||||||
|
|
||||||
Возврат ОтправитьФайл(Токен, IDЧата, Текст, Документ, "document", Клавиатура);
|
Возврат ОтправитьФайл(Токен, IDЧата, Текст, Документ, "document", Клавиатура);
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
@@ -212,7 +212,7 @@
|
|||||||
// Строка, Произвольный, HTTPОтвет - Ответ сервера Telegram
|
// Строка, Произвольный, HTTPОтвет - Ответ сервера Telegram
|
||||||
Функция ОтправитьГифку(Знач Токен, Знач IDЧата, Знач Текст, Знач Гифка, Знач Клавиатура = "") Экспорт
|
Функция ОтправитьГифку(Знач Токен, Знач IDЧата, Знач Текст, Знач Гифка, Знач Клавиатура = "") Экспорт
|
||||||
|
|
||||||
Возврат ОтправитьФайл(Токен, IDЧата, Текст, Гифка, "animation", Клавиатура);
|
Возврат ОтправитьФайл(Токен, IDЧата, Текст, Гифка, "animation", Клавиатура);
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
@@ -236,26 +236,26 @@
|
|||||||
// Типы: audio, document, photo, video
|
// Типы: audio, document, photo, video
|
||||||
// Нельзя замешивать разные типы!
|
// Нельзя замешивать разные типы!
|
||||||
|
|
||||||
OPI_Инструменты.ЗаменитьСпецсимволы(Текст);
|
OPI_Инструменты.ЗаменитьСпецсимволы(Текст);
|
||||||
|
|
||||||
URL = "api.telegram.org/bot" + Токен + "/sendMediaGroup";
|
URL = "api.telegram.org/bot" + Токен + "/sendMediaGroup";
|
||||||
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
|
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
|
||||||
СтруктураФайлов = Новый Структура;
|
СтруктураФайлов = Новый Структура;
|
||||||
Медиа = Новый Массив;
|
Медиа = Новый Массив;
|
||||||
|
|
||||||
Параметры_ = Новый Структура;
|
Параметры_ = Новый Структура;
|
||||||
Параметры_.Вставить("parse_mode" , "Markdown");
|
Параметры_.Вставить("parse_mode" , "Markdown");
|
||||||
Параметры_.Вставить("caption" , Текст);
|
Параметры_.Вставить("caption" , Текст);
|
||||||
Параметры_.Вставить("reply_markup", Клавиатура);
|
Параметры_.Вставить("reply_markup", Клавиатура);
|
||||||
|
|
||||||
ДобавитьИдентификаторЧата(IDЧата, Параметры_);
|
ДобавитьИдентификаторЧата(IDЧата, Параметры_);
|
||||||
СформироватьМассивМедиа(СоответствиеФайлов, Текст, СтруктураФайлов, Медиа);
|
СформироватьМассивМедиа(СоответствиеФайлов, Текст, СтруктураФайлов, Медиа);
|
||||||
|
|
||||||
Параметры_.Вставить("media", Медиа);
|
Параметры_.Вставить("media", Медиа);
|
||||||
|
|
||||||
Ответ = OPI_Инструменты.PostMultipart(URL, Параметры_, СтруктураФайлов, "mixed");
|
Ответ = OPI_Инструменты.PostMultipart(URL, Параметры_, СтруктураФайлов, "mixed");
|
||||||
|
|
||||||
Возврат Ответ;
|
Возврат Ответ;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
@@ -272,20 +272,20 @@
|
|||||||
// ДвоичныеДанные, Неопределено, Произвольный - Ответ сервера Telegram
|
// ДвоичныеДанные, Неопределено, Произвольный - Ответ сервера Telegram
|
||||||
Функция ОтправитьМестоположение(Знач Токен, Знач IDЧата, Знач Широта, Знач Долгота, Знач Клавиатура = "") Экспорт
|
Функция ОтправитьМестоположение(Знач Токен, Знач IDЧата, Знач Широта, Знач Долгота, Знач Клавиатура = "") Экспорт
|
||||||
|
|
||||||
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
|
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
|
||||||
URL = "api.telegram.org/bot" + Токен + "/sendLocation";
|
URL = "api.telegram.org/bot" + Токен + "/sendLocation";
|
||||||
|
|
||||||
Параметры_ = Новый Структура;
|
Параметры_ = Новый Структура;
|
||||||
Параметры_.Вставить("parse_mode" , "Markdown");
|
Параметры_.Вставить("parse_mode" , "Markdown");
|
||||||
Параметры_.Вставить("latitude" , OPI_Инструменты.ЧислоВСтроку(Широта));
|
Параметры_.Вставить("latitude" , OPI_Инструменты.ЧислоВСтроку(Широта));
|
||||||
Параметры_.Вставить("longitude" , OPI_Инструменты.ЧислоВСтроку(Долгота));
|
Параметры_.Вставить("longitude" , OPI_Инструменты.ЧислоВСтроку(Долгота));
|
||||||
Параметры_.Вставить("reply_markup", Клавиатура);
|
Параметры_.Вставить("reply_markup", Клавиатура);
|
||||||
|
|
||||||
ДобавитьИдентификаторЧата(IDЧата, Параметры_);
|
ДобавитьИдентификаторЧата(IDЧата, Параметры_);
|
||||||
|
|
||||||
Ответ = OPI_Инструменты.Get(URL, Параметры_);
|
Ответ = OPI_Инструменты.Get(URL, Параметры_);
|
||||||
|
|
||||||
Возврат Ответ;
|
Возврат Ответ;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
@@ -303,21 +303,21 @@
|
|||||||
// ДвоичныеДанные, Неопределено, Произвольный - Ответ сервера Telegram
|
// ДвоичныеДанные, Неопределено, Произвольный - Ответ сервера Telegram
|
||||||
Функция ОтправитьКонтакт(Знач Токен, Знач IDЧата, Знач Имя, Знач Фамилия, Знач Телефон, Знач Клавиатура = "") Экспорт
|
Функция ОтправитьКонтакт(Знач Токен, Знач IDЧата, Знач Имя, Знач Фамилия, Знач Телефон, Знач Клавиатура = "") Экспорт
|
||||||
|
|
||||||
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
|
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
|
||||||
URL = "api.telegram.org/bot" + Токен + "/sendContact";
|
URL = "api.telegram.org/bot" + Токен + "/sendContact";
|
||||||
|
|
||||||
Параметры_ = Новый Структура;
|
Параметры_ = Новый Структура;
|
||||||
Параметры_.Вставить("parse_mode" , "Markdown");
|
Параметры_.Вставить("parse_mode" , "Markdown");
|
||||||
Параметры_.Вставить("first_name" , Имя);
|
Параметры_.Вставить("first_name" , Имя);
|
||||||
Параметры_.Вставить("last_name" , Фамилия);
|
Параметры_.Вставить("last_name" , Фамилия);
|
||||||
Параметры_.Вставить("phone_number", Строка(Телефон));
|
Параметры_.Вставить("phone_number", Строка(Телефон));
|
||||||
Параметры_.Вставить("reply_markup", Клавиатура);
|
Параметры_.Вставить("reply_markup", Клавиатура);
|
||||||
|
|
||||||
ДобавитьИдентификаторЧата(IDЧата, Параметры_);
|
ДобавитьИдентификаторЧата(IDЧата, Параметры_);
|
||||||
|
|
||||||
Ответ = OPI_Инструменты.Get(URL, Параметры_);
|
Ответ = OPI_Инструменты.Get(URL, Параметры_);
|
||||||
|
|
||||||
Возврат Ответ;
|
Возврат Ответ;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
@@ -334,24 +334,24 @@
|
|||||||
// ДвоичныеДанные, Неопределено, Произвольный - Ответ сервера Telegram
|
// ДвоичныеДанные, Неопределено, Произвольный - Ответ сервера Telegram
|
||||||
Функция ОтправитьОпрос(Знач Токен, Знач IDЧата, Знач Вопрос, Знач МассивОтветов, Знач Анонимный = Истина) Экспорт
|
Функция ОтправитьОпрос(Знач Токен, Знач IDЧата, Знач Вопрос, Знач МассивОтветов, Знач Анонимный = Истина) Экспорт
|
||||||
|
|
||||||
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
|
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
|
||||||
Ответы = OPI_Инструменты.JSONСтрокой(МассивОтветов);
|
Ответы = OPI_Инструменты.JSONСтрокой(МассивОтветов);
|
||||||
URL = "api.telegram.org/bot" + Токен + "/sendPoll";
|
URL = "api.telegram.org/bot" + Токен + "/sendPoll";
|
||||||
|
|
||||||
Параметры_ = Новый Структура;
|
Параметры_ = Новый Структура;
|
||||||
Параметры_.Вставить("parse_mode", "Markdown");
|
Параметры_.Вставить("parse_mode", "Markdown");
|
||||||
Параметры_.Вставить("question" , Вопрос);
|
Параметры_.Вставить("question" , Вопрос);
|
||||||
Параметры_.Вставить("options" , Ответы);
|
Параметры_.Вставить("options" , Ответы);
|
||||||
|
|
||||||
Если Не Анонимный Тогда
|
Если Не Анонимный Тогда
|
||||||
Параметры_.Вставить("is_anonymous", Ложь);
|
Параметры_.Вставить("is_anonymous", Ложь);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ДобавитьИдентификаторЧата(IDЧата, Параметры_);
|
ДобавитьИдентификаторЧата(IDЧата, Параметры_);
|
||||||
|
|
||||||
Ответ = OPI_Инструменты.Get(URL, Параметры_);
|
Ответ = OPI_Инструменты.Get(URL, Параметры_);
|
||||||
|
|
||||||
Возврат Ответ;
|
Возврат Ответ;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
@@ -368,19 +368,19 @@
|
|||||||
Функция ПереслатьСообщение(Знач Токен, Знач IDОригинала, Знач ОткудаID, Знач КудаID) Экспорт
|
Функция ПереслатьСообщение(Знач Токен, Знач IDОригинала, Знач ОткудаID, Знач КудаID) Экспорт
|
||||||
|
|
||||||
URL = "api.telegram.org/bot" + Токен + "/forwardMessage";
|
URL = "api.telegram.org/bot" + Токен + "/forwardMessage";
|
||||||
IDОригинала = OPI_Инструменты.ЧислоВСтроку(IDОригинала);
|
IDОригинала = OPI_Инструменты.ЧислоВСтроку(IDОригинала);
|
||||||
ОткудаID = OPI_Инструменты.ЧислоВСтроку(ОткудаID);
|
ОткудаID = OPI_Инструменты.ЧислоВСтроку(ОткудаID);
|
||||||
КудаID = OPI_Инструменты.ЧислоВСтроку(КудаID);
|
КудаID = OPI_Инструменты.ЧислоВСтроку(КудаID);
|
||||||
|
|
||||||
Параметры_ = Новый Структура;
|
Параметры_ = Новый Структура;
|
||||||
Параметры_.Вставить("from_chat_id", ОткудаID);
|
Параметры_.Вставить("from_chat_id", ОткудаID);
|
||||||
Параметры_.Вставить("message_id" , IDОригинала);
|
Параметры_.Вставить("message_id" , IDОригинала);
|
||||||
|
|
||||||
ДобавитьИдентификаторЧата(КудаID, Параметры_);
|
ДобавитьИдентификаторЧата(КудаID, Параметры_);
|
||||||
|
|
||||||
Ответ = OPI_Инструменты.Get(URL, Параметры_);
|
Ответ = OPI_Инструменты.Get(URL, Параметры_);
|
||||||
|
|
||||||
Возврат Ответ;
|
Возврат Ответ;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
@@ -400,17 +400,17 @@
|
|||||||
Функция Бан(Знач Токен, Знач IDЧата, Знач IDПользователя) Экспорт
|
Функция Бан(Знач Токен, Знач IDЧата, Знач IDПользователя) Экспорт
|
||||||
|
|
||||||
URL = "api.telegram.org/bot" + Токен + "/banChatMember";
|
URL = "api.telegram.org/bot" + Токен + "/banChatMember";
|
||||||
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
|
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
|
||||||
IDПользователя = OPI_Инструменты.ЧислоВСтроку(IDПользователя);
|
IDПользователя = OPI_Инструменты.ЧислоВСтроку(IDПользователя);
|
||||||
|
|
||||||
Параметры_ = Новый Структура;
|
Параметры_ = Новый Структура;
|
||||||
Параметры_.Вставить("parse_mode", "Markdown");
|
Параметры_.Вставить("parse_mode", "Markdown");
|
||||||
Параметры_.Вставить("chat_id" , IDЧата);
|
Параметры_.Вставить("chat_id" , IDЧата);
|
||||||
Параметры_.Вставить("user_id" , IDПользователя);
|
Параметры_.Вставить("user_id" , IDПользователя);
|
||||||
|
|
||||||
Ответ = OPI_Инструменты.Get(URL, Параметры_);
|
Ответ = OPI_Инструменты.Get(URL, Параметры_);
|
||||||
|
|
||||||
Возврат Ответ;
|
Возврат Ответ;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
@@ -426,18 +426,18 @@
|
|||||||
Функция Разбан(Знач Токен, Знач IDЧата, Знач IDПользователя) Экспорт
|
Функция Разбан(Знач Токен, Знач IDЧата, Знач IDПользователя) Экспорт
|
||||||
|
|
||||||
URL = "api.telegram.org/bot" + Токен + "/unbanChatMember";
|
URL = "api.telegram.org/bot" + Токен + "/unbanChatMember";
|
||||||
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
|
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
|
||||||
IDПользователя = OPI_Инструменты.ЧислоВСтроку(IDПользователя);
|
IDПользователя = OPI_Инструменты.ЧислоВСтроку(IDПользователя);
|
||||||
|
|
||||||
Параметры_ = Новый Структура;
|
Параметры_ = Новый Структура;
|
||||||
Параметры_.Вставить("parse_mode" , "Markdown");
|
Параметры_.Вставить("parse_mode" , "Markdown");
|
||||||
Параметры_.Вставить("chat_id" , IDЧата);
|
Параметры_.Вставить("chat_id" , IDЧата);
|
||||||
Параметры_.Вставить("user_id" , IDПользователя);
|
Параметры_.Вставить("user_id" , IDПользователя);
|
||||||
Параметры_.Вставить("only_if_banned", Ложь);
|
Параметры_.Вставить("only_if_banned", Ложь);
|
||||||
|
|
||||||
Ответ = OPI_Инструменты.Get(URL, Параметры_);
|
Ответ = OPI_Инструменты.Get(URL, Параметры_);
|
||||||
|
|
||||||
Возврат Ответ;
|
Возврат Ответ;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
@@ -459,23 +459,23 @@
|
|||||||
, Знач ЛимитПользователей = 0) Экспорт
|
, Знач ЛимитПользователей = 0) Экспорт
|
||||||
|
|
||||||
URL = "api.telegram.org/bot" + Токен + "/createChatInviteLink";
|
URL = "api.telegram.org/bot" + Токен + "/createChatInviteLink";
|
||||||
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
|
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
|
||||||
|
|
||||||
Параметры_ = Новый Структура;
|
Параметры_ = Новый Структура;
|
||||||
Параметры_.Вставить("parse_mode", "Markdown");
|
Параметры_.Вставить("parse_mode", "Markdown");
|
||||||
Параметры_.Вставить("chat_id" , IDЧата);
|
Параметры_.Вставить("chat_id" , IDЧата);
|
||||||
Параметры_.Вставить("name" , Заголовок);
|
Параметры_.Вставить("name" , Заголовок);
|
||||||
|
|
||||||
Если ЗначениеЗаполнено(ДатаИстечения) Тогда
|
Если ЗначениеЗаполнено(ДатаИстечения) Тогда
|
||||||
ДатаИстечения = OPI_Инструменты.UNIXTime(ДатаИстечения);
|
ДатаИстечения = OPI_Инструменты.UNIXTime(ДатаИстечения);
|
||||||
Параметры_.Вставить("expire_date", ДатаИстечения);
|
Параметры_.Вставить("expire_date", ДатаИстечения);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Параметры_.Вставить("member_limit", ЛимитПользователей);
|
Параметры_.Вставить("member_limit", ЛимитПользователей);
|
||||||
|
|
||||||
Ответ = OPI_Инструменты.Get(URL, Параметры_);
|
Ответ = OPI_Инструменты.Get(URL, Параметры_);
|
||||||
|
|
||||||
Возврат Ответ;
|
Возврат Ответ;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
@@ -491,18 +491,18 @@
|
|||||||
Функция ЗакрепитьСообщение(Знач Токен, Знач IDЧата, Знач IDСообщения) Экспорт
|
Функция ЗакрепитьСообщение(Знач Токен, Знач IDЧата, Знач IDСообщения) Экспорт
|
||||||
|
|
||||||
URL = "api.telegram.org/bot" + Токен + "/pinChatMessage";
|
URL = "api.telegram.org/bot" + Токен + "/pinChatMessage";
|
||||||
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
|
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
|
||||||
IDСообщения = OPI_Инструменты.ЧислоВСтроку(IDСообщения);
|
IDСообщения = OPI_Инструменты.ЧислоВСтроку(IDСообщения);
|
||||||
|
|
||||||
Параметры_ = Новый Структура;
|
Параметры_ = Новый Структура;
|
||||||
Параметры_.Вставить("parse_mode" , "Markdown");
|
Параметры_.Вставить("parse_mode" , "Markdown");
|
||||||
Параметры_.Вставить("chat_id" , IDЧата);
|
Параметры_.Вставить("chat_id" , IDЧата);
|
||||||
Параметры_.Вставить("message_id" , IDСообщения);
|
Параметры_.Вставить("message_id" , IDСообщения);
|
||||||
Параметры_.Вставить("disable_notification", Истина);
|
Параметры_.Вставить("disable_notification", Истина);
|
||||||
|
|
||||||
Ответ = OPI_Инструменты.Get(URL, Параметры_);
|
Ответ = OPI_Инструменты.Get(URL, Параметры_);
|
||||||
|
|
||||||
Возврат Ответ;
|
Возврат Ответ;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
@@ -518,17 +518,17 @@
|
|||||||
Функция ОткрепитьСообщение(Знач Токен, Знач IDЧата, Знач IDСообщения) Экспорт
|
Функция ОткрепитьСообщение(Знач Токен, Знач IDЧата, Знач IDСообщения) Экспорт
|
||||||
|
|
||||||
URL = "api.telegram.org/bot" + Токен + "/unpinChatMessage";
|
URL = "api.telegram.org/bot" + Токен + "/unpinChatMessage";
|
||||||
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
|
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
|
||||||
IDСообщения = OPI_Инструменты.ЧислоВСтроку(IDСообщения);
|
IDСообщения = OPI_Инструменты.ЧислоВСтроку(IDСообщения);
|
||||||
|
|
||||||
Параметры_ = Новый Структура;
|
Параметры_ = Новый Структура;
|
||||||
Параметры_.Вставить("parse_mode", "Markdown");
|
Параметры_.Вставить("parse_mode", "Markdown");
|
||||||
Параметры_.Вставить("chat_id" , IDЧата);
|
Параметры_.Вставить("chat_id" , IDЧата);
|
||||||
Параметры_.Вставить("message_id", IDСообщения);
|
Параметры_.Вставить("message_id", IDСообщения);
|
||||||
|
|
||||||
Ответ = OPI_Инструменты.Get(URL, Параметры_);
|
Ответ = OPI_Инструменты.Get(URL, Параметры_);
|
||||||
|
|
||||||
Возврат Ответ;
|
Возврат Ответ;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
@@ -543,15 +543,15 @@
|
|||||||
Функция ПолучитьЧислоУчастников(Знач Токен, Знач IDЧата) Экспорт
|
Функция ПолучитьЧислоУчастников(Знач Токен, Знач IDЧата) Экспорт
|
||||||
|
|
||||||
URL = "api.telegram.org/bot" + Токен + "/getChatMemberCount";
|
URL = "api.telegram.org/bot" + Токен + "/getChatMemberCount";
|
||||||
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
|
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
|
||||||
|
|
||||||
Параметры_ = Новый Структура;
|
Параметры_ = Новый Структура;
|
||||||
Параметры_.Вставить("parse_mode", "Markdown");
|
Параметры_.Вставить("parse_mode", "Markdown");
|
||||||
Параметры_.Вставить("chat_id" , IDЧата);
|
Параметры_.Вставить("chat_id" , IDЧата);
|
||||||
|
|
||||||
Ответ = OPI_Инструменты.Get(URL, Параметры_);
|
Ответ = OPI_Инструменты.Get(URL, Параметры_);
|
||||||
|
|
||||||
Возврат Ответ;
|
Возврат Ответ;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
@@ -569,55 +569,55 @@
|
|||||||
// Соответствие из Строка - Обработанные данные с признаком достоверности
|
// Соответствие из Строка - Обработанные данные с признаком достоверности
|
||||||
Функция ОбработатьДанныеTMA(Знач СтрокаДанных, Знач Токен) Экспорт
|
Функция ОбработатьДанныеTMA(Знач СтрокаДанных, Знач Токен) Экспорт
|
||||||
|
|
||||||
СтрокаДанных = РаскодироватьСтроку(СтрокаДанных, СпособКодированияСтроки.КодировкаURL);
|
СтрокаДанных = РаскодироватьСтроку(СтрокаДанных, СпособКодированияСтроки.КодировкаURL);
|
||||||
СтруктураДанных = OPI_Инструменты.ПараметрыЗапросаВСоответствие(СтрокаДанных);
|
СтруктураДанных = OPI_Инструменты.ПараметрыЗапросаВСоответствие(СтрокаДанных);
|
||||||
Ключ = "WebAppData";
|
Ключ = "WebAppData";
|
||||||
Хэш = "";
|
Хэш = "";
|
||||||
|
|
||||||
Результат = OPI_Криптография.HMACSHA256(ПолучитьДвоичныеДанныеИзСтроки(Ключ), ПолучитьДвоичныеДанныеИзСтроки(Токен));
|
Результат = OPI_Криптография.HMACSHA256(ПолучитьДвоичныеДанныеИзСтроки(Ключ), ПолучитьДвоичныеДанныеИзСтроки(Токен));
|
||||||
|
|
||||||
ТЗнач = Новый ТаблицаЗначений;
|
ТЗнач = Новый ТаблицаЗначений;
|
||||||
ТЗнач.Колонки.Добавить("Ключ");
|
ТЗнач.Колонки.Добавить("Ключ");
|
||||||
ТЗнач.Колонки.Добавить("Значение");
|
ТЗнач.Колонки.Добавить("Значение");
|
||||||
|
|
||||||
Для Каждого Данные Из СтруктураДанных Цикл
|
Для Каждого Данные Из СтруктураДанных Цикл
|
||||||
|
|
||||||
НоваяСтрока = ТЗнач.Добавить();
|
НоваяСтрока = ТЗнач.Добавить();
|
||||||
НоваяСтрока.Ключ = Данные.Ключ;
|
НоваяСтрока.Ключ = Данные.Ключ;
|
||||||
НоваяСтрока.Значение = Данные.Значение;
|
НоваяСтрока.Значение = Данные.Значение;
|
||||||
|
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
ТЗнач.Сортировать("Ключ");
|
ТЗнач.Сортировать("Ключ");
|
||||||
|
|
||||||
СоответствиеВозврата = Новый Соответствие;
|
СоответствиеВозврата = Новый Соответствие;
|
||||||
DCS = "";
|
DCS = "";
|
||||||
|
|
||||||
Для Каждого СтрокаТЗ Из ТЗнач Цикл
|
Для Каждого СтрокаТЗ Из ТЗнач Цикл
|
||||||
|
|
||||||
Если СтрокаТЗ.Ключ <> "hash" Тогда
|
Если СтрокаТЗ.Ключ <> "hash" Тогда
|
||||||
DCS = DCS + СтрокаТЗ.Ключ + "=" + СтрокаТЗ.Значение + Символы.ПС;
|
DCS = DCS + СтрокаТЗ.Ключ + "=" + СтрокаТЗ.Значение + Символы.ПС;
|
||||||
СоответствиеВозврата.Вставить(СтрокаТЗ.Ключ, СтрокаТЗ.Значение);
|
СоответствиеВозврата.Вставить(СтрокаТЗ.Ключ, СтрокаТЗ.Значение);
|
||||||
Иначе
|
Иначе
|
||||||
Хэш = СтрокаТЗ.Значение;
|
Хэш = СтрокаТЗ.Значение;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
DCS = Лев(DCS, СтрДлина(DCS) - 1);
|
DCS = Лев(DCS, СтрДлина(DCS) - 1);
|
||||||
Подпись = OPI_Криптография.HMACSHA256(Результат, ПолучитьДвоичныеДанныеИзСтроки(DCS));
|
Подпись = OPI_Криптография.HMACSHA256(Результат, ПолучитьДвоичныеДанныеИзСтроки(DCS));
|
||||||
|
|
||||||
Финал = ПолучитьHexСтрокуИзДвоичныхДанных(Подпись);
|
Финал = ПолучитьHexСтрокуИзДвоичныхДанных(Подпись);
|
||||||
|
|
||||||
Если Финал = вРег(Хэш) Тогда
|
Если Финал = вРег(Хэш) Тогда
|
||||||
Ответ = Истина;
|
Ответ = Истина;
|
||||||
Иначе
|
Иначе
|
||||||
Ответ = Ложь;
|
Ответ = Ложь;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
СоответствиеВозврата.Вставить("passed", Ответ);
|
СоответствиеВозврата.Вставить("passed", Ответ);
|
||||||
|
|
||||||
Возврат СоответствиеВозврата;
|
Возврат СоответствиеВозврата;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
@@ -815,25 +815,25 @@
|
|||||||
, Знач ПодСообщением = Ложь
|
, Знач ПодСообщением = Ложь
|
||||||
, Знач ОднаПодОдной = Истина) Экспорт
|
, Знач ОднаПодОдной = Истина) Экспорт
|
||||||
|
|
||||||
Если ОднаПодОдной Тогда
|
Если ОднаПодОдной Тогда
|
||||||
Строки = СоздатьВысокуюКлавиатуру(МассивКнопок);
|
Строки = СоздатьВысокуюКлавиатуру(МассивКнопок);
|
||||||
Иначе
|
Иначе
|
||||||
Строки = СоздатьДлиннуюКлваиатуру(МассивКнопок);
|
Строки = СоздатьДлиннуюКлваиатуру(МассивКнопок);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если ПодСообщением Тогда
|
Если ПодСообщением Тогда
|
||||||
СтруктураПараметра = Новый Структура("inline_keyboard,rows", Строки, 1);
|
СтруктураПараметра = Новый Структура("inline_keyboard,rows", Строки, 1);
|
||||||
Иначе
|
Иначе
|
||||||
СтруктураПараметра = Новый Структура("keyboard,resize_keyboard", Строки, Истина);
|
СтруктураПараметра = Новый Структура("keyboard,resize_keyboard", Строки, Истина);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ЗаписьJSON = Новый ЗаписьJSON;
|
ЗаписьJSON = Новый ЗаписьJSON;
|
||||||
ПЗJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Нет, , , ЭкранированиеСимволовJSON.СимволыВнеASCII);
|
ПЗJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Нет, , , ЭкранированиеСимволовJSON.СимволыВнеASCII);
|
||||||
ЗаписьJSON.УстановитьСтроку(ПЗJSON);
|
ЗаписьJSON.УстановитьСтроку(ПЗJSON);
|
||||||
|
|
||||||
ЗаписатьJSON(ЗаписьJSON, СтруктураПараметра);
|
ЗаписатьJSON(ЗаписьJSON, СтруктураПараметра);
|
||||||
|
|
||||||
Возврат ЗаписьJSON.Закрыть();
|
Возврат ЗаписьJSON.Закрыть();
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
@@ -846,34 +846,34 @@
|
|||||||
Функция ОтправитьФайл(Знач Токен, Знач IDЧата, Знач Текст, Знач Файл, Знач Вид, Знач Клавиатура)
|
Функция ОтправитьФайл(Знач Токен, Знач IDЧата, Знач Текст, Знач Файл, Знач Вид, Знач Клавиатура)
|
||||||
|
|
||||||
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
|
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
|
||||||
Расширение = "";
|
Расширение = "";
|
||||||
Метод = "";
|
Метод = "";
|
||||||
|
|
||||||
ОпределитьМетодОтправки(Вид, Метод, Расширение);
|
ОпределитьМетодОтправки(Вид, Метод, Расширение);
|
||||||
OPI_Инструменты.ЗаменитьСпецсимволы(Текст);
|
OPI_Инструменты.ЗаменитьСпецсимволы(Текст);
|
||||||
|
|
||||||
Если Не ТипЗнч(Файл) = Тип("ДвоичныеДанные") Тогда
|
Если Не ТипЗнч(Файл) = Тип("ДвоичныеДанные") Тогда
|
||||||
ТекущийФайл = Новый Файл(Файл);
|
ТекущийФайл = Новый Файл(Файл);
|
||||||
Расширение = ?(Вид = "document" Или Вид = "animation", ТекущийФайл.Расширение, "");
|
Расширение = ?(Вид = "document" Или Вид = "animation", ТекущийФайл.Расширение, "");
|
||||||
Файл = OPI_Инструменты.ПолучитьДвоичныеДанные(Файл);
|
Файл = OPI_Инструменты.ПолучитьДвоичныеДанные(Файл);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Расширение = СтрЗаменить(Расширение, ".", "___");
|
Расширение = СтрЗаменить(Расширение, ".", "___");
|
||||||
|
|
||||||
Параметры_ = Новый Структура;
|
Параметры_ = Новый Структура;
|
||||||
Параметры_.Вставить("parse_mode" , "Markdown");
|
Параметры_.Вставить("parse_mode" , "Markdown");
|
||||||
Параметры_.Вставить("caption" , Текст);
|
Параметры_.Вставить("caption" , Текст);
|
||||||
Параметры_.Вставить("reply_markup", Клавиатура);
|
Параметры_.Вставить("reply_markup", Клавиатура);
|
||||||
|
|
||||||
ДобавитьИдентификаторЧата(IDЧата, Параметры_);
|
ДобавитьИдентификаторЧата(IDЧата, Параметры_);
|
||||||
|
|
||||||
СтруктураФайлов = Новый Структура;
|
СтруктураФайлов = Новый Структура;
|
||||||
СтруктураФайлов.Вставить(Вид + Расширение, Файл);
|
СтруктураФайлов.Вставить(Вид + Расширение, Файл);
|
||||||
|
|
||||||
URL = "api.telegram.org/bot" + Токен + Метод;
|
URL = "api.telegram.org/bot" + Токен + Метод;
|
||||||
Ответ = OPI_Инструменты.PostMultipart(URL, Параметры_, СтруктураФайлов, "mixed");
|
Ответ = OPI_Инструменты.PostMultipart(URL, Параметры_, СтруктураФайлов, "mixed");
|
||||||
|
|
||||||
Возврат Ответ;
|
Возврат Ответ;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
@@ -1003,7 +1003,7 @@
|
|||||||
|
|
||||||
Процедура СформироватьМассивМедиа(Знач СоответствиеФайлов, Знач Текст, СтруктураФайлов, Медиа)
|
Процедура СформироватьМассивМедиа(Знач СоответствиеФайлов, Знач Текст, СтруктураФайлов, Медиа)
|
||||||
|
|
||||||
Счетчик = 0;
|
Счетчик = 0;
|
||||||
|
|
||||||
Для Каждого ТекущийФайл Из СоответствиеФайлов Цикл
|
Для Каждого ТекущийФайл Из СоответствиеФайлов Цикл
|
||||||
|
|
||||||
@@ -1069,7 +1069,7 @@
|
|||||||
Метод = "/sendDocument";
|
Метод = "/sendDocument";
|
||||||
ИначеЕсли Вид = "animation" Тогда
|
ИначеЕсли Вид = "animation" Тогда
|
||||||
Метод = "/sendAnimation";
|
Метод = "/sendAnimation";
|
||||||
Расширение = ".gif";
|
Расширение = ".gif";
|
||||||
Иначе
|
Иначе
|
||||||
ВызватьИсключение "Некорректный вид отправки";
|
ВызватьИсключение "Некорректный вид отправки";
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
@@ -337,7 +337,7 @@
|
|||||||
СоответствиеMIME.Вставить("tweet_video", "video/mp4");
|
СоответствиеMIME.Вставить("tweet_video", "video/mp4");
|
||||||
СоответствиеMIME.Вставить("tweet_gif" , "image/gif");
|
СоответствиеMIME.Вставить("tweet_gif" , "image/gif");
|
||||||
|
|
||||||
Файл = OPI_Инструменты.ПолучитьДвоичныеДанные(Файл);
|
Файл = OPI_Инструменты.ПолучитьДвоичныеДанные(Файл);
|
||||||
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
|
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
|
||||||
URL = "https://upload.twitter.com/1.1/media/upload.json";
|
URL = "https://upload.twitter.com/1.1/media/upload.json";
|
||||||
Размер = Файл.Размер();
|
Размер = Файл.Размер();
|
||||||
|
@@ -160,10 +160,10 @@
|
|||||||
Если Не Картинка = "" Тогда
|
Если Не Картинка = "" Тогда
|
||||||
|
|
||||||
Если ТипЗнч(Картинка) = Тип("Строка") Тогда
|
Если ТипЗнч(Картинка) = Тип("Строка") Тогда
|
||||||
Путь = Картинка;
|
Путь = Картинка;
|
||||||
Картинка = OPI_Инструменты.ПолучитьДвоичныеДанные(Картинка);
|
Картинка = OPI_Инструменты.ПолучитьДвоичныеДанные(Картинка);
|
||||||
Иначе
|
Иначе
|
||||||
Путь = ("image.jpeg");
|
Путь = ("image.jpeg");
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Файлы = Новый Соответствие;
|
Файлы = Новый Соответствие;
|
||||||
@@ -171,16 +171,16 @@
|
|||||||
|
|
||||||
Ответ = OPI_Инструменты.PostMultipart(URL, Параметры_, Файлы);
|
Ответ = OPI_Инструменты.PostMultipart(URL, Параметры_, Файлы);
|
||||||
|
|
||||||
Параметры_.Вставить(Hash , Ответ[Hash]);
|
Параметры_.Вставить(Hash , Ответ[Hash]);
|
||||||
Параметры_.Вставить(Photo , Ответ[Photo]);
|
Параметры_.Вставить(Photo, Ответ[Photo]);
|
||||||
|
|
||||||
Ответ = OPI_Инструменты.Get("api.vk.com/method/polls.savePhoto", Параметры_);
|
Ответ = OPI_Инструменты.Get("api.vk.com/method/polls.savePhoto", Параметры_);
|
||||||
IDФото = Ответ.Получить(Response)["id"];
|
IDФото = Ответ.Получить(Response)["id"];
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Параметры_.Вставить("is_anonymous" , 1);
|
Параметры_.Вставить("is_anonymous", 1);
|
||||||
Параметры_.Вставить("is_multiple" , 0);
|
Параметры_.Вставить("is_multiple" , 0);
|
||||||
|
|
||||||
Ответы = "[";
|
Ответы = "[";
|
||||||
Первый = Истина;
|
Первый = Истина;
|
||||||
@@ -199,12 +199,12 @@
|
|||||||
|
|
||||||
Ответы = Ответы + "]";
|
Ответы = Ответы + "]";
|
||||||
|
|
||||||
Параметры_.Вставить("add_answers" , Ответы);
|
Параметры_.Вставить("add_answers", Ответы);
|
||||||
Параметры_.Вставить("photo_id" , OPI_Инструменты.ЧислоВСтроку(IDФото));
|
Параметры_.Вставить("photo_id" , OPI_Инструменты.ЧислоВСтроку(IDФото));
|
||||||
Параметры_.Вставить("question" , Вопрос);
|
Параметры_.Вставить("question" , Вопрос);
|
||||||
|
|
||||||
Опрос = OPI_Инструменты.Get("api.vk.com/method/polls.create", Параметры_);
|
Опрос = OPI_Инструменты.Get("api.vk.com/method/polls.create", Параметры_);
|
||||||
ОпросСоответствие = Опрос.Получить(Response);
|
ОпросСоответствие = Опрос.Получить(Response);
|
||||||
|
|
||||||
ОпросID = "poll"
|
ОпросID = "poll"
|
||||||
+ OPI_Инструменты.ЧислоВСтроку(ОпросСоответствие.Получить("owner_id"))
|
+ OPI_Инструменты.ЧислоВСтроку(ОпросСоответствие.Получить("owner_id"))
|
||||||
@@ -230,13 +230,13 @@
|
|||||||
// ДвоичныеДанные, Неопределено, Произвольный - Ответ сервера ВК
|
// ДвоичныеДанные, Неопределено, Произвольный - Ответ сервера ВК
|
||||||
Функция СоздатьАльбом(Знач Наименование, Знач Описание = "", Знач Параметры = "") Экспорт
|
Функция СоздатьАльбом(Знач Наименование, Знач Описание = "", Знач Параметры = "") Экспорт
|
||||||
|
|
||||||
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
|
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
|
||||||
|
|
||||||
Параметры_.Вставить("title" , Наименование);
|
Параметры_.Вставить("title" , Наименование);
|
||||||
Параметры_.Вставить("description" , Описание);
|
Параметры_.Вставить("description" , Описание);
|
||||||
Параметры_.Вставить("upload_by_admins_only", 1);
|
Параметры_.Вставить("upload_by_admins_only", 1);
|
||||||
|
|
||||||
Ответ = OPI_Инструменты.Get("api.vk.com/method/photos.createAlbum", Параметры_);
|
Ответ = OPI_Инструменты.Get("api.vk.com/method/photos.createAlbum", Параметры_);
|
||||||
|
|
||||||
Возврат Ответ;
|
Возврат Ответ;
|
||||||
|
|
||||||
@@ -273,9 +273,9 @@
|
|||||||
Функция СоздатьИсторию(Знач Картинка, Знач URL = "", Знач Параметры = "") Экспорт
|
Функция СоздатьИсторию(Знач Картинка, Знач URL = "", Знач Параметры = "") Экспорт
|
||||||
|
|
||||||
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
|
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
|
||||||
Параметры_.Вставить("link_text" , "more");
|
Параметры_.Вставить("link_text" , "more");
|
||||||
Параметры_.Вставить("link_url" , URL);
|
Параметры_.Вставить("link_url" , URL);
|
||||||
Параметры_.Вставить("add_to_news" , "1");
|
Параметры_.Вставить("add_to_news", "1");
|
||||||
|
|
||||||
Ответ = ЗагрузитьФотоНаСервер(Картинка, Параметры_, "История");
|
Ответ = ЗагрузитьФотоНаСервер(Картинка, Параметры_, "История");
|
||||||
Возврат Ответ;
|
Возврат Ответ;
|
||||||
@@ -296,8 +296,8 @@
|
|||||||
|
|
||||||
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
|
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
|
||||||
|
|
||||||
Параметры_.Вставить("album_id" , OPI_Инструменты.ЧислоВСтроку(IDАльбома));
|
Параметры_.Вставить("album_id", OPI_Инструменты.ЧислоВСтроку(IDАльбома));
|
||||||
Параметры_.Вставить("caption" , Описание);
|
Параметры_.Вставить("caption" , Описание);
|
||||||
|
|
||||||
Возврат ЗагрузитьФотоНаСервер(Картинка, Параметры_, "Альбом");
|
Возврат ЗагрузитьФотоНаСервер(Картинка, Параметры_, "Альбом");
|
||||||
|
|
||||||
@@ -338,8 +338,8 @@
|
|||||||
Функция СоздатьОбсуждение(Знач Наименование, Знач ТекстПервогоСообщения, Знач Параметры = "") Экспорт
|
Функция СоздатьОбсуждение(Знач Наименование, Знач ТекстПервогоСообщения, Знач Параметры = "") Экспорт
|
||||||
|
|
||||||
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
|
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
|
||||||
Параметры_.Вставить("title" , Наименование);
|
Параметры_.Вставить("title", Наименование);
|
||||||
Параметры_.Вставить("text" , ТекстПервогоСообщения);
|
Параметры_.Вставить("text" , ТекстПервогоСообщения);
|
||||||
|
|
||||||
Ответ = OPI_Инструменты.Get("api.vk.com/method/board.addTopic", Параметры_);
|
Ответ = OPI_Инструменты.Get("api.vk.com/method/board.addTopic", Параметры_);
|
||||||
|
|
||||||
@@ -399,8 +399,8 @@
|
|||||||
Функция НаписатьВОбсуждение(Знач IDОбсуждения, Знач Текст, Знач Параметры = "") Экспорт
|
Функция НаписатьВОбсуждение(Знач IDОбсуждения, Знач Текст, Знач Параметры = "") Экспорт
|
||||||
|
|
||||||
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
|
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
|
||||||
Параметры_.Вставить("topic_id" , OPI_Инструменты.ЧислоВСтроку(IDОбсуждения));
|
Параметры_.Вставить("topic_id", OPI_Инструменты.ЧислоВСтроку(IDОбсуждения));
|
||||||
Параметры_.Вставить("message" , Текст);
|
Параметры_.Вставить("message" , Текст);
|
||||||
|
|
||||||
Ответ = OPI_Инструменты.Get("api.vk.com/method/board.createComment", Параметры_);
|
Ответ = OPI_Инструменты.Get("api.vk.com/method/board.createComment", Параметры_);
|
||||||
|
|
||||||
@@ -577,14 +577,14 @@
|
|||||||
|
|
||||||
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
|
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
|
||||||
|
|
||||||
ДатаНачала = Формат(ДатаНачала - Дата(1970, 1, 1, 1, 0, 0), "ЧГ=0");
|
ДатаНачала = Формат(ДатаНачала - Дата(1970, 1, 1, 1, 0, 0), "ЧГ=0");
|
||||||
ДатаОкончания = Формат(ДатаОкончания - дата(1970, 1, 1, 1, 0, 0), "ЧГ=0");
|
ДатаОкончания = Формат(ДатаОкончания - дата(1970, 1, 1, 1, 0, 0), "ЧГ=0");
|
||||||
|
|
||||||
Параметры_.Вставить("timestamp_from" , ДатаНачала);
|
Параметры_.Вставить("timestamp_from", ДатаНачала);
|
||||||
Параметры_.Вставить("timestamp_to" , ДатаОкончания);
|
Параметры_.Вставить("timestamp_to" , ДатаОкончания);
|
||||||
Параметры_.Вставить("stats_groups" , "visitors, reach, activity");
|
Параметры_.Вставить("stats_groups" , "visitors, reach, activity");
|
||||||
|
|
||||||
Ответ = OPI_Инструменты.Get("api.vk.com/method/stats.get", Параметры_);
|
Ответ = OPI_Инструменты.Get("api.vk.com/method/stats.get", Параметры_);
|
||||||
|
|
||||||
Возврат Ответ;
|
Возврат Ответ;
|
||||||
|
|
||||||
@@ -631,8 +631,8 @@
|
|||||||
СтрокаНомеров = СтрСоединить(МассивНабора, ",");
|
СтрокаНомеров = СтрСоединить(МассивНабора, ",");
|
||||||
Параметры_.Вставить("post_ids", СтрокаНомеров);
|
Параметры_.Вставить("post_ids", СтрокаНомеров);
|
||||||
|
|
||||||
Статистика = OPI_Инструменты.Get("api.vk.com/method/stats.getPostReach", Параметры_);
|
Статистика = OPI_Инструменты.Get("api.vk.com/method/stats.getPostReach", Параметры_);
|
||||||
МассивСтатистики = Статистика[Response];
|
МассивСтатистики = Статистика[Response];
|
||||||
|
|
||||||
Для Каждого ЭлементСтатистики Из МассивСтатистики Цикл
|
Для Каждого ЭлементСтатистики Из МассивСтатистики Цикл
|
||||||
МассивОтветов.Добавить(ЭлементСтатистики);
|
МассивОтветов.Добавить(ЭлементСтатистики);
|
||||||
@@ -758,8 +758,9 @@
|
|||||||
|
|
||||||
Параметры_.Вставить("account_id", OPI_Инструменты.ЧислоВСтроку(IDКабинета));
|
Параметры_.Вставить("account_id", OPI_Инструменты.ЧислоВСтроку(IDКабинета));
|
||||||
|
|
||||||
МассивСтруктур = Новый Массив;
|
МассивСтруктур = Новый Массив;
|
||||||
СтруктураКампании = Новый Структура;
|
СтруктураКампании = Новый Структура;
|
||||||
|
|
||||||
СтруктураКампании.Вставить("ad_id" , OPI_Инструменты.ЧислоВСтроку(IDОбъявления));
|
СтруктураКампании.Вставить("ad_id" , OPI_Инструменты.ЧислоВСтроку(IDОбъявления));
|
||||||
СтруктураКампании.Вставить("status" , 0);
|
СтруктураКампании.Вставить("status" , 0);
|
||||||
|
|
||||||
@@ -1460,8 +1461,8 @@
|
|||||||
|
|
||||||
Файлы.Вставить(КлючКартинка, ЗначениеКартинка);
|
Файлы.Вставить(КлючКартинка, ЗначениеКартинка);
|
||||||
|
|
||||||
Ответ = OPI_Инструменты.Get(Загрузка, Параметры);
|
Ответ = OPI_Инструменты.Get(Загрузка, Параметры);
|
||||||
URL = Ответ[Response]["upload_url"];
|
URL = Ответ[Response]["upload_url"];
|
||||||
Параметры.Вставить("upload_url", URL);
|
Параметры.Вставить("upload_url", URL);
|
||||||
|
|
||||||
Ответ = OPI_Инструменты.PostMultipart(URL, Параметры, Файлы);
|
Ответ = OPI_Инструменты.PostMultipart(URL, Параметры, Файлы);
|
||||||
@@ -1635,9 +1636,9 @@
|
|||||||
|
|
||||||
СерверФото = OPI_Инструменты.ЧислоВСтроку(Ответ[Serv]);
|
СерверФото = OPI_Инструменты.ЧислоВСтроку(Ответ[Serv]);
|
||||||
|
|
||||||
Параметры.Вставить(Hash , Ответ[Hash]);
|
Параметры.Вставить(Hash, Ответ[Hash]);
|
||||||
Параметры.Вставить(Фото , Ответ[Фото]);
|
Параметры.Вставить(Фото, Ответ[Фото]);
|
||||||
Параметры.Вставить(Serv , СерверФото);
|
Параметры.Вставить(Serv, СерверФото);
|
||||||
|
|
||||||
Идентификатор = Ответ.Получить(Aid);
|
Идентификатор = Ответ.Получить(Aid);
|
||||||
Идентификатор = OPI_Инструменты.ЧислоВСтроку(Идентификатор);
|
Идентификатор = OPI_Инструменты.ЧислоВСтроку(Идентификатор);
|
||||||
|
@@ -64,9 +64,8 @@
|
|||||||
// ДвоичныеДанные, Неопределено, Произвольный - Получить информацию о канале
|
// ДвоичныеДанные, Неопределено, Произвольный - Получить информацию о канале
|
||||||
Функция ПолучитьИнформациюОКанале(Знач Токен) Экспорт
|
Функция ПолучитьИнформациюОКанале(Знач Токен) Экспорт
|
||||||
|
|
||||||
Возврат OPI_Инструменты.Get("https://chatapi.viber.com/pa/get_account_info"
|
URL = "https://chatapi.viber.com/pa/get_account_info";
|
||||||
,
|
Возврат OPI_Инструменты.Get(URL, , ТокенВЗаголовки(Токен));
|
||||||
, ТокенВЗаголовки(Токен));
|
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
@@ -80,12 +79,12 @@
|
|||||||
// Произвольный, HTTPОтвет - Ответ сервера Viber
|
// Произвольный, HTTPОтвет - Ответ сервера Viber
|
||||||
Функция ПолучитьДанныеПользователя(Знач Токен, Знач IDПользователя) Экспорт
|
Функция ПолучитьДанныеПользователя(Знач Токен, Знач IDПользователя) Экспорт
|
||||||
|
|
||||||
|
URL = "https://chatapi.viber.com/pa/get_user_details";
|
||||||
|
|
||||||
СтруктураПараметров = Новый Структура;
|
СтруктураПараметров = Новый Структура;
|
||||||
СтруктураПараметров.Вставить("id", IDПользователя);
|
СтруктураПараметров.Вставить("id", IDПользователя);
|
||||||
|
|
||||||
Ответ = OPI_Инструменты.Post("https://chatapi.viber.com/pa/get_user_details"
|
Ответ = OPI_Инструменты.Post(URL, СтруктураПараметров, ТокенВЗаголовки(Токен));
|
||||||
, СтруктураПараметров
|
|
||||||
, ТокенВЗаголовки(Токен));
|
|
||||||
|
|
||||||
Попытка
|
Попытка
|
||||||
Возврат OPI_Инструменты.JsonВСтруктуру(Ответ.ПолучитьТелоКакДвоичныеДанные());
|
Возврат OPI_Инструменты.JsonВСтруктуру(Ответ.ПолучитьТелоКакДвоичныеДанные());
|
||||||
@@ -105,6 +104,8 @@
|
|||||||
// Произвольный, HTTPОтвет - Ответ сервера Viber
|
// Произвольный, HTTPОтвет - Ответ сервера Viber
|
||||||
Функция ПолучитьОнлайнПользователей(Знач Токен, Знач IDПользователей) Экспорт
|
Функция ПолучитьОнлайнПользователей(Знач Токен, Знач IDПользователей) Экспорт
|
||||||
|
|
||||||
|
URL = "https://chatapi.viber.com/pa/get_online";
|
||||||
|
|
||||||
Если Не ТипЗнч(IDПользователей) = Тип("Массив") Тогда
|
Если Не ТипЗнч(IDПользователей) = Тип("Массив") Тогда
|
||||||
|
|
||||||
ОдиночныйID = IDПользователей;
|
ОдиночныйID = IDПользователей;
|
||||||
@@ -116,9 +117,7 @@
|
|||||||
СтруктураПараметров = Новый Структура;
|
СтруктураПараметров = Новый Структура;
|
||||||
СтруктураПараметров.Вставить("ids", IDПользователей);
|
СтруктураПараметров.Вставить("ids", IDПользователей);
|
||||||
|
|
||||||
Ответ = OPI_Инструменты.Post("https://chatapi.viber.com/pa/get_online"
|
Ответ = OPI_Инструменты.Post(URL, СтруктураПараметров, ТокенВЗаголовки(Токен));
|
||||||
, СтруктураПараметров
|
|
||||||
, ТокенВЗаголовки(Токен));
|
|
||||||
|
|
||||||
Попытка
|
Попытка
|
||||||
Возврат OPI_Инструменты.JsonВСтруктуру(Ответ.ПолучитьТелоКакДвоичныеДанные());
|
Возврат OPI_Инструменты.JsonВСтруктуру(Ответ.ПолучитьТелоКакДвоичныеДанные());
|
||||||
|
@@ -45,10 +45,10 @@
|
|||||||
// ДвоичныеДанные, Неопределено, Строка, Произвольный - Ответ сервера Yandex
|
// ДвоичныеДанные, Неопределено, Строка, Произвольный - Ответ сервера Yandex
|
||||||
Функция ПолучитьИнформациюОДиске(Знач Токен) Экспорт
|
Функция ПолучитьИнформациюОДиске(Знач Токен) Экспорт
|
||||||
|
|
||||||
Заголовки = ЗаголовокАвторизации(Токен);
|
Заголовки = ЗаголовокАвторизации(Токен);
|
||||||
Ответ = OPI_Инструменты.Get("https://cloud-api.yandex.net/v1/disk", , Заголовки);
|
Ответ = OPI_Инструменты.Get("https://cloud-api.yandex.net/v1/disk", , Заголовки);
|
||||||
|
|
||||||
Возврат Ответ;
|
Возврат Ответ;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
@@ -62,20 +62,20 @@
|
|||||||
// Строка, Произвольный, ДвоичныеДанные, HTTPОтвет, Неопределено - Ответ сервера Yandex
|
// Строка, Произвольный, ДвоичныеДанные, HTTPОтвет, Неопределено - Ответ сервера Yandex
|
||||||
Функция СоздатьПапку(Знач Токен, Знач Путь) Экспорт
|
Функция СоздатьПапку(Знач Токен, Знач Путь) Экспорт
|
||||||
|
|
||||||
Заголовки = ЗаголовокАвторизации(Токен);
|
Заголовки = ЗаголовокАвторизации(Токен);
|
||||||
URL = "https://cloud-api.yandex.net/v1/disk/resources";
|
URL = "https://cloud-api.yandex.net/v1/disk/resources";
|
||||||
Href = "href";
|
Href = "href";
|
||||||
|
|
||||||
Параметры = Новый Структура;
|
Параметры = Новый Структура;
|
||||||
Параметры.Вставить("path", Путь);
|
Параметры.Вставить("path", Путь);
|
||||||
|
|
||||||
Параметры = OPI_Инструменты.ПараметрыЗапросаВСтроку(Параметры);
|
Параметры = OPI_Инструменты.ПараметрыЗапросаВСтроку(Параметры);
|
||||||
Ответ = OPI_Инструменты.Put(URL + Параметры, , Заголовки, Ложь);
|
Ответ = OPI_Инструменты.Put(URL + Параметры, , Заголовки, Ложь);
|
||||||
|
|
||||||
URLОтвета = Ответ[Href];
|
URLОтвета = Ответ[Href];
|
||||||
Ответ = OPI_Инструменты.Get(URLОтвета, , Заголовки);
|
Ответ = OPI_Инструменты.Get(URLОтвета, , Заголовки);
|
||||||
|
|
||||||
Возврат Ответ;
|
Возврат Ответ;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
@@ -89,13 +89,13 @@
|
|||||||
// ДвоичныеДанные, Неопределено, Строка, Произвольный - Ответ сервера Yandex
|
// ДвоичныеДанные, Неопределено, Строка, Произвольный - Ответ сервера Yandex
|
||||||
Функция ПолучитьОбъект(Знач Токен, Знач Путь) Экспорт
|
Функция ПолучитьОбъект(Знач Токен, Знач Путь) Экспорт
|
||||||
|
|
||||||
Заголовки = ЗаголовокАвторизации(Токен);
|
Заголовки = ЗаголовокАвторизации(Токен);
|
||||||
Параметры = Новый Структура;
|
Параметры = Новый Структура;
|
||||||
Параметры.Вставить("path", Путь);
|
Параметры.Вставить("path", Путь);
|
||||||
|
|
||||||
Ответ = OPI_Инструменты.Get("https://cloud-api.yandex.net/v1/disk/resources", Параметры, Заголовки);
|
Ответ = OPI_Инструменты.Get("https://cloud-api.yandex.net/v1/disk/resources", Параметры, Заголовки);
|
||||||
|
|
||||||
Возврат Ответ;
|
Возврат Ответ;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
@@ -110,15 +110,15 @@
|
|||||||
// ДвоичныеДанные, Неопределено, Строка, Произвольный - Ответ сервера Yandex
|
// ДвоичныеДанные, Неопределено, Строка, Произвольный - Ответ сервера Yandex
|
||||||
Функция УдалитьОбъект(Знач Токен, Знач Путь, Знач ВКорзину = Истина) Экспорт
|
Функция УдалитьОбъект(Знач Токен, Знач Путь, Знач ВКорзину = Истина) Экспорт
|
||||||
|
|
||||||
Заголовки = ЗаголовокАвторизации(Токен);
|
Заголовки = ЗаголовокАвторизации(Токен);
|
||||||
|
|
||||||
Параметры = Новый Структура;
|
Параметры = Новый Структура;
|
||||||
Параметры.Вставить("path" , Путь);
|
Параметры.Вставить("path" , Путь);
|
||||||
Параметры.Вставить("permanently", Не ВКорзину);
|
Параметры.Вставить("permanently", Не ВКорзину);
|
||||||
|
|
||||||
Ответ = OPI_Инструменты.Delete("https://cloud-api.yandex.net/v1/disk/resources", Параметры, Заголовки);
|
Ответ = OPI_Инструменты.Delete("https://cloud-api.yandex.net/v1/disk/resources", Параметры, Заголовки);
|
||||||
|
|
||||||
Возврат Ответ;
|
Возврат Ответ;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
@@ -297,8 +297,8 @@
|
|||||||
URL = "https://cloud-api.yandex.net/v1/disk/resources/upload";
|
URL = "https://cloud-api.yandex.net/v1/disk/resources/upload";
|
||||||
|
|
||||||
Параметры = Новый Структура;
|
Параметры = Новый Структура;
|
||||||
Параметры.Вставить("url" , КодироватьСтроку(Адрес, СпособКодированияСтроки.URLВКодировкеURL));
|
Параметры.Вставить("url" , КодироватьСтроку(Адрес, СпособКодированияСтроки.URLВКодировкеURL));
|
||||||
Параметры.Вставить("path" , Путь);
|
Параметры.Вставить("path", Путь);
|
||||||
|
|
||||||
Параметры = OPI_Инструменты.ПараметрыЗапросаВСтроку(Параметры);
|
Параметры = OPI_Инструменты.ПараметрыЗапросаВСтроку(Параметры);
|
||||||
Ответ = OPI_Инструменты.Post(URL + Параметры, , Заголовки, Ложь);
|
Ответ = OPI_Инструменты.Post(URL + Параметры, , Заголовки, Ложь);
|
||||||
@@ -468,10 +468,10 @@
|
|||||||
|
|
||||||
Функция ЗаголовокАвторизации(Знач Токен)
|
Функция ЗаголовокАвторизации(Знач Токен)
|
||||||
|
|
||||||
Заголовки = Новый Соответствие;
|
Заголовки = Новый Соответствие;
|
||||||
Заголовки.Вставить("Authorization", "OAuth " + Токен);
|
Заголовки.Вставить("Authorization", "OAuth " + Токен);
|
||||||
|
|
||||||
Возврат Заголовки;
|
Возврат Заголовки;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
@@ -57,15 +57,15 @@
|
|||||||
// Строка, Произвольный, Неопределено, ДвоичныеДанные, HTTPОтвет - Преобразовать код в токен
|
// Строка, Произвольный, Неопределено, ДвоичныеДанные, HTTPОтвет - Преобразовать код в токен
|
||||||
Функция ПреобразоватьКодВТокен(Знач ClientId, Знач ClientSecret, Знач КодУстройства) Экспорт
|
Функция ПреобразоватьКодВТокен(Знач ClientId, Знач ClientSecret, Знач КодУстройства) Экспорт
|
||||||
|
|
||||||
Параметры = Новый Структура;
|
Параметры = Новый Структура;
|
||||||
Параметры.Вставить("grant_type" , "device_code");
|
Параметры.Вставить("grant_type" , "device_code");
|
||||||
Параметры.Вставить("code" , КодУстройства);
|
Параметры.Вставить("code" , КодУстройства);
|
||||||
Параметры.Вставить("client_id" , ClientId);
|
Параметры.Вставить("client_id" , ClientId);
|
||||||
Параметры.Вставить("client_secret" , ClientSecret);
|
Параметры.Вставить("client_secret" , ClientSecret);
|
||||||
|
|
||||||
Ответ = OPI_Инструменты.Post("https://oauth.yandex.ru/token", Параметры, , Ложь);
|
Ответ = OPI_Инструменты.Post("https://oauth.yandex.ru/token", Параметры, , Ложь);
|
||||||
|
|
||||||
Возврат Ответ;
|
Возврат Ответ;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
@@ -65,9 +65,7 @@
|
|||||||
|
|
||||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьИнформациюБота");
|
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьИнформациюБота");
|
||||||
|
|
||||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
|
Проверка_ТелеграмИнформацияБота(Результат);
|
||||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ok"]).Равно(Истина);
|
|
||||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]["username"]).Заполнено();
|
|
||||||
|
|
||||||
OPI_Инструменты.Пауза(5);
|
OPI_Инструменты.Пауза(5);
|
||||||
|
|
||||||
@@ -82,9 +80,7 @@
|
|||||||
|
|
||||||
OPI_Telegram.УдалитьWebhook(Токен);
|
OPI_Telegram.УдалитьWebhook(Токен);
|
||||||
|
|
||||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие") .Заполнено();
|
Проверка_ТелеграмМассив(Результат);
|
||||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ok"]).Равно(Истина);
|
|
||||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]).ИмеетТип("Массив");
|
|
||||||
|
|
||||||
OPI_Инструменты.Пауза(5);
|
OPI_Инструменты.Пауза(5);
|
||||||
|
|
||||||
@@ -98,10 +94,7 @@
|
|||||||
|
|
||||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УстановитьWebhook");
|
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УстановитьWebhook");
|
||||||
|
|
||||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
|
Проверка_ТелеграмУстановкаВебхук(Результат);
|
||||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ok"]).Равно(Истина);
|
|
||||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]).Равно(Истина);
|
|
||||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["description"]).Равно("Webhook was set");
|
|
||||||
|
|
||||||
OPI_Инструменты.Пауза(5);
|
OPI_Инструменты.Пауза(5);
|
||||||
|
|
||||||
@@ -114,10 +107,7 @@
|
|||||||
|
|
||||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьWebhook");
|
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьWebhook");
|
||||||
|
|
||||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
|
Проверка_ТелеграмУдалениеВебхук(Результат);
|
||||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ok"]).Равно(Истина);
|
|
||||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]).Равно(Истина);
|
|
||||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["description"]).Равно("Webhook was deleted");
|
|
||||||
|
|
||||||
OPI_Инструменты.Пауза(5);
|
OPI_Инструменты.Пауза(5);
|
||||||
|
|
||||||
@@ -2635,6 +2625,40 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура Проверка_ТелеграмИнформацияБота(Знач Результат)
|
||||||
|
|
||||||
|
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
|
||||||
|
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ok"]).Равно(Истина);
|
||||||
|
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]["username"]).Заполнено();
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура Проверка_ТелеграмМассив(Результат)
|
||||||
|
|
||||||
|
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие") .Заполнено();
|
||||||
|
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ok"]).Равно(Истина);
|
||||||
|
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]).ИмеетТип("Массив");
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура Проверка_ТелеграмУстановкаВебхук(Знач Результат)
|
||||||
|
|
||||||
|
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
|
||||||
|
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ok"]).Равно(Истина);
|
||||||
|
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]).Равно(Истина);
|
||||||
|
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["description"]).Равно("Webhook was set");
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура Проверка_ТелеграмУдалениеВебхук(Знач Результат)
|
||||||
|
|
||||||
|
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
|
||||||
|
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ok"]).Равно(Истина);
|
||||||
|
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]).Равно(Истина);
|
||||||
|
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["description"]).Равно("Webhook was deleted");
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
Процедура Проверка_ВКИстина(Знач Результат)
|
Процедура Проверка_ВКИстина(Знач Результат)
|
||||||
|
|
||||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
|
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
|
||||||
|
@@ -42,7 +42,7 @@
|
|||||||
|
|
||||||
Попытка
|
Попытка
|
||||||
|
|
||||||
Модуль = ПолучитьОбщийМодуль("ЮТест");
|
Модуль = ПолучитьОбщийМодуль("ЮТест");
|
||||||
Ожидаем = ТипЗнч(Модуль) = Тип("ОбщийМодуль");
|
Ожидаем = ТипЗнч(Модуль) = Тип("ОбщийМодуль");
|
||||||
Возврат Модуль.ОжидаетЧто(Значение);
|
Возврат Модуль.ОжидаетЧто(Значение);
|
||||||
|
|
||||||
@@ -54,8 +54,8 @@
|
|||||||
|
|
||||||
Функция СформироватьТестыЯкс() Экспорт
|
Функция СформироватьТестыЯкс() Экспорт
|
||||||
|
|
||||||
Модуль = ПолучитьОбщийМодуль("ЮТТесты");
|
Модуль = ПолучитьОбщийМодуль("ЮТТесты");
|
||||||
МассивРазделов = ПолучитьМассивРазделовТестирования();
|
МассивРазделов = ПолучитьМассивРазделовТестирования();
|
||||||
ТаблицаТестов = ПолучитьТаблицуТестов();
|
ТаблицаТестов = ПолучитьТаблицуТестов();
|
||||||
|
|
||||||
Для Каждого Раздел Из МассивРазделов Цикл
|
Для Каждого Раздел Из МассивРазделов Цикл
|
||||||
@@ -324,9 +324,9 @@
|
|||||||
|
|
||||||
Функция ПолучитьОбщийМодуль(Знач Имя)
|
Функция ПолучитьОбщийМодуль(Знач Имя)
|
||||||
|
|
||||||
Модуль = Вычислить(Имя);
|
Модуль = Вычислить(Имя);
|
||||||
|
|
||||||
Возврат Модуль;
|
Возврат Модуль;
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Процедура НовыйТест(ТаблицаЗначений, Знач Метод, Знач Синоним, Знач Раздел)
|
Процедура НовыйТест(ТаблицаЗначений, Знач Метод, Знач Синоним, Знач Раздел)
|
||||||
|
@@ -49,15 +49,15 @@
|
|||||||
#Область ЗапросыСТелом
|
#Область ЗапросыСТелом
|
||||||
|
|
||||||
Функция Post(Знач URL, Знач Параметры = "", Знач ДопЗаголовки = "", Знач JSON = Истина) Экспорт
|
Функция Post(Знач URL, Знач Параметры = "", Знач ДопЗаголовки = "", Знач JSON = Истина) Экспорт
|
||||||
Возврат ВыполнитьЗапросСТелом(URL, "POST", Параметры, ДопЗаголовки, JSON);
|
Возврат ВыполнитьЗапросСТелом(URL, "POST", Параметры, ДопЗаголовки, JSON);
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция Patch(Знач URL, Знач Параметры = "", Знач ДопЗаголовки = "", Знач JSON = Истина) Экспорт
|
Функция Patch(Знач URL, Знач Параметры = "", Знач ДопЗаголовки = "", Знач JSON = Истина) Экспорт
|
||||||
Возврат ВыполнитьЗапросСТелом(URL, "PATCH", Параметры, ДопЗаголовки, JSON);
|
Возврат ВыполнитьЗапросСТелом(URL, "PATCH", Параметры, ДопЗаголовки, JSON);
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция Put(Знач URL, Знач Параметры = "", Знач ДопЗаголовки = "", Знач JSON = Истина) Экспорт
|
Функция Put(Знач URL, Знач Параметры = "", Знач ДопЗаголовки = "", Знач JSON = Истина) Экспорт
|
||||||
Возврат ВыполнитьЗапросСТелом(URL, "PUT", Параметры, ДопЗаголовки, JSON);
|
Возврат ВыполнитьЗапросСТелом(URL, "PUT", Параметры, ДопЗаголовки, JSON);
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
@@ -96,21 +96,21 @@
|
|||||||
|
|
||||||
Функция ПараметрыЗапросаВСоответствие(Знач СтрокаПараметров) Экспорт
|
Функция ПараметрыЗапросаВСоответствие(Знач СтрокаПараметров) Экспорт
|
||||||
|
|
||||||
СоответствиеВозврата = Новый Соответствие;
|
СоответствиеВозврата = Новый Соответствие;
|
||||||
КоличествоЧастей = 2;
|
КоличествоЧастей = 2;
|
||||||
МассивПараметров = СтрРазделить(СтрокаПараметров, "&", Ложь);
|
МассивПараметров = СтрРазделить(СтрокаПараметров, "&", Ложь);
|
||||||
|
|
||||||
Для Каждого Параметр Из МассивПараметров Цикл
|
Для Каждого Параметр Из МассивПараметров Цикл
|
||||||
|
|
||||||
МассивКлючЗначение = СтрРазделить(Параметр, "=");
|
МассивКлючЗначение = СтрРазделить(Параметр, "=");
|
||||||
|
|
||||||
Если МассивКлючЗначение.Количество() = КоличествоЧастей Тогда
|
Если МассивКлючЗначение.Количество() = КоличествоЧастей Тогда
|
||||||
СоответствиеВозврата.Вставить(МассивКлючЗначение[0], МассивКлючЗначение[1]);
|
СоответствиеВозврата.Вставить(МассивКлючЗначение[0], МассивКлючЗначение[1]);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
Возврат СоответствиеВозврата;
|
Возврат СоответствиеВозврата;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
@@ -119,22 +119,22 @@
|
|||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция UNIXTime(Знач Дата) Экспорт
|
Функция UNIXTime(Знач Дата) Экспорт
|
||||||
Возврат Формат(Дата - Дата(1970, 1, 1, 1, 0, 0), "ЧЦ=10; ЧДЦ=0; ЧГ=0");
|
Возврат Формат(Дата - Дата(1970, 1, 1, 1, 0, 0), "ЧЦ=10; ЧДЦ=0; ЧГ=0");
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Процедура ЗаменитьСпецСимволы(Текст) Экспорт
|
Процедура ЗаменитьСпецСимволы(Текст) Экспорт
|
||||||
|
|
||||||
МассивСимволов = Новый Соответствие;
|
МассивСимволов = Новый Соответствие;
|
||||||
МассивСимволов.Вставить("<", "<");
|
МассивСимволов.Вставить("<", "<");
|
||||||
МассивСимволов.Вставить(">", ">");
|
МассивСимволов.Вставить(">", ">");
|
||||||
МассивСимволов.Вставить("&", "&");
|
МассивСимволов.Вставить("&", "&");
|
||||||
МассивСимволов.Вставить("_", " ");
|
МассивСимволов.Вставить("_", " ");
|
||||||
МассивСимволов.Вставить("[", "(");
|
МассивСимволов.Вставить("[", "(");
|
||||||
МассивСимволов.Вставить("]", ")");
|
МассивСимволов.Вставить("]", ")");
|
||||||
|
|
||||||
Для Каждого СимволМассива Из МассивСимволов Цикл
|
Для Каждого СимволМассива Из МассивСимволов Цикл
|
||||||
Текст = СтрЗаменить(Текст, СимволМассива.Ключ, СимволМассива.Значение);
|
Текст = СтрЗаменить(Текст, СимволМассива.Ключ, СимволМассива.Значение);
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
@@ -178,32 +178,32 @@
|
|||||||
|
|
||||||
Функция ПараметрыЗапросаВСтроку(Знач Параметры) Экспорт
|
Функция ПараметрыЗапросаВСтроку(Знач Параметры) Экспорт
|
||||||
|
|
||||||
Если Параметры.Количество() = 0 Тогда
|
Если Параметры.Количество() = 0 Тогда
|
||||||
Возврат "";
|
Возврат "";
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
СтрокаПараметров = "?";
|
СтрокаПараметров = "?";
|
||||||
|
|
||||||
Для Каждого Параметр Из Параметры Цикл
|
Для Каждого Параметр Из Параметры Цикл
|
||||||
СтрокаПараметров = СтрокаПараметров
|
СтрокаПараметров = СтрокаПараметров
|
||||||
+ Параметр.Ключ
|
+ Параметр.Ключ
|
||||||
+ "="
|
+ "="
|
||||||
+ КодироватьСтроку(Параметр.Значение,
|
+ КодироватьСтроку(Параметр.Значение,
|
||||||
СпособКодированияСтроки.КодировкаURL)
|
СпособКодированияСтроки.КодировкаURL)
|
||||||
+ "&";
|
+ "&";
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
СтрокаПараметров = Лев(СтрокаПараметров, СтрДлина(СтрокаПараметров) - 1);
|
СтрокаПараметров = Лев(СтрокаПараметров, СтрДлина(СтрокаПараметров) - 1);
|
||||||
|
|
||||||
Возврат СтрокаПараметров;
|
Возврат СтрокаПараметров;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция РазбитьURL(Знач URL) Экспорт
|
Функция РазбитьURL(Знач URL) Экспорт
|
||||||
|
|
||||||
URL = СтрЗаменить(URL, "https://", "");
|
URL = СтрЗаменить(URL, "https://", "");
|
||||||
URL = СтрЗаменить(URL, "http://", "");
|
URL = СтрЗаменить(URL, "http://", "");
|
||||||
URL = СтрЗаменить(URL, ":443", "");
|
URL = СтрЗаменить(URL, ":443", "");
|
||||||
|
|
||||||
Адрес = Прав(URL, СтрДлина(URL) - СтрНайти(URL, "/", НаправлениеПоиска.СНачала) + 1);
|
Адрес = Прав(URL, СтрДлина(URL) - СтрНайти(URL, "/", НаправлениеПоиска.СНачала) + 1);
|
||||||
Сервер = Лев(URL, СтрНайти(URL, "/", НаправлениеПоиска.СНачала) - 1);
|
Сервер = Лев(URL, СтрНайти(URL, "/", НаправлениеПоиска.СНачала) - 1);
|
||||||
@@ -214,45 +214,45 @@
|
|||||||
Сервер = "https://" + Сервер;
|
Сервер = "https://" + Сервер;
|
||||||
КонецПопытки;
|
КонецПопытки;
|
||||||
|
|
||||||
СтруктураВозврата = Новый Структура;
|
СтруктураВозврата = Новый Структура;
|
||||||
СтруктураВозврата.Вставить("Сервер", Сервер);
|
СтруктураВозврата.Вставить("Сервер", Сервер);
|
||||||
СтруктураВозврата.Вставить("Адрес" , Адрес);
|
СтруктураВозврата.Вставить("Адрес" , Адрес);
|
||||||
|
|
||||||
Возврат СтруктураВозврата;
|
Возврат СтруктураВозврата;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция JsonВСтруктуру(Знач Текст) Экспорт
|
Функция JsonВСтруктуру(Знач Текст) Экспорт
|
||||||
|
|
||||||
Если Не ЗначениеЗаполнено(Текст) Тогда
|
Если Не ЗначениеЗаполнено(Текст) Тогда
|
||||||
Возврат "";
|
Возврат "";
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ЧтениеJSON = Новый ЧтениеJSON;
|
ЧтениеJSON = Новый ЧтениеJSON;
|
||||||
ЧтениеJSON.УстановитьСтроку(ПолучитьСтрокуИзДвоичныхДанных(Текст));
|
ЧтениеJSON.УстановитьСтроку(ПолучитьСтрокуИзДвоичныхДанных(Текст));
|
||||||
|
|
||||||
Данные = ПрочитатьJSON(ЧтениеJSON, Истина, Неопределено, ФорматДатыJSON.ISO);
|
Данные = ПрочитатьJSON(ЧтениеJSON, Истина, Неопределено, ФорматДатыJSON.ISO);
|
||||||
ЧтениеJSON.Закрыть();
|
ЧтениеJSON.Закрыть();
|
||||||
|
|
||||||
Возврат Данные;
|
Возврат Данные;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция JSONСтрокой(Знач Данные) Экспорт
|
Функция JSONСтрокой(Знач Данные) Экспорт
|
||||||
|
|
||||||
ПараметрыJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Windows, " ", Истина, ЭкранированиеСимволовJSON.Нет,
|
ПараметрыJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Windows, " ", Истина, ЭкранированиеСимволовJSON.Нет,
|
||||||
Ложь, Ложь, Ложь, Ложь);
|
Ложь, Ложь, Ложь, Ложь);
|
||||||
|
|
||||||
ЗаписьJSON = Новый ЗаписьJSON;
|
ЗаписьJSON = Новый ЗаписьJSON;
|
||||||
ЗаписьJSON.УстановитьСтроку(ПараметрыJSON);
|
ЗаписьJSON.УстановитьСтроку(ПараметрыJSON);
|
||||||
|
|
||||||
ЗаписатьJSON(ЗаписьJSON, Данные);
|
ЗаписатьJSON(ЗаписьJSON, Данные);
|
||||||
Возврат ЗаписьJSON.Закрыть();
|
Возврат ЗаписьJSON.Закрыть();
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция ЧислоВСтроку(Знач Число) Экспорт
|
Функция ЧислоВСтроку(Знач Число) Экспорт
|
||||||
Возврат СтрЗаменить(Строка(Число), Символы.НПП, "");
|
Возврат СтрЗаменить(Строка(Число), Символы.НПП, "");
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция ПрочитатьJSONФайл(Знач Путь) Экспорт
|
Функция ПрочитатьJSONФайл(Знач Путь) Экспорт
|
||||||
@@ -269,35 +269,35 @@
|
|||||||
|
|
||||||
Функция ПолучитьДвоичныеДанные(Знач Значение) Экспорт
|
Функция ПолучитьДвоичныеДанные(Знач Значение) Экспорт
|
||||||
|
|
||||||
Попытка
|
Попытка
|
||||||
|
|
||||||
Если ТипЗнч(Значение) <> Тип("ДвоичныеДанные") Тогда
|
Если ТипЗнч(Значение) <> Тип("ДвоичныеДанные") Тогда
|
||||||
|
|
||||||
Файл = Новый Файл(Значение);
|
Файл = Новый Файл(Значение);
|
||||||
|
|
||||||
Если Файл.Существует() Тогда
|
Если Файл.Существует() Тогда
|
||||||
Возврат Новый ДвоичныеДанные(Значение);
|
Возврат Новый ДвоичныеДанные(Значение);
|
||||||
Иначе
|
Иначе
|
||||||
|
|
||||||
ИВФ = ПолучитьИмяВременногоФайла();
|
ИВФ = ПолучитьИмяВременногоФайла();
|
||||||
КопироватьФайл(Значение, ИВФ);
|
КопироватьФайл(Значение, ИВФ);
|
||||||
Двоичные = Новый ДвоичныеДанные(ИВФ);
|
Двоичные = Новый ДвоичныеДанные(ИВФ);
|
||||||
|
|
||||||
УдалитьФайлы(ИВФ);
|
УдалитьФайлы(ИВФ);
|
||||||
|
|
||||||
Возврат Двоичные;
|
Возврат Двоичные;
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Иначе
|
Иначе
|
||||||
|
|
||||||
Возврат Значение;
|
Возврат Значение;
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Исключение
|
Исключение
|
||||||
ВызватьИсключение "Ошибка получения данных файла из параметра";
|
ВызватьИсключение "Ошибка получения данных файла из параметра";
|
||||||
КонецПопытки
|
КонецПопытки
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
@@ -718,175 +718,175 @@
|
|||||||
|
|
||||||
Функция РаспаковатьОтвет(Ответ)
|
Функция РаспаковатьОтвет(Ответ)
|
||||||
|
|
||||||
Попытка
|
Попытка
|
||||||
Возврат ПрочитатьGZip(Ответ.ПолучитьТелоКакДвоичныеДанные());
|
Возврат ПрочитатьGZip(Ответ.ПолучитьТелоКакДвоичныеДанные());
|
||||||
Исключение
|
Исключение
|
||||||
Возврат Ответ;
|
Возврат Ответ;
|
||||||
КонецПопытки;
|
КонецПопытки;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция ПрочитатьGZip(СжатыеДанные) Экспорт
|
Функция ПрочитатьGZip(СжатыеДанные) Экспорт
|
||||||
|
|
||||||
РазмерПрефиксаGZip = 10;
|
РазмерПрефиксаGZip = 10;
|
||||||
РазмерПостфиксаGZip = 8;
|
РазмерПостфиксаGZip = 8;
|
||||||
|
|
||||||
РазмерДД = ZipРазмерDD();
|
РазмерДД = ZipРазмерDD();
|
||||||
РазмерСДХ = ZipРазмерCDH();
|
РазмерСДХ = ZipРазмерCDH();
|
||||||
РазмерЕСД = ZipРазмерEOCD();
|
РазмерЕСД = ZipРазмерEOCD();
|
||||||
РазмерЛФХ = ZipРазмерLFH();
|
РазмерЛФХ = ZipРазмерLFH();
|
||||||
|
|
||||||
ЧтениеДанных = Новый ЧтениеДанных(СжатыеДанные);
|
ЧтениеДанных = Новый ЧтениеДанных(СжатыеДанные);
|
||||||
ЧтениеДанных.Пропустить(РазмерПрефиксаGZip);
|
ЧтениеДанных.Пропустить(РазмерПрефиксаGZip);
|
||||||
РазмерСжатыхДанных = ЧтениеДанных.ИсходныйПоток().Размер() - РазмерПрефиксаGZip - РазмерПостфиксаGZip;
|
РазмерСжатыхДанных = ЧтениеДанных.ИсходныйПоток().Размер() - РазмерПрефиксаGZip - РазмерПостфиксаGZip;
|
||||||
|
|
||||||
ПотокZip = Новый ПотокВПамяти(РазмерЛФХ
|
ПотокZip = Новый ПотокВПамяти(РазмерЛФХ
|
||||||
+ РазмерСжатыхДанных
|
+ РазмерСжатыхДанных
|
||||||
+ РазмерДД
|
+ РазмерДД
|
||||||
+ РазмерСДХ
|
+ РазмерСДХ
|
||||||
+ РазмерЕСД);
|
+ РазмерЕСД);
|
||||||
|
|
||||||
ЗаписьДанных = Новый ЗаписьДанных(ПотокZip);
|
ЗаписьДанных = Новый ЗаписьДанных(ПотокZip);
|
||||||
ЗаписьДанных.ЗаписатьБуферДвоичныхДанных(ZipLFH());
|
ЗаписьДанных.ЗаписатьБуферДвоичныхДанных(ZipLFH());
|
||||||
ЧтениеДанных.КопироватьВ(ЗаписьДанных, РазмерСжатыхДанных);
|
ЧтениеДанных.КопироватьВ(ЗаписьДанных, РазмерСжатыхДанных);
|
||||||
|
|
||||||
ЗаписьДанных.Закрыть();
|
ЗаписьДанных.Закрыть();
|
||||||
ЗаписьДанных = Новый ЗаписьДанных(ПотокZip);
|
ЗаписьДанных = Новый ЗаписьДанных(ПотокZip);
|
||||||
|
|
||||||
CRC32 = ЧтениеДанных.ПрочитатьЦелое32();
|
CRC32 = ЧтениеДанных.ПрочитатьЦелое32();
|
||||||
РазмерНесжатыхДанных = ЧтениеДанных.ПрочитатьЦелое32();
|
РазмерНесжатыхДанных = ЧтениеДанных.ПрочитатьЦелое32();
|
||||||
ЧтениеДанных.Закрыть();
|
ЧтениеДанных.Закрыть();
|
||||||
|
|
||||||
ЗаписьДанных.ЗаписатьБуферДвоичныхДанных(ZipDD(CRC32, РазмерСжатыхДанных, РазмерНесжатыхДанных));
|
ЗаписьДанных.ЗаписатьБуферДвоичныхДанных(ZipDD(CRC32, РазмерСжатыхДанных, РазмерНесжатыхДанных));
|
||||||
ЗаписьДанных.ЗаписатьБуферДвоичныхДанных(ZipCDH(CRC32, РазмерСжатыхДанных, РазмерНесжатыхДанных));
|
ЗаписьДанных.ЗаписатьБуферДвоичныхДанных(ZipCDH(CRC32, РазмерСжатыхДанных, РазмерНесжатыхДанных));
|
||||||
ЗаписьДанных.ЗаписатьБуферДвоичныхДанных(ZipEOCD(РазмерСжатыхДанных));
|
ЗаписьДанных.ЗаписатьБуферДвоичныхДанных(ZipEOCD(РазмерСжатыхДанных));
|
||||||
ЗаписьДанных.Закрыть();
|
ЗаписьДанных.Закрыть();
|
||||||
|
|
||||||
Возврат ПрочитатьZip(ПотокZip);
|
Возврат ПрочитатьZip(ПотокZip);
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция ПрочитатьZip(СжатыеДанные, ТекстОшибки = Неопределено)
|
Функция ПрочитатьZip(СжатыеДанные, ТекстОшибки = Неопределено)
|
||||||
|
|
||||||
Каталог = ПолучитьИмяВременногоФайла();
|
Каталог = ПолучитьИмяВременногоФайла();
|
||||||
ЧтениеZip = Новый ЧтениеZipФайла(СжатыеДанные);
|
ЧтениеZip = Новый ЧтениеZipФайла(СжатыеДанные);
|
||||||
ИмяФайла = ЧтениеZip.Элементы[0].Имя;
|
ИмяФайла = ЧтениеZip.Элементы[0].Имя;
|
||||||
Попытка
|
Попытка
|
||||||
ЧтениеZip.Извлечь(ЧтениеZip.Элементы[0], Каталог, РежимВосстановленияПутейФайловZIP.НеВосстанавливать);
|
ЧтениеZip.Извлечь(ЧтениеZip.Элементы[0], Каталог, РежимВосстановленияПутейФайловZIP.НеВосстанавливать);
|
||||||
Исключение
|
Исключение
|
||||||
// Игнорируем проверку целостности архива, просто читаем результат
|
// Игнорируем проверку целостности архива, просто читаем результат
|
||||||
ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
|
ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
|
||||||
КонецПопытки;
|
КонецПопытки;
|
||||||
ЧтениеZip.Закрыть();
|
ЧтениеZip.Закрыть();
|
||||||
|
|
||||||
Результат = Новый ДвоичныеДанные(Каталог + ПолучитьРазделительПути() + ИмяФайла);
|
Результат = Новый ДвоичныеДанные(Каталог + ПолучитьРазделительПути() + ИмяФайла);
|
||||||
УдалитьФайлы(Каталог);
|
УдалитьФайлы(Каталог);
|
||||||
|
|
||||||
Возврат Результат;
|
Возврат Результат;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция ZipРазмерLFH()
|
Функция ZipРазмерLFH()
|
||||||
|
|
||||||
Возврат 34;
|
Возврат 34;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция ZipРазмерDD()
|
Функция ZipРазмерDD()
|
||||||
|
|
||||||
Возврат 16;
|
Возврат 16;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция ZipРазмерCDH()
|
Функция ZipРазмерCDH()
|
||||||
|
|
||||||
Возврат 50;
|
Возврат 50;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция ZipРазмерEOCD()
|
Функция ZipРазмерEOCD()
|
||||||
|
|
||||||
Возврат 22;
|
Возврат 22;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция ZipLFH()
|
Функция ZipLFH()
|
||||||
|
|
||||||
// Local file header
|
// Local file header
|
||||||
Буфер = Новый БуферДвоичныхДанных(ZipРазмерLFH());
|
Буфер = Новый БуферДвоичныхДанных(ZipРазмерLFH());
|
||||||
Буфер.ЗаписатьЦелое32(0, 67324752); // signature 0x04034b50
|
Буфер.ЗаписатьЦелое32(0, 67324752); // signature 0x04034b50
|
||||||
Буфер.ЗаписатьЦелое16(4, 20); // version
|
Буфер.ЗаписатьЦелое16(4, 20); // version
|
||||||
Буфер.ЗаписатьЦелое16(6, 10); // bit flags
|
Буфер.ЗаписатьЦелое16(6, 10); // bit flags
|
||||||
Буфер.ЗаписатьЦелое16(8, 8); // compression method
|
Буфер.ЗаписатьЦелое16(8, 8); // compression method
|
||||||
Буфер.ЗаписатьЦелое16(10, 0); // time
|
Буфер.ЗаписатьЦелое16(10, 0); // time
|
||||||
Буфер.ЗаписатьЦелое16(12, 0); // date
|
Буфер.ЗаписатьЦелое16(12, 0); // date
|
||||||
Буфер.ЗаписатьЦелое32(14, 0); // crc-32
|
Буфер.ЗаписатьЦелое32(14, 0); // crc-32
|
||||||
Буфер.ЗаписатьЦелое32(18, 0); // compressed size
|
Буфер.ЗаписатьЦелое32(18, 0); // compressed size
|
||||||
Буфер.ЗаписатьЦелое32(22, 0); // uncompressed size
|
Буфер.ЗаписатьЦелое32(22, 0); // uncompressed size
|
||||||
Буфер.ЗаписатьЦелое16(26, 4); // filename legth - "data"
|
Буфер.ЗаписатьЦелое16(26, 4); // filename legth - "data"
|
||||||
Буфер.ЗаписатьЦелое16(28, 0); // extra field length
|
Буфер.ЗаписатьЦелое16(28, 0); // extra field length
|
||||||
Буфер.Записать(30, ПолучитьБуферДвоичныхДанныхИзСтроки("data", "ascii", Ложь));
|
Буфер.Записать(30, ПолучитьБуферДвоичныхДанныхИзСтроки("data", "ascii", Ложь));
|
||||||
|
|
||||||
Возврат Буфер;
|
Возврат Буфер;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция ZipDD(CRC32, РазмерСжатыхДанных, РазмерНесжатыхДанных)
|
Функция ZipDD(CRC32, РазмерСжатыхДанных, РазмерНесжатыхДанных)
|
||||||
|
|
||||||
// Data descriptor
|
// Data descriptor
|
||||||
Буфер = Новый БуферДвоичныхДанных(ZipРазмерDD());
|
Буфер = Новый БуферДвоичныхДанных(ZipРазмерDD());
|
||||||
Буфер.ЗаписатьЦелое32(0, 134695760);
|
Буфер.ЗаписатьЦелое32(0, 134695760);
|
||||||
Буфер.ЗаписатьЦелое32(4, CRC32);
|
Буфер.ЗаписатьЦелое32(4, CRC32);
|
||||||
Буфер.ЗаписатьЦелое32(8, РазмерСжатыхДанных);
|
Буфер.ЗаписатьЦелое32(8, РазмерСжатыхДанных);
|
||||||
Буфер.ЗаписатьЦелое32(12, РазмерНесжатыхДанных);
|
Буфер.ЗаписатьЦелое32(12, РазмерНесжатыхДанных);
|
||||||
|
|
||||||
Возврат Буфер;
|
Возврат Буфер;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция ZipCDH(CRC32, РазмерСжатыхДанных, РазмерНесжатыхДанных)
|
Функция ZipCDH(CRC32, РазмерСжатыхДанных, РазмерНесжатыхДанных)
|
||||||
|
|
||||||
// Central directory header
|
// Central directory header
|
||||||
Буфер = Новый БуферДвоичныхДанных(ZipРазмерCDH());
|
Буфер = Новый БуферДвоичныхДанных(ZipРазмерCDH());
|
||||||
Буфер.ЗаписатьЦелое32(0, 33639248); // signature 0x02014b50
|
Буфер.ЗаписатьЦелое32(0, 33639248); // signature 0x02014b50
|
||||||
Буфер.ЗаписатьЦелое16(4, 798); // version made by
|
Буфер.ЗаписатьЦелое16(4, 798); // version made by
|
||||||
Буфер.ЗаписатьЦелое16(6, 20); // version needed to extract
|
Буфер.ЗаписатьЦелое16(6, 20); // version needed to extract
|
||||||
Буфер.ЗаписатьЦелое16(8, 10); // bit flags
|
Буфер.ЗаписатьЦелое16(8, 10); // bit flags
|
||||||
Буфер.ЗаписатьЦелое16(10, 8); // compression method
|
Буфер.ЗаписатьЦелое16(10, 8); // compression method
|
||||||
Буфер.ЗаписатьЦелое16(12, 0); // time
|
Буфер.ЗаписатьЦелое16(12, 0); // time
|
||||||
Буфер.ЗаписатьЦелое16(14, 0); // date
|
Буфер.ЗаписатьЦелое16(14, 0); // date
|
||||||
Буфер.ЗаписатьЦелое32(16, CRC32); // crc-32
|
Буфер.ЗаписатьЦелое32(16, CRC32); // crc-32
|
||||||
Буфер.ЗаписатьЦелое32(20, РазмерСжатыхДанных); // compressed size
|
Буфер.ЗаписатьЦелое32(20, РазмерСжатыхДанных); // compressed size
|
||||||
Буфер.ЗаписатьЦелое32(24, РазмерНесжатыхДанных); // uncompressed size
|
Буфер.ЗаписатьЦелое32(24, РазмерНесжатыхДанных); // uncompressed size
|
||||||
Буфер.ЗаписатьЦелое16(28, 4); // file name length
|
Буфер.ЗаписатьЦелое16(28, 4); // file name length
|
||||||
Буфер.ЗаписатьЦелое16(30, 0); // extra field length
|
Буфер.ЗаписатьЦелое16(30, 0); // extra field length
|
||||||
Буфер.ЗаписатьЦелое16(32, 0); // file comment length
|
Буфер.ЗаписатьЦелое16(32, 0); // file comment length
|
||||||
Буфер.ЗаписатьЦелое16(34, 0); // disk number start
|
Буфер.ЗаписатьЦелое16(34, 0); // disk number start
|
||||||
Буфер.ЗаписатьЦелое16(36, 0); // internal file attributes
|
Буфер.ЗаписатьЦелое16(36, 0); // internal file attributes
|
||||||
Буфер.ЗаписатьЦелое32(38, 2176057344); // external file attributes
|
Буфер.ЗаписатьЦелое32(38, 2176057344); // external file attributes
|
||||||
Буфер.ЗаписатьЦелое32(42, 0); // relative offset of local header
|
Буфер.ЗаписатьЦелое32(42, 0); // relative offset of local header
|
||||||
Буфер.Записать(46, ПолучитьБуферДвоичныхДанныхИзСтроки("data", "ascii", Ложь));
|
Буфер.Записать(46, ПолучитьБуферДвоичныхДанныхИзСтроки("data", "ascii", Ложь));
|
||||||
|
|
||||||
Возврат Буфер;
|
Возврат Буфер;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция ZipEOCD(РазмерСжатыхДанных)
|
Функция ZipEOCD(РазмерСжатыхДанных)
|
||||||
|
|
||||||
// End of central directory
|
// End of central directory
|
||||||
РазмерCDH = 50;
|
РазмерCDH = 50;
|
||||||
Буфер = Новый БуферДвоичныхДанных(ZipРазмерEOCD());
|
Буфер = Новый БуферДвоичныхДанных(ZipРазмерEOCD());
|
||||||
Буфер.ЗаписатьЦелое32(0, 101010256); // signature 0x06054b50
|
Буфер.ЗаписатьЦелое32(0, 101010256); // signature 0x06054b50
|
||||||
Буфер.ЗаписатьЦелое16(4, 0); // number of this disk
|
Буфер.ЗаписатьЦелое16(4, 0); // number of this disk
|
||||||
Буфер.ЗаписатьЦелое16(6, 0); // number of the disk with the start of the central directory
|
Буфер.ЗаписатьЦелое16(6, 0); // number of the disk with the start of the central directory
|
||||||
Буфер.ЗаписатьЦелое16(8, 1); // total number of entries in the central directory on this disk
|
Буфер.ЗаписатьЦелое16(8, 1); // total number of entries in the central directory on this disk
|
||||||
Буфер.ЗаписатьЦелое16(10, 1); // total number of entries in the central directory
|
Буфер.ЗаписатьЦелое16(10, 1); // total number of entries in the central directory
|
||||||
Буфер.ЗаписатьЦелое32(12, РазмерCDH); // size of the central directory
|
Буфер.ЗаписатьЦелое32(12, РазмерCDH); // size of the central directory
|
||||||
// offset of start of central directory with respect to the starting disk number
|
// offset of start of central directory with respect to the starting disk number
|
||||||
Буфер.ЗаписатьЦелое32(16, ZipРазмерLFH() + РазмерСжатыхДанных + ZipРазмерDD());
|
Буфер.ЗаписатьЦелое32(16, ZipРазмерLFH() + РазмерСжатыхДанных + ZipРазмерDD());
|
||||||
Буфер.ЗаписатьЦелое16(20, 0); // the starting disk number
|
Буфер.ЗаписатьЦелое16(20, 0); // the starting disk number
|
||||||
|
|
||||||
Возврат Буфер;
|
Возврат Буфер;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user