1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-06-21 00:29:52 +02:00

Рефакторинг VK и TG, доработка приведения к типам

This commit is contained in:
Anton
2024-03-31 17:12:59 +03:00
parent 9b1a8e88bb
commit 2aa98d6e79
8 changed files with 176 additions and 154 deletions

View File

@ -88,6 +88,7 @@
СоответствиеПЗ.Вставить("item" , "1"); СоответствиеПЗ.Вставить("item" , "1");
СоответствиеПЗ.Вставить("sellgroup" , "1"); СоответствиеПЗ.Вставить("sellgroup" , "1");
СоответствиеПЗ.Вставить("sels" , "['1111111','2222222']"); СоответствиеПЗ.Вставить("sels" , "['1111111','2222222']");
СоответствиеПЗ.Вставить("posts" , "['1111111','2222222']");
СоответствиеПЗ.Вставить("main" , "false"); СоответствиеПЗ.Вставить("main" , "false");
СоответствиеПЗ.Вставить("hidden" , "false"); СоответствиеПЗ.Вставить("hidden" , "false");
СоответствиеПЗ.Вставить("prop" , "1"); СоответствиеПЗ.Вставить("prop" , "1");

View File

@ -123,7 +123,7 @@
// Токен - Строка - Токен бота - token // Токен - Строка - Токен бота - token
// IDЧата - Строка,Число - ID целевого чата или IDЧата*IDТемы - chat // IDЧата - Строка,Число - ID целевого чата или IDЧата*IDТемы - chat
// Текст - Строка - Текст сообщения - text // Текст - Строка - Текст сообщения - text
// Клавиатура - Строка - См. СформироватьКлавиатуруПоМассивуКнопок - keyboard - Текст // Клавиатура - Строка - См. СформироватьКлавиатуруПоМассивуКнопок - keyboard
// //
// Возвращаемое значение: // Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram // Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
@ -132,7 +132,7 @@
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен); OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата); OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст); OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Клавиатура); OPI_ПреобразованиеТипов.ПолучитьСтроку(Клавиатура, Истина);
OPI_Инструменты.ЗаменитьСпецСимволы(Текст); OPI_Инструменты.ЗаменитьСпецСимволы(Текст);
@ -158,7 +158,7 @@
// IDЧата - Строка,Число - ID целевого чата или IDЧата*IDТемы - chat // IDЧата - Строка,Число - ID целевого чата или IDЧата*IDТемы - chat
// Текст - Строка - Текст сообщения - text // Текст - Строка - Текст сообщения - text
// Картинка - ДвоичныеДанные,Строка - Файл картинки - picture // Картинка - ДвоичныеДанные,Строка - Файл картинки - picture
// Клавиатура - Строка - См. СформироватьКлавиатуруПоМассивуКнопок - keyboard - Текст // Клавиатура - Строка - См. СформироватьКлавиатуруПоМассивуКнопок - keyboard
// //
// Возвращаемое значение: // Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram // Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
@ -176,7 +176,7 @@
// IDЧата - Строка,Число - ID целевого чата или IDЧата*IDТемы - chat // IDЧата - Строка,Число - ID целевого чата или IDЧата*IDТемы - chat
// Текст - Строка - Текст сообщения - text // Текст - Строка - Текст сообщения - text
// Видео - ДвоичныеДанные,Строка - Файл видео - video // Видео - ДвоичныеДанные,Строка - Файл видео - video
// Клавиатура - Строка - См. СформироватьКлавиатуруПоМассивуКнопок - keyboard - Текст // Клавиатура - Строка - См. СформироватьКлавиатуруПоМассивуКнопок - keyboard
// //
// Возвращаемое значение: // Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram // Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
@ -194,7 +194,7 @@
// IDЧата - Строка,Число - ID целевого чата или IDЧата*IDТемы - chat // IDЧата - Строка,Число - ID целевого чата или IDЧата*IDТемы - chat
// Текст - Строка - Текст сообщения - text // Текст - Строка - Текст сообщения - text
// Аудио - ДвоичныеДанные,Строка - Файл аудио - audio // Аудио - ДвоичныеДанные,Строка - Файл аудио - audio
// Клавиатура - Строка - См. СформироватьКлавиатуруПоМассивуКнопок - keyboard - Текст // Клавиатура - Строка - См. СформироватьКлавиатуруПоМассивуКнопок - keyboard
// //
// Возвращаемое значение: // Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram // Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
@ -212,7 +212,7 @@
// IDЧата - Строка,Число - ID целевого чата или IDЧата*IDТемы - chat // IDЧата - Строка,Число - ID целевого чата или IDЧата*IDТемы - chat
// Текст - Строка - Текст сообщения - text // Текст - Строка - Текст сообщения - text
// Документ - ДвоичныеДанные,Строка - Файл документа - doc // Документ - ДвоичныеДанные,Строка - Файл документа - doc
// Клавиатура - Строка - См. СформироватьКлавиатуруПоМассивуКнопок - keyboard - Текст // Клавиатура - Строка - См. СформироватьКлавиатуруПоМассивуКнопок - keyboard
// //
// Возвращаемое значение: // Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram // Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
@ -230,7 +230,7 @@
// IDЧата - Строка,Число - ID целевого чата или IDЧата*IDТемы - chat // IDЧата - Строка,Число - ID целевого чата или IDЧата*IDТемы - chat
// Текст - Строка - Текст сообщения - text // Текст - Строка - Текст сообщения - text
// Гифка - ДвоичныеДанные,Строка - Файл гифки - gif // Гифка - ДвоичныеДанные,Строка - Файл гифки - gif
// Клавиатура - Строка - См. СформироватьКлавиатуруПоМассивуКнопок - keyboard - Текст // Клавиатура - Строка - См. СформироватьКлавиатуруПоМассивуКнопок - keyboard
// //
// Возвращаемое значение: // Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram // Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
@ -270,7 +270,7 @@
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен); OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата); OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст); OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Клавиатура); OPI_ПреобразованиеТипов.ПолучитьСтроку(Клавиатура, Истина);
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(СоответствиеФайлов); OPI_ПреобразованиеТипов.ПолучитьКоллекцию(СоответствиеФайлов);
OPI_Инструменты.ЗаменитьСпецсимволы(Текст); OPI_Инструменты.ЗаменитьСпецсимволы(Текст);
@ -313,7 +313,7 @@
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата); OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Широта); OPI_ПреобразованиеТипов.ПолучитьСтроку(Широта);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Долгота); OPI_ПреобразованиеТипов.ПолучитьСтроку(Долгота);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Клавиатура); OPI_ПреобразованиеТипов.ПолучитьСтроку(Клавиатура, Истина);
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата); IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
URL = "api.telegram.org/bot" + Токен + "/sendLocation"; URL = "api.telegram.org/bot" + Токен + "/sendLocation";
@ -341,7 +341,7 @@
// Имя - Строка - Имя контакта - name // Имя - Строка - Имя контакта - name
// Фамилия - Строка - Фамилия контакта - surname // Фамилия - Строка - Фамилия контакта - surname
// Телефон - Строка - Телефон контакта - phone // Телефон - Строка - Телефон контакта - phone
// Клавиатура - Строка - См. СформироватьКлавиатуруПоМассивуКнопок - keyboard - Текст // Клавиатура - Строка - См. СформироватьКлавиатуруПоМассивуКнопок - keyboard
// //
// Возвращаемое значение: // Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram // Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
@ -352,7 +352,7 @@
OPI_ПреобразованиеТипов.ПолучитьСтроку(Имя); OPI_ПреобразованиеТипов.ПолучитьСтроку(Имя);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Фамилия); OPI_ПреобразованиеТипов.ПолучитьСтроку(Фамилия);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Телефон); OPI_ПреобразованиеТипов.ПолучитьСтроку(Телефон);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Клавиатура); OPI_ПреобразованиеТипов.ПолучитьСтроку(Клавиатура, Истина);
URL = "api.telegram.org/bot" + Токен + "/sendContact"; URL = "api.telegram.org/bot" + Токен + "/sendContact";
@ -396,13 +396,10 @@
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Чата, Параметры_);
@ -431,6 +428,7 @@
OPI_ПреобразованиеТипов.ПолучитьСтроку(КудаID); OPI_ПреобразованиеТипов.ПолучитьСтроку(КудаID);
URL = "api.telegram.org/bot" + Токен + "/forwardMessage"; URL = "api.telegram.org/bot" + Токен + "/forwardMessage";
Параметры_ = Новый Структура; Параметры_ = Новый Структура;
Параметры_.Вставить("from_chat_id", ОткудаID); Параметры_.Вставить("from_chat_id", ОткудаID);
Параметры_.Вставить("message_id" , IDОригинала); Параметры_.Вставить("message_id" , IDОригинала);
@ -531,6 +529,7 @@
OPI_ПреобразованиеТипов.ПолучитьДату(ДатаИстечения); OPI_ПреобразованиеТипов.ПолучитьДату(ДатаИстечения);
URL = "api.telegram.org/bot" + Токен + "/createChatInviteLink"; URL = "api.telegram.org/bot" + Токен + "/createChatInviteLink";
Параметры_ = Новый Структура; Параметры_ = Новый Структура;
Параметры_.Вставить("parse_mode", "Markdown"); Параметры_.Вставить("parse_mode", "Markdown");
Параметры_.Вставить("chat_id" , IDЧата); Параметры_.Вставить("chat_id" , IDЧата);
@ -566,6 +565,7 @@
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDСообщения); OPI_ПреобразованиеТипов.ПолучитьСтроку(IDСообщения);
URL = "api.telegram.org/bot" + Токен + "/pinChatMessage"; URL = "api.telegram.org/bot" + Токен + "/pinChatMessage";
Параметры_ = Новый Структура; Параметры_ = Новый Структура;
Параметры_.Вставить("parse_mode" , "Markdown"); Параметры_.Вставить("parse_mode" , "Markdown");
Параметры_.Вставить("chat_id" , IDЧата); Параметры_.Вставить("chat_id" , IDЧата);
@ -595,6 +595,7 @@
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDСообщения); OPI_ПреобразованиеТипов.ПолучитьСтроку(IDСообщения);
URL = "api.telegram.org/bot" + Токен + "/unpinChatMessage"; URL = "api.telegram.org/bot" + Токен + "/unpinChatMessage";
Параметры_ = Новый Структура; Параметры_ = Новый Структура;
Параметры_.Вставить("parse_mode", "Markdown"); Параметры_.Вставить("parse_mode", "Markdown");
Параметры_.Вставить("chat_id" , IDЧата); Параметры_.Вставить("chat_id" , IDЧата);
@ -621,6 +622,7 @@
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата); OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
URL = "api.telegram.org/bot" + Токен + "/getChatMemberCount"; URL = "api.telegram.org/bot" + Токен + "/getChatMemberCount";
Параметры_ = Новый Структура; Параметры_ = Новый Структура;
Параметры_.Вставить("parse_mode", "Markdown"); Параметры_.Вставить("parse_mode", "Markdown");
Параметры_.Вставить("chat_id" , IDЧата); Параметры_.Вставить("chat_id" , IDЧата);
@ -720,6 +722,7 @@
Result = "result"; Result = "result";
URL = "api.telegram.org/bot" + Токен + "/getForumTopicIconStickers"; URL = "api.telegram.org/bot" + Токен + "/getForumTopicIconStickers";
Ответ = OPI_Инструменты.Get(URL); Ответ = OPI_Инструменты.Get(URL);
Иконки = Ответ[Result]; Иконки = Ответ[Result];
Коллекция = Новый Соответствие; Коллекция = Новый Соответствие;
@ -851,11 +854,12 @@
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата); OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Заголовок); OPI_ПреобразованиеТипов.ПолучитьСтроку(Заголовок);
URL = "api.telegram.org/bot" + Токен + "/editGeneralForumTopic";
Параметры_ = Новый Структура; Параметры_ = Новый Структура;
Параметры_.Вставить("chat_id", IDЧата); Параметры_.Вставить("chat_id", IDЧата);
Параметры_.Вставить("name" , Заголовок); Параметры_.Вставить("name" , Заголовок);
URL = "api.telegram.org/bot" + Токен + "/editGeneralForumTopic";
Ответ = OPI_Инструменты.Get(URL, Параметры_); Ответ = OPI_Инструменты.Get(URL, Параметры_);
Возврат Ответ; Возврат Ответ;
@ -931,13 +935,9 @@
СтруктураПараметра = Новый Структура("keyboard,resize_keyboard", Строки, Истина); СтруктураПараметра = Новый Структура("keyboard,resize_keyboard", Строки, Истина);
КонецЕсли; КонецЕсли;
ЗаписьJSON = Новый ЗаписьJSON; Клавиатура = OPI_Инструменты.JSONСтрокой(СтруктураПараметра);
ПЗJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Нет, , , ЭкранированиеСимволовJSON.СимволыВнеASCII);
ЗаписьJSON.УстановитьСтроку(ПЗJSON);
ЗаписатьJSON(ЗаписьJSON, СтруктураПараметра); Возврат Клавиатура;
Возврат ЗаписьJSON.Закрыть();
КонецФункции КонецФункции
@ -953,7 +953,7 @@
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата); OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст); OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Вид); OPI_ПреобразованиеТипов.ПолучитьСтроку(Вид);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Клавиатура); OPI_ПреобразованиеТипов.ПолучитьСтроку(Клавиатура, Истина);
Расширение = ""; Расширение = "";
Метод = ""; Метод = "";

View File

@ -92,14 +92,6 @@
Параметры_ = ПолучитьСтандартныеПараметры(Параметры); Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
СтрокаВложений = ""; СтрокаВложений = "";
Если Не ТипЗнч(МассивКартинок) = Тип("Массив") Тогда
ОднаКартинка = МассивКартинок;
МассивКартинок = Новый Массив;
МассивКартинок.Добавить(ОднаКартинка);
КонецЕсли;
Для Каждого КартинкаПоста Из МассивКартинок Цикл Для Каждого КартинкаПоста Из МассивКартинок Цикл
Параметры_ = ПолучитьСтандартныеПараметры(Параметры); Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
@ -168,33 +160,11 @@
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(МассивОтветов); OPI_ПреобразованиеТипов.ПолучитьКоллекцию(МассивОтветов);
Параметры_ = ПолучитьСтандартныеПараметры(Параметры); Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
Ответ = OPI_Инструменты.Get("api.vk.com/method/polls.getPhotoUploadServer", Параметры_);
Response = "response"; Response = "response";
Hash = "hash";
Photo = "photo";
URL = Ответ[Response]["upload_url"];
IDФото = "";
Параметры_.Вставить("upload_url", URL);
Если ЗначениеЗаполнено(Картинка) Тогда Если ЗначениеЗаполнено(Картинка) Тогда
Если ТипЗнч(Картинка) = Тип("Строка") Тогда Ответ = ЗагрузитьФотоНаСервер(Картинка, Параметры, "Опрос");
Путь = Картинка;
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка);
Иначе
Путь = ("image.jpeg");
КонецЕсли;
Файлы = Новый Соответствие;
Файлы.Вставить(Путь, Картинка);
Ответ = OPI_Инструменты.PostMultipart(URL, Параметры_, Файлы);
Параметры_.Вставить(Hash , Ответ[Hash]);
Параметры_.Вставить(Photo, Ответ[Photo]);
Ответ = OPI_Инструменты.Get("api.vk.com/method/polls.savePhoto", Параметры_);
IDФото = Ответ.Получить(Response)["id"]; IDФото = Ответ.Получить(Response)["id"];
КонецЕсли; КонецЕсли;
@ -202,22 +172,8 @@
Параметры_.Вставить("is_anonymous", 1); Параметры_.Вставить("is_anonymous", 1);
Параметры_.Вставить("is_multiple" , 0); Параметры_.Вставить("is_multiple" , 0);
Ответы = "["; Ответы = СтрСоединить(МассивОтветов, """,""");
Первый = Истина; Ответы = "[""" + Ответы + """]";
Для Каждого Ответ Из МассивОтветов Цикл
Если Первый Тогда
Первый = Ложь;
Иначе
Ответы = Ответы + ", ";
КонецЕсли;
Ответы = Ответы + """" + Ответ + """";
КонецЦикла;
Ответы = Ответы + "]";
Параметры_.Вставить("add_answers", Ответы); Параметры_.Вставить("add_answers", Ответы);
Параметры_.Вставить("photo_id" , OPI_Инструменты.ЧислоВСтроку(IDФото)); Параметры_.Вставить("photo_id" , OPI_Инструменты.ЧислоВСтроку(IDФото));
@ -657,8 +613,8 @@
Параметры_ = ПолучитьСтандартныеПараметры(Параметры); Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
ДатаНачала = Формат(ДатаНачала - Дата(1970, 1, 1, 1, 0, 0), "ЧГ=0"); ДатаНачала = OPI_Инструменты.UNIXTime(ДатаНачала);
ДатаОкончания = Формат(ДатаОкончания - дата(1970, 1, 1, 1, 0, 0), "ЧГ=0"); ДатаОкончания = OPI_Инструменты.UNIXTime(ДатаОкончания);;
Параметры_.Вставить("timestamp_from", ДатаНачала); Параметры_.Вставить("timestamp_from", ДатаНачала);
Параметры_.Вставить("timestamp_to" , ДатаОкончания); Параметры_.Вставить("timestamp_to" , ДатаОкончания);
@ -747,12 +703,14 @@
OPI_ПреобразованиеТипов.ПолучитьСтроку(Наименование); OPI_ПреобразованиеТипов.ПолучитьСтроку(Наименование);
ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату(); ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату();
КонечнаяДата = ДобавитьМесяц(ТекущаяДата, 24);
Параметры_ = ПолучитьСтандартныеПараметры(Параметры); Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
Параметры_.Вставить("account_id", IDКабинета); Параметры_.Вставить("account_id", IDКабинета);
МассивСтруктур = Новый Массив; МассивСтруктур = Новый Массив;
ДатаСтарт = Формат(ТекущаяДата - Дата(1970, 1, 1, 1, 0, 0), "ЧГ=0"); ДатаСтарт = OPI_Инструменты.UNIXTime(ТекущаяДата);
ДатаСтоп = Формат(ДобавитьМесяц(ТекущаяДата, 24) - Дата(1970, 1, 1, 1, 0, 0), "ЧГ=0"); ДатаСтоп = OPI_Инструменты.UNIXTime(КонечнаяДата);
СтруктураКампании = Новый Структура; СтруктураКампании = Новый Структура;
СтруктураКампании.Вставить("type" , "promoted_posts"); СтруктураКампании.Вставить("type" , "promoted_posts");
@ -796,7 +754,6 @@
, Знач Параметры = "") Экспорт , Знач Параметры = "") Экспорт
Параметры_ = ПолучитьСтандартныеПараметры(Параметры); Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
GroupId = Параметры_["group_id"]; GroupId = Параметры_["group_id"];
OPI_ПреобразованиеТипов.ПолучитьСтроку(GroupId); OPI_ПреобразованиеТипов.ПолучитьСтроку(GroupId);
@ -975,12 +932,6 @@
СтрокаТоваров = ""; СтрокаТоваров = "";
Owner = "owner_id"; Owner = "owner_id";
Если ТипЗнч(Товары) <> Тип("Массив") Тогда
Товар = Товары;
Товары = Новый Массив;
Товары.Добавить(Товар);
КонецЕсли;
Для Каждого Товар Из Товары Цикл Для Каждого Товар Из Товары Цикл
ТекущийТовар = Параметры_[Owner] + "_" + Товар; ТекущийТовар = Параметры_[Owner] + "_" + Товар;
ТекущийТовар = OPI_Инструменты.ЧислоВСтроку(ТекущийТовар); ТекущийТовар = OPI_Инструменты.ЧислоВСтроку(ТекущийТовар);
@ -1207,24 +1158,15 @@
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Подборки); OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Подборки);
Параметры_ = ПолучитьСтандартныеПараметры(Параметры); Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
Подборки_ = Новый Массив;
СтрокаПодборок = ""; СтрокаПодборок = "";
Если ТипЗнч(Подборки) <> Тип("Массив") Тогда
Подборка = Подборки;
Подборки = Новый Массив;
Подборки.Добавить(Подборка);
КонецЕсли;
Для Каждого Подборка Из Подборки Цикл Для Каждого Подборка Из Подборки Цикл
Подборки_.Добавить(OPI_Инструменты.ЧислоВСтроку(Подборка));
ТекущаяПодборка = OPI_Инструменты.ЧислоВСтроку(Подборка);
СтрокаПодборок = СтрокаПодборок + ТекущаяПодборка + ",";
КонецЦикла; КонецЦикла;
СтрокаПодборок = Лев(СтрокаПодборок, СтрДлина(СтрокаПодборок) - 1); СтрокаПодборок = СтрСоединить(Подборки_, ",");
Параметры_.Вставить("album_ids", СтрокаПодборок); Параметры_.Вставить("album_ids", СтрокаПодборок);
Ответ = OPI_Инструменты.Get("api.vk.com/method/market.getAlbumById", Параметры_); Ответ = OPI_Инструменты.Get("api.vk.com/method/market.getAlbumById", Параметры_);
@ -1330,7 +1272,6 @@
OPI_ПреобразованиеТипов.ПолучитьСтроку(Подборка); OPI_ПреобразованиеТипов.ПолучитьСтроку(Подборка);
Параметры_ = ПолучитьСтандартныеПараметры(Параметры); Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
Подборка = OPI_Инструменты.ЧислоВСтроку(Подборка);
Параметры_.Вставить("item_id" , Товар); Параметры_.Вставить("item_id" , Товар);
Параметры_.Вставить("album_ids", Подборка); Параметры_.Вставить("album_ids", Подборка);
@ -1640,9 +1581,11 @@
Функция ЗагрузитьФотоНаСервер(Знач Картинка, Знач Параметры, Знач Вид = "Пост") Функция ЗагрузитьФотоНаСервер(Знач Картинка, Знач Параметры, Знач Вид = "Пост")
Попытка Попытка
Response = "response";
Файлы = Новый Соответствие;
Метод = ОпределитьМетодЗагрузкиИзображений(Вид); Метод = ОпределитьМетодЗагрузкиИзображений(Вид);
Файлы = Новый Соответствие;
Response = "response";
URL = "api.vk.com/method/"; URL = "api.vk.com/method/";
Загрузка = URL + Метод["Загрузка"]; Загрузка = URL + Метод["Загрузка"];
Сохранение = URL + Метод["Сохранение"]; Сохранение = URL + Метод["Сохранение"];
@ -1668,7 +1611,11 @@
Возврат Ответ; Возврат Ответ;
Исключение Исключение
ВызватьИсключение ?(ЗначениеЗаполнено(Ответ), OPI_Инструменты.JSONСтрокой(Ответ), ОписаниеОшибки()); Если ЗначениеЗаполнено(Ответ) Тогда
Возврат Ответ;
Иначе
ВызватьИсключение ОписаниеОшибки();
КонецЕсли;
КонецПопытки; КонецПопытки;
КонецФункции КонецФункции
@ -1700,6 +1647,12 @@
СоответствиеМетодов.Вставить(Сохранение, "stories.save"); СоответствиеМетодов.Вставить(Сохранение, "stories.save");
СоответствиеМетодов.Вставить(Способ , 3); СоответствиеМетодов.Вставить(Способ , 3);
ИначеЕсли Вид = "Опрос" Тогда
СоответствиеМетодов.Вставить(Загрузка , "polls.getPhotoUploadServer");
СоответствиеМетодов.Вставить(Сохранение, "polls.savePhoto");
СоответствиеМетодов.Вставить(Способ , 1);
Иначе Иначе
СоответствиеМетодов.Вставить(Загрузка , "photos.getUploadServer"); СоответствиеМетодов.Вставить(Загрузка , "photos.getUploadServer");
@ -1841,16 +1794,20 @@
Aid = "aid"; Aid = "aid";
Фото = Метод["Фото"]; Фото = Метод["Фото"];
СерверФото = OPI_Инструменты.ЧислоВСтроку(Ответ[Serv]);
Параметры.Вставить(Hash, Ответ[Hash]); Параметры.Вставить(Hash, Ответ[Hash]);
Параметры.Вставить(Фото, Ответ[Фото]); Параметры.Вставить(Фото, Ответ[Фото]);
СерверФото = Ответ.Получить(Serv);
Если ЗначениеЗаполнено(СерверФото) Тогда
СерверФото = OPI_Инструменты.ЧислоВСтроку(СерверФото);
Параметры.Вставить(Serv, СерверФото); Параметры.Вставить(Serv, СерверФото);
КонецЕсли;
Идентификатор = Ответ.Получить(Aid); Идентификатор = Ответ.Получить(Aid);
Идентификатор = OPI_Инструменты.ЧислоВСтроку(Идентификатор);
Если ЗначениеЗаполнено(Идентификатор) Тогда Если ЗначениеЗаполнено(Идентификатор) Тогда
Идентификатор = OPI_Инструменты.ЧислоВСтроку(Идентификатор);
Параметры.Вставить(Aid , Идентификатор); Параметры.Вставить(Aid , Идентификатор);
КонецЕсли; КонецЕсли;

View File

@ -245,8 +245,14 @@
Функция JSONСтрокой(Знач Данные) Экспорт Функция JSONСтрокой(Знач Данные) Экспорт
ПараметрыJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Windows, " ", Истина, ЭкранированиеСимволовJSON.Нет, ПараметрыJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Windows
Ложь, Ложь, Ложь, Ложь); , " "
, Истина
, ЭкранированиеСимволовJSON.СимволыВнеASCII
, Ложь
, Ложь
, Ложь
, Ложь);
ЗаписьJSON = Новый ЗаписьJSON; ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку(ПараметрыJSON); ЗаписьJSON.УстановитьСтроку(ПараметрыJSON);

View File

@ -1,3 +1,33 @@
// MIT License
// Copyright (c) 2023 Anton Tsitavets
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
// https://github.com/Bayselonarrend/OpenIntegrations
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
// BSLLS:UnusedLocalVariable-off
// #Использовать "./internal"
#Область СлужебныйПрограммныйИнтерфейс #Область СлужебныйПрограммныйИнтерфейс
Процедура ПолучитьДвоичныеДанные(Значение) Экспорт Процедура ПолучитьДвоичныеДанные(Значение) Экспорт
@ -46,6 +76,12 @@
Возврат; Возврат;
Иначе Иначе
Если ТипЗнч(Значение) = Тип("ДвоичныеДанные") Тогда
Значение = ПолучитьСтрокуИзДвоичныхДанных(Значение);
Иначе
Значение = OPI_Инструменты.ЧислоВСтроку(Значение);
КонецЕсли;
Файл = Новый Файл(Значение); Файл = Новый Файл(Значение);
ЧтениеJSON = Новый ЧтениеJSON; ЧтениеJSON = Новый ЧтениеJSON;
@ -54,7 +90,7 @@
ЧтениеJSON.ОткрытьФайл(Значение); ЧтениеJSON.ОткрытьФайл(Значение);
ЧтениеJSON.Прочитать(); ЧтениеJSON.Прочитать();
ИначеЕсли СтрНайти(Значение, "://") Тогда ИначеЕсли СтрНачинаетсяС(нРег(Значение), "http") Тогда
ИВФ = ПолучитьИмяВременногоФайла(); ИВФ = ПолучитьИмяВременногоФайла();
КопироватьФайл(Значение, ИВФ); КопироватьФайл(Значение, ИВФ);
@ -76,7 +112,9 @@
Исключение Исключение
Если ТипЗнч(Значение) = Тип("Строка") И СтрНайти(Значение, "[") > 0 Тогда Если ТипЗнч(Значение) = Тип("Строка")
И СтрНачинаетсяС(Значение, "[")
И СтрЗаканчиваетсяНа(Значение, "]") Тогда
Значение = СтрЗаменить(Значение, "['" , ""); Значение = СтрЗаменить(Значение, "['" , "");
Значение = СтрЗаменить(Значение, "']" , ""); Значение = СтрЗаменить(Значение, "']" , "");
@ -118,17 +156,17 @@
Процедура ПолучитьСтроку(Значение, Знач ИзИсточника = Ложь) Экспорт Процедура ПолучитьСтроку(Значение, Знач ИзИсточника = Ложь) Экспорт
Если Не ИзИсточника Тогда
Значение = OPI_Инструменты.ЧислоВСтроку(Значение);
Возврат;
КонецЕсли;
Попытка Попытка
Если ТипЗнч(Значение) = Тип("Строка") Если ТипЗнч(Значение) = Тип("Строка")
Или ТипЗнч(Значение) = Тип("Число") Или ТипЗнч(Значение) = Тип("Число")
Или ТипЗнч(Значение) = Тип("Дата") Тогда Или ТипЗнч(Значение) = Тип("Дата") Тогда
Если Не ИзИсточника Тогда
Значение = OPI_Инструменты.ЧислоВСтроку(Значение);
Возврат;
КонецЕсли;
Значение = OPI_Инструменты.ЧислоВСтроку(Значение); Значение = OPI_Инструменты.ЧислоВСтроку(Значение);
Файл = Новый Файл(Значение); Файл = Новый Файл(Значение);
@ -138,7 +176,7 @@
Значение = ЧтениеТекста.Прочитать(); Значение = ЧтениеТекста.Прочитать();
ЧтениеТекста.Закрыть(); ЧтениеТекста.Закрыть();
ИначеЕсли СтрНайти(Значение, "://") Тогда ИначеЕсли СтрНачинаетсяС(нРег(Значение), "http") Тогда
ИВФ = ПолучитьИмяВременногоФайла(); ИВФ = ПолучитьИмяВременногоФайла();
КопироватьФайл(Значение, ИВФ); КопироватьФайл(Значение, ИВФ);

View File

@ -13,7 +13,7 @@
Процедура ОсновнойОбработчик() Процедура ОсновнойОбработчик()
Отладка = Истина; Отладка = Ложь;
Парсер = Новый ПарсерАргументовКоманднойСтроки(); Парсер = Новый ПарсерАргументовКоманднойСтроки();
ОбъектОПИ = Новый СвязьОПИ(); ОбъектОПИ = Новый СвязьОПИ();
Команды = ОбъектОПИ.СоответствиеКомандМодулей; Команды = ОбъектОПИ.СоответствиеКомандМодулей;
@ -40,6 +40,7 @@
Парсер.ДобавитьПараметр("-h"); Парсер.ДобавитьПараметр("-h");
Парсер.ДобавитьПараметр("-help"); Парсер.ДобавитьПараметр("-help");
Парсер.ДобавитьПараметр("--help"); Парсер.ДобавитьПараметр("--help");
Парсер.ДобавитьПараметр("--debug");
КонецПроцедуры КонецПроцедуры
@ -71,6 +72,20 @@
Параметры = Данные["ЗначенияПараметров"]; Параметры = Данные["ЗначенияПараметров"];
Вывод = ""; Вывод = "";
Если Параметры["--debug"] Тогда
Отладка = Истина;
Иначе
Отладка = Ложь;
КонецЕсли;
Если Отладка Тогда
Для каждого ВводныйПараметр Из Параметры Цикл
Сообщить(ВводныйПараметр.Ключ + " : " + ВводныйПараметр.Значение);
КонецЦикла;
КонецЕсли;
Попытка Попытка
Вывод = ПолучитьРезультатОбработки(ТекущаяКоманда, Параметры); Вывод = ПолучитьРезультатОбработки(ТекущаяКоманда, Параметры);

4
super_secret_data.json Normal file
View File

@ -0,0 +1,4 @@
{
"secret1":"11111111",
"secret2":"22222222"
}

View File

@ -0,0 +1 @@