You've already forked OpenIntegrations
mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-11-29 22:27:42 +02:00
Дополнение словарей
This commit is contained in:
6820
service/dictionaries/en.json
vendored
6820
service/dictionaries/en.json
vendored
File diff suppressed because it is too large
Load Diff
38
service/project.json
vendored
38
service/project.json
vendored
@@ -1,20 +1,20 @@
|
||||
{
|
||||
"version": "1.25.0",
|
||||
"root": "./src/",
|
||||
"mainLang": "ru",
|
||||
"packageSrc": "OInt/",
|
||||
"configurationSrc": "OPI/src/",
|
||||
"dictionariesSrc": "./service/dictionaries/",
|
||||
"workflowsSrc": "./.github/workflows/",
|
||||
"jenkinsSrc": "./ci/",
|
||||
"locVarsSrc": "./service/localization_vars/",
|
||||
"paramsExamplesSrc": "./service/params_examples/",
|
||||
"codeExamplesSrc": "./docs/ru/examples/",
|
||||
"testValuesSrc": "./docs/ru/data/",
|
||||
"testsModule": "./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os",
|
||||
"engineLinux": "C:/engine/linux",
|
||||
"engineWindows": "C:/engine/windows",
|
||||
"additionalLangs": [
|
||||
"en"
|
||||
]
|
||||
{
|
||||
"version": "1.25.0",
|
||||
"root": "./src/",
|
||||
"mainLang": "ru",
|
||||
"packageSrc": "OInt/",
|
||||
"configurationSrc": "OPI/src/",
|
||||
"dictionariesSrc": "./service/dictionaries/",
|
||||
"workflowsSrc": "./.github/workflows/",
|
||||
"jenkinsSrc": "./ci/",
|
||||
"locVarsSrc": "./service/localization_vars/",
|
||||
"paramsExamplesSrc": "./service/params_examples/",
|
||||
"codeExamplesSrc": "./docs/ru/examples/",
|
||||
"testValuesSrc": "./docs/ru/data/",
|
||||
"testsModule": "./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os",
|
||||
"engineLinux": "C:/engine/linux",
|
||||
"engineWindows": "C:/engine/windows",
|
||||
"additionalLangs": [
|
||||
"en"
|
||||
]
|
||||
}
|
||||
99
src/ru/OInt/core/Modules/OPI_Airtable.os
vendored
99
src/ru/OInt/core/Modules/OPI_Airtable.os
vendored
@@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_Airtable.os
|
||||
// OneScript: ./OInt/core/Modules/OPI_Airtable.os
|
||||
// Lib: Airtable
|
||||
// CLI: airtable
|
||||
// Keywords: airtable
|
||||
@@ -695,100 +695,3 @@
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
|
||||
#Region Alternate
|
||||
|
||||
Function GetListOfBases(Val Token, Val Indent = "") Export
|
||||
Return ПолучитьСписокБаз(Token, Indent);
|
||||
EndFunction
|
||||
|
||||
Function GetDatabaseTables(Val Token, Val Base) Export
|
||||
Return ПолучитьТаблицыБазы(Token, Base);
|
||||
EndFunction
|
||||
|
||||
Function CreateDatabase(Val Token, Val Workspace, Val Name, Val TableCollection) Export
|
||||
Return СоздатьБазу(Token, Workspace, Name, TableCollection);
|
||||
EndFunction
|
||||
|
||||
Function CreateTable(Val Token, Val Base, Val Name, Val FieldArray, Val Description = "") Export
|
||||
Return СоздатьТаблицу(Token, Base, Name, FieldArray, Description);
|
||||
EndFunction
|
||||
|
||||
Function ModifyTable(Val Token, Val Base, Val Table, Val Name = "", Val Description = "") Export
|
||||
Return ИзменитьТаблицу(Token, Base, Table, Name, Description);
|
||||
EndFunction
|
||||
|
||||
Function CreateField(Val Token, Val Base, Val Table, Val FieldStructure) Export
|
||||
Return СоздатьПоле(Token, Base, Table, FieldStructure);
|
||||
EndFunction
|
||||
|
||||
Function ModifyField(Val Token, Val Base, Val Table, Val Field, Val Name = "", Val Description = "") Export
|
||||
Return ИзменитьПоле(Token, Base, Table, Field, Name, Description);
|
||||
EndFunction
|
||||
|
||||
Function GetStringField(Val Name) Export
|
||||
Return ПолучитьПолеСтроковое(Name);
|
||||
EndFunction
|
||||
|
||||
Function GetNumberField(Val Name, Val Precision = 0) Export
|
||||
Return ПолучитьПолеНомера(Name, Precision);
|
||||
EndFunction
|
||||
|
||||
Function GetAttachmentField(Val Name) Export
|
||||
Return ПолучитьПолеВложения(Name);
|
||||
EndFunction
|
||||
|
||||
Function GetCheckboxField(Val Name) Export
|
||||
Return ПолучитьПолеФлажка(Name);
|
||||
EndFunction
|
||||
|
||||
Function GetDateField(Val Name) Export
|
||||
Return ПолучитьПолеДаты(Name);
|
||||
EndFunction
|
||||
|
||||
Function GetEmailField(Val Name) Export
|
||||
Return ПолучитьПолеПочты(Name);
|
||||
EndFunction
|
||||
|
||||
Function GetPhoneField(Val Name) Export
|
||||
Return ПолучитьПолеТелефона(Name);
|
||||
EndFunction
|
||||
|
||||
Function GetLinkField(Val Name) Export
|
||||
Return ПолучитьПолеСсылки(Name);
|
||||
EndFunction
|
||||
|
||||
Function GetListOfRecords(Val Token, Val Base, Val Table, Val Indent = "") Export
|
||||
Return ПолучитьСписокЗаписей(Token, Base, Table, Indent);
|
||||
EndFunction
|
||||
|
||||
Function GetRecord(Val Token, Val Base, Val Table, Val Record) Export
|
||||
Return ПолучитьЗапись(Token, Base, Table, Record);
|
||||
EndFunction
|
||||
|
||||
Function CreatePosts(Val Token, Val Base, Val Table, Val Data) Export
|
||||
Return СоздатьЗаписи(Token, Base, Table, Data);
|
||||
EndFunction
|
||||
|
||||
Function DeleteRecords(Val Token, Val Base, Val Table, Val Records) Export
|
||||
Return УдалитьЗаписи(Token, Base, Table, Records);
|
||||
EndFunction
|
||||
|
||||
Function GetComments(Val Token, Val Base, Val Table, Val Record, Val Indent = "") Export
|
||||
Return ПолучитьКомментарии(Token, Base, Table, Record, Indent);
|
||||
EndFunction
|
||||
|
||||
Function CreateComment(Val Token, Val Base, Val Table, Val Record, Val Text) Export
|
||||
Return СоздатьКомментарий(Token, Base, Table, Record, Text);
|
||||
EndFunction
|
||||
|
||||
Function EditComment(Val Token, Val Base, Val Table, Val Record, Val Comment, Val Text) Export
|
||||
Return ИзменитьКомментарий(Token, Base, Table, Record, Comment, Text);
|
||||
EndFunction
|
||||
|
||||
Function DeleteComment(Val Token, Val Base, Val Table, Val Record, Val Comment) Export
|
||||
Return УдалитьКомментарий(Token, Base, Table, Record, Comment);
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
723
src/ru/OInt/core/Modules/OPI_Bitrix24.os
vendored
723
src/ru/OInt/core/Modules/OPI_Bitrix24.os
vendored
@@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_Bitrix24.os
|
||||
// OneScript: ./OInt/core/Modules/OPI_Bitrix24.os
|
||||
// Lib: Bitrix24
|
||||
// CLI: bitrix24
|
||||
// Keywords: bitrix24, b24, bitrix
|
||||
@@ -5236,724 +5236,3 @@
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
|
||||
#Region Alternate
|
||||
|
||||
Function GetAppAuthLink(Val Domain, Val ClientID) Export
|
||||
Return ПолучитьСсылкуАвторизацииПриложения(Domain, ClientID);
|
||||
EndFunction
|
||||
|
||||
Function GetToken(Val ClientID, Val ClientSecret, Val Code) Export
|
||||
Return ПолучитьТокен(ClientID, ClientSecret, Code);
|
||||
EndFunction
|
||||
|
||||
Function RefreshToken(Val ClientID, Val ClientSecret, Val Refresh) Export
|
||||
Return ОбновитьТокен(ClientID, ClientSecret, Refresh);
|
||||
EndFunction
|
||||
|
||||
Function ServerTime(Val URL, Val Token = "") Export
|
||||
Return СерверноеВремя(URL, Token);
|
||||
EndFunction
|
||||
|
||||
Function CreatePost(Val URL, Val Text, Val Visibility = "UA", Val Files = "", Val Title = "", Val Important = False, Val Token = "") Export
|
||||
Return СоздатьНовость(URL, Text, Visibility, Files, Title, Important, Token);
|
||||
EndFunction
|
||||
|
||||
Function UpdatePost(Val URL, Val PostID, Val Text, Val Visibility = "UA", Val Files = "", Val Title = "", Val Token = "") Export
|
||||
Return ИзменитьНовость(URL, PostID, Text, Visibility, Files, Title, Token);
|
||||
EndFunction
|
||||
|
||||
Function DeletePost(Val URL, Val PostID, Val Token = "") Export
|
||||
Return УдалитьНовость(URL, PostID, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetImportantPostViewers(Val URL, Val PostID, Val Token = "") Export
|
||||
Return ПолучитьСписокПросмотревшихВажное(URL, PostID, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetPosts(Val URL, Val PostID = "", Val Filter = "UA", Val Token = "") Export
|
||||
Return ПолучитьНовости(URL, PostID, Filter, Token);
|
||||
EndFunction
|
||||
|
||||
Function AddPostComment(Val URL, Val PostID, Val Text, Val Token = "") Export
|
||||
Return ДобавитьКомментарийНовости(URL, PostID, Text, Token);
|
||||
EndFunction
|
||||
|
||||
Function AddPostRecipients(Val URL, Val PostID, Val Visibility, Val Token = "") Export
|
||||
Return ДобавитьПолучателейКНовости(URL, PostID, Visibility, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetTask(Val URL, Val TaskID, Val Token = "") Export
|
||||
Return ПолучитьЗадачу(URL, TaskID, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetTasksList(Val URL, Val Filter = "", Val Indent = 0, Val Token = "", Val Fields = "") Export
|
||||
Return ПолучитьСписокЗадач(URL, Filter, Indent, Token, Fields);
|
||||
EndFunction
|
||||
|
||||
Function CreateTask(Val URL, Val FieldsStructure, Val Token = "") Export
|
||||
Return СоздатьЗадачу(URL, FieldsStructure, Token);
|
||||
EndFunction
|
||||
|
||||
Function UpdateTask(Val URL, Val TaskID, Val FieldsStructure, Val Token = "") Export
|
||||
Return ИзменитьЗадачу(URL, TaskID, FieldsStructure, Token);
|
||||
EndFunction
|
||||
|
||||
Function DeleteTask(Val URL, Val TaskID, Val Token = "") Export
|
||||
Return УдалитьЗадачу(URL, TaskID, Token);
|
||||
EndFunction
|
||||
|
||||
Function AttachFileToTopic(Val URL, Val TaskID, Val FileID, Val Token = "") Export
|
||||
Return ДобавитьФайлВЗадачу(URL, TaskID, FileID, Token);
|
||||
EndFunction
|
||||
|
||||
Function ApproveTask(Val URL, Val TaskID, Val Token = "") Export
|
||||
Return ПринятьЗадачу(URL, TaskID, Token);
|
||||
EndFunction
|
||||
|
||||
Function DisapproveTask(Val URL, Val TaskID, Val Token = "") Export
|
||||
Return ОтклонитьЗадачу(URL, TaskID, Token);
|
||||
EndFunction
|
||||
|
||||
Function CompleteTask(Val URL, Val TaskID, Val Token = "") Export
|
||||
Return ЗавершитьЗадачу(URL, TaskID, Token);
|
||||
EndFunction
|
||||
|
||||
Function RenewTask(Val URL, Val TaskID, Val Token = "") Export
|
||||
Return ВозобновитьЗадачу(URL, TaskID, Token);
|
||||
EndFunction
|
||||
|
||||
Function DeferTask(Val URL, Val TaskID, Val Token = "") Export
|
||||
Return ОтложитьЗадачу(URL, TaskID, Token);
|
||||
EndFunction
|
||||
|
||||
Function PauseTask(Val URL, Val TaskID, Val Token = "") Export
|
||||
Return ПриостановитьЗадачу(URL, TaskID, Token);
|
||||
EndFunction
|
||||
|
||||
Function StartTask(Val URL, Val TaskID, Val Token = "") Export
|
||||
Return НачатьВыполнениеЗадачи(URL, TaskID, Token);
|
||||
EndFunction
|
||||
|
||||
Function StartWatchingTask(Val URL, Val TaskID, Val Token = "") Export
|
||||
Return НачатьНаблюдатьЗаЗадачей(URL, TaskID, Token);
|
||||
EndFunction
|
||||
|
||||
Function StopWatchingTask(Val URL, Val TaskID, Val Token = "") Export
|
||||
Return ПрекратитьНаблюдатьЗаЗадачей(URL, TaskID, Token);
|
||||
EndFunction
|
||||
|
||||
Function DelegateTask(Val URL, Val TaskID, Val UserID, Val Token = "") Export
|
||||
Return ДелегироватьЗадачу(URL, TaskID, UserID, Token);
|
||||
EndFunction
|
||||
|
||||
Function AddTaskToFavorites(Val URL, Val TaskID, Val Token = "") Export
|
||||
Return ДобавитьЗадачуВИзбранное(URL, TaskID, Token);
|
||||
EndFunction
|
||||
|
||||
Function RemoveTaskFromFavorites(Val URL, Val TaskID, Val Token = "") Export
|
||||
Return УбратьЗадачуИзИзбранного(URL, TaskID, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetTaskHistory(Val URL, Val TaskID, Val Token = "") Export
|
||||
Return ПолучитьИсториюЗадачи(URL, TaskID, Token);
|
||||
EndFunction
|
||||
|
||||
Function CheckTaskAccesses(Val URL, Val TaskID, Val Users = "", Val Token = "") Export
|
||||
Return ПроверитьДоступКЗадаче(URL, TaskID, Users, Token);
|
||||
EndFunction
|
||||
|
||||
Function MuteTask(Val URL, Val TaskID, Val Token = "") Export
|
||||
Return ОтключитьЗвукЗадачи(URL, TaskID, Token);
|
||||
EndFunction
|
||||
|
||||
Function UnmuteTask(Val URL, Val TaskID, Val Token = "") Export
|
||||
Return ВключитьЗвукЗадачи(URL, TaskID, Token);
|
||||
EndFunction
|
||||
|
||||
Function CreateTasksDependencies(Val URL, Val FromID, Val DestinationID, Val LinkType, Val Token = "") Export
|
||||
Return СоздатьЗависимостьЗадач(URL, FromID, DestinationID, LinkType, Token);
|
||||
EndFunction
|
||||
|
||||
Function DeleteTasksDependencies(Val URL, Val FromID, Val DestinationID, Val LinkType, Val Token = "") Export
|
||||
Return УдалитьЗависимостьЗадач(URL, FromID, DestinationID, LinkType, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetDailyPlan(Val URL, Val Token = "") Export
|
||||
Return ПолучитьПланЗадачНаДень(URL, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetTaskFieldsStructure(Val URL, Val Token = "") Export
|
||||
Return ПолучитьСтруктуруЗадачи(URL, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetTasksFilterStructure(Val Clear = False, Val AsMap = False) Export
|
||||
Return ПолучитьСтруктуруФильтраЗадач(Clear, AsMap);
|
||||
EndFunction
|
||||
|
||||
Function GetCustomTaskFieldsList(Val URL, Val Token = "") Export
|
||||
Return ПолучитьСписокПользовательскихПолейЗадачи(URL, Token);
|
||||
EndFunction
|
||||
|
||||
Function AddCustomTaskField(Val URL, Val Type, Val Name, Val ExternalID = "", Val Title = "", Val Signature = "", Val Token = "") Export
|
||||
Return ДобавитьПользовательскоеПолеЗадачи(URL, Type, Name, ExternalID, Title, Signature, Token);
|
||||
EndFunction
|
||||
|
||||
Function UpdateCustomTaskField(Val URL, Val FieldID, Val ExternalID = "", Val Title = "", Val Signature = "", Val Token = "") Export
|
||||
Return ИзменитьПользовательскоеПолеЗадачи(URL, FieldID, ExternalID, Title, Signature, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetCustomTaskField(Val URL, Val FieldID, Val Token = "") Export
|
||||
Return ПолучитьПользовательскоеПолеЗадачи(URL, FieldID, Token);
|
||||
EndFunction
|
||||
|
||||
Function DeleteCustomTaskField(Val URL, Val FieldID, Val Token = "") Export
|
||||
Return УдалитьПользовательскоеПолеЗадачи(URL, FieldID, Token);
|
||||
EndFunction
|
||||
|
||||
Function AddTasksChecklistElement(Val URL, Val TaskID, Val Text, Val Completed = False, Token = "") Export
|
||||
Return ДобавитьЭлементЧеклистаЗадачи(URL, TaskID, Text, Completed, Token);
|
||||
EndFunction
|
||||
|
||||
Function UpdateTasksChecklistElement(Val URL, Val TaskID, Val ElementID, Val Text, Val Token = "") Export
|
||||
Return ИзменитьЭлементЧеклистаЗадачи(URL, TaskID, ElementID, Text, Token);
|
||||
EndFunction
|
||||
|
||||
Function DeleteTasksChecklistElement(Val URL, Val TaskID, Val ElementID, Val Token = "") Export
|
||||
Return УдалитьЭлементЧеклистаЗадачи(URL, TaskID, ElementID, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetTasksChecklist(Val URL, Val TaskID, Val Token = "") Export
|
||||
Return ПолучитьЧеклистЗадачи(URL, TaskID, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetTasksChecklistElement(Val URL, Val TaskID, Val ElementID, Val Token = "") Export
|
||||
Return ПолучитьЭлементЧеклистаЗадачи(URL, TaskID, ElementID, Token);
|
||||
EndFunction
|
||||
|
||||
Function CompleteTasksChecklistElement(Val URL, Val TaskID, Val ElementID, Val Token = "") Export
|
||||
Return ВыполнитьЭлементЧеклистаЗадачи(URL, TaskID, ElementID, Token);
|
||||
EndFunction
|
||||
|
||||
Function RenewTasksChecklistElement(Val URL, Val TaskID, Val ElementID, Val Token = "") Export
|
||||
Return ВозобновитьЭлементЧеклистаЗадачи(URL, TaskID, ElementID, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetTaskCommentsList(Val URL, Val TaskID, Val Token = "") Export
|
||||
Return ПолучитьСписокКомментариевЗадачи(URL, TaskID, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetTaskComment(Val URL, Val TaskID, Val CommentID, Val Token = "") Export
|
||||
Return ПолучитьКомменатрийЗадачи(URL, TaskID, CommentID, Token);
|
||||
EndFunction
|
||||
|
||||
Function AddTaskComment(Val URL, Val TaskID, Val Text, Val Token = "") Export
|
||||
Return ДобавитьКомментарийЗадачи(URL, TaskID, Text, Token);
|
||||
EndFunction
|
||||
|
||||
Function UpdateTaskComment(Val URL, Val TaskID, Val CommentID, Val Text, Val Token = "") Export
|
||||
Return ИзменитьКомментарийЗадачи(URL, TaskID, CommentID, Text, Token);
|
||||
EndFunction
|
||||
|
||||
Function DeleteTaskComment(Val URL, Val TaskID, Val CommentID, Val Token = "") Export
|
||||
Return УдалитьКомментарийЗадачи(URL, TaskID, CommentID, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetResultsList(Val URL, Val TaskID, Val Token = "") Export
|
||||
Return ПолучитьСписокРезультатов(URL, TaskID, Token);
|
||||
EndFunction
|
||||
|
||||
Function CreateResultFromComment(Val URL, Val CommentID, Val Token = "") Export
|
||||
Return СоздатьРезультатИзКомментария(URL, CommentID, Token);
|
||||
EndFunction
|
||||
|
||||
Function DeleteResultFromComment(Val URL, Val CommentID, Val Token = "") Export
|
||||
Return УдалитьРезультатИзКомментария(URL, CommentID, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetCommentStructure(Val Clear = False) Export
|
||||
Return ПолучитьСтруктуруКомментария(Clear);
|
||||
EndFunction
|
||||
|
||||
Function AddKanbanStage(Val URL, Val Name, Val Color = "FFD800", Val PrevStageID = 0, Val EntityID = 0, Val AsAdmin = False, Val Token = "") Export
|
||||
Return ДобавитьСтадиюКанбана(URL, Name, Color, PrevStageID, EntityID, AsAdmin, Token);
|
||||
EndFunction
|
||||
|
||||
Function UpdateKanbansStage(Val URL, Val Name, Val StageID, Val Color = "", Val PrevStageID = 0, Val AsAdmin = False, Val Token = "") Export
|
||||
Return ИзменитьСтадиюКанбана(URL, Name, StageID, Color, PrevStageID, AsAdmin, Token);
|
||||
EndFunction
|
||||
|
||||
Function DeleteKanbanStage(Val URL, Val StageID, Val AsAdmin = False, Val Token = "") Export
|
||||
Return УдалитьСтадиюКанбана(URL, StageID, AsAdmin, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetKanbanStages(Val URL, Val EntityID = 0, Val AsAdmin = False, Val Token = "") Export
|
||||
Return ПолучитьСтадииКанбана(URL, EntityID, AsAdmin, Token);
|
||||
EndFunction
|
||||
|
||||
Function MoveTaskToKanbanStage(Val URL, Val TaskID, Val StageID, Val Prev = 0, Val After = 0, Val Token = "") Export
|
||||
Return ПеренестиЗадачуВСтадиюКанбана(URL, TaskID, StageID, Prev, After, Token);
|
||||
EndFunction
|
||||
|
||||
Function AddTaskTimeAccounting(Val URL, Val TaskID, Val Time, Val UserID = "", Val Text = "", Val SetupDate = "", Val Token = "") Export
|
||||
Return ДобавитьТрудозатратыЗадачи(URL, TaskID, Time, UserID, Text, SetupDate, Token);
|
||||
EndFunction
|
||||
|
||||
Function DeleteTaskTimeAccounting(Val URL, Val TaskID, Val RecordID, Val Token = "") Export
|
||||
Return УдалитьТрудозатратыЗадачи(URL, TaskID, RecordID, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetTaskTimeAccountingList(Val URL, Val TaskID, Val Token = "") Export
|
||||
Return ПолучитьСписокТрудозатратЗадачи(URL, TaskID, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetTaskTimeAccounting(Val URL, Val TaskID, Val RecordID, Val Token = "") Export
|
||||
Return ПолучитьТрудозатратыЗадачи(URL, TaskID, RecordID, Token);
|
||||
EndFunction
|
||||
|
||||
Function UpdateTaskTimeAccounting(Val URL, Val TaskID, Val RecordID, Val Time, Val Text = "", Val SetupDate = "", Val Token = "") Export
|
||||
Return ИзменитьТрудозатратыЗадачи(URL, TaskID, RecordID, Time, Text, SetupDate, Token);
|
||||
EndFunction
|
||||
|
||||
Function StartTimekeeping(Val URL, Val UserID = "", Val Time = "", Val Report = "", Val Token = "") Export
|
||||
Return НачатьУчетВремени(URL, UserID, Time, Report, Token);
|
||||
EndFunction
|
||||
|
||||
Function StopTimekeeping(Val URL, Val UserID = "", Val Time = "", Val Report = "", Val Token = "") Export
|
||||
Return ЗавершитьУчетВремени(URL, UserID, Time, Report, Token);
|
||||
EndFunction
|
||||
|
||||
Function PauseTimekeeping(Val URL, Val UserID = "", Val Token = "") Export
|
||||
Return ПриостановитьУчетВремени(URL, UserID, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetTimekeepingStatus(Val URL, Val UserID = "", Val Token = "") Export
|
||||
Return ПолучитьСтатусУчетаВремени(URL, UserID, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetTimekeepingSettings(Val URL, Val UserID = "", Val Token = "") Export
|
||||
Return ПолучитьНастройкиУчетаВремени(URL, UserID, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetStoragesList(Val URL, Val Token = "") Export
|
||||
Return ПолучитьСписокХранилищ(URL, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetAppSotrage(Val URL, Val Token = "") Export
|
||||
Return ПолучитьХранилищеПриложения(URL, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetStorage(Val URL, Val StorageID, Val Token = "") Export
|
||||
Return ПолучитьХранилище(URL, StorageID, Token);
|
||||
EndFunction
|
||||
|
||||
Function RenameStorage(Val URL, Val StorageID, Val Name, Val Token = "") Export
|
||||
Return ПереименоватьХранилище(URL, StorageID, Name, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetStorageObjects(Val URL, Val StorageID, Val Token = "") Export
|
||||
Return ПолучитьСодержимоеХранилища(URL, StorageID, Token);
|
||||
EndFunction
|
||||
|
||||
Function CreateStorageFolder(Val URL, Val StorageID, Val Name, Val Token = "") Export
|
||||
Return СоздатьКаталогВХранилище(URL, StorageID, Name, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetFolderInformation(Val URL, Val FolderID, Val Token = "") Export
|
||||
Return ПолучитьИнформациюОКаталоге(URL, FolderID, Token);
|
||||
EndFunction
|
||||
|
||||
Function CreateSubfolder(Val URL, Val FolderID, Val Name, Val Token = "") Export
|
||||
Return СоздатьПодкаталог(URL, FolderID, Name, Token);
|
||||
EndFunction
|
||||
|
||||
Function MakeFolderCopy(Val URL, Val FolderID, Val DestinationID, Val Token = "") Export
|
||||
Return СкопироватьКаталог(URL, FolderID, DestinationID, Token);
|
||||
EndFunction
|
||||
|
||||
Function MoveFolder(Val URL, Val FolderID, Val DestinationID, Val Token = "") Export
|
||||
Return ПереместитьКаталог(URL, FolderID, DestinationID, Token);
|
||||
EndFunction
|
||||
|
||||
Function DeleteFolder(Val URL, Val FolderID, Val Token = "") Export
|
||||
Return УдалитьКаталог(URL, FolderID, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetFolderExternalLink(Val URL, Val FolderID, Val Token = "") Export
|
||||
Return ПолучитьВнешнююСсылкуКаталога(URL, FolderID, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetFolderItems(Val URL, Val FolderID, Val Filter = "", Val Token = "") Export
|
||||
Return ПолучитьДочерниеЭлементыКаталога(URL, FolderID, Filter, Token);
|
||||
EndFunction
|
||||
|
||||
Function MarkFolderAsDeleted(Val URL, Val FolderID, Val Token = "") Export
|
||||
Return ПоместитьКаталогВКорзину(URL, FolderID, Token);
|
||||
EndFunction
|
||||
|
||||
Function RestoreFolder(Val URL, Val FolderID, Val Token = "") Export
|
||||
Return ВосстановитьКаталог(URL, FolderID, Token);
|
||||
EndFunction
|
||||
|
||||
Function RenameFolder(Val URL, Val FolderID, Val Name, Val Token = "") Export
|
||||
Return ПереименоватьКаталог(URL, FolderID, Name, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetFolderFilterStructure(Val URL, Val Clear = False, Val Token = "") Export
|
||||
Return ПолучитьСтруктуруФильтраКаталога(URL, Clear, Token);
|
||||
EndFunction
|
||||
|
||||
Function UploadFileToStorage(Val URL, Val Name, Val File, Val StorageID, Val Rights = "", Val Token = "") Export
|
||||
Return ЗагрузитьФайлВХранилище(URL, Name, File, StorageID, Rights, Token);
|
||||
EndFunction
|
||||
|
||||
Function UploadFileToFolder(Val URL, Val Name, Val File, Val FolderID, Val Token = "") Export
|
||||
Return ЗагрузитьФайлВКаталог(URL, Name, File, FolderID, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetFileInformation(Val URL, Val FileID, Val Token = "") Export
|
||||
Return ПолучитьИнформациюОФайле(URL, FileID, Token);
|
||||
EndFunction
|
||||
|
||||
Function DeleteFile(Val URL, Val FileID, Val Token = "") Export
|
||||
Return УдалитьФайл(URL, FileID, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetFileExternalLink(Val URL, Val FileID, Val Token = "") Export
|
||||
Return ПолучитьВнешнююСсылкуФайла(URL, FileID, Token);
|
||||
EndFunction
|
||||
|
||||
Function MarkFileAsDeleted(Val URL, Val FileID, Val Token = "") Export
|
||||
Return ПоместитьФайлВКорзину(URL, FileID, Token);
|
||||
EndFunction
|
||||
|
||||
Function RestoreFile(Val URL, Val FileID, Val Token = "") Export
|
||||
Return ВосстановитьФайл(URL, FileID, Token);
|
||||
EndFunction
|
||||
|
||||
Function MakeCopyFile(Val URL, Val FileID, Val FolderID, Val Token = "") Export
|
||||
Return СкопироватьФайл(URL, FileID, FolderID, Token);
|
||||
EndFunction
|
||||
|
||||
Function MoveFileToFolder(Val URL, Val FileID, Val FolderID, Val Token = "") Export
|
||||
Return ПереместитьФайлВКаталог(URL, FileID, FolderID, Token);
|
||||
EndFunction
|
||||
|
||||
Function RenameFile(Val URL, Val FileID, Val Name, Val Token = "") Export
|
||||
Return ПереименоватьФайл(URL, FileID, Name, Token);
|
||||
EndFunction
|
||||
|
||||
Function CreateChat(Val URL, Val ChatStructure, Val Token = "") Export
|
||||
Return СоздатьЧат(URL, ChatStructure, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetChatUsers(Val URL, Val ChatID, Val Token = "") Export
|
||||
Return ПолучитьСписокПользователейЧата(URL, ChatID, Token);
|
||||
EndFunction
|
||||
|
||||
Function LeaveChat(Val URL, Val ChatID, Val Token = "") Export
|
||||
Return ПокинутьЧат(URL, ChatID, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetUsers(Val URL, Val UserIDs, Val Token = "") Export
|
||||
Return ПолучитьПользователей(URL, UserIDs, Token);
|
||||
EndFunction
|
||||
|
||||
Function AddUsersToChat(Val URL, Val ChatID, Val UserIDs, Val HideHistory = False, Val Token = "") Export
|
||||
Return ДобавитьПользователейВЧат(URL, ChatID, UserIDs, HideHistory, Token);
|
||||
EndFunction
|
||||
|
||||
Function DeleteUserFromChat(Val URL, Val ChatID, Val UserID, Val Token = "") Export
|
||||
Return ИсключитьПользователяИзЧата(URL, ChatID, UserID, Token);
|
||||
EndFunction
|
||||
|
||||
Function ChangeChatTitle(Val URL, Val ChatID, Val Title, Val Token = "") Export
|
||||
Return ИзменитьЗаголовокЧата(URL, ChatID, Title, Token);
|
||||
EndFunction
|
||||
|
||||
Function ChangeChatColor(Val URL, Val ChatID, Val Color, Val Token = "") Export
|
||||
Return ИзменитьЦветЧата(URL, ChatID, Color, Token);
|
||||
EndFunction
|
||||
|
||||
Function ChangeChatPicture(Val URL, Val ChatID, Val Image, Val Token = "") Export
|
||||
Return ИзменитьКартинкуЧата(URL, ChatID, Image, Token);
|
||||
EndFunction
|
||||
|
||||
Function ChangeChatOwner(Val URL, Val ChatID, Val UserID, Val Token = "") Export
|
||||
Return СменитьВладельцаЧата(URL, ChatID, UserID, Token);
|
||||
EndFunction
|
||||
|
||||
Function DisableChatNotifications(Val URL, Val ChatID, Val Token = "") Export
|
||||
Return ОтключитьУведомленияЧата(URL, ChatID, Token);
|
||||
EndFunction
|
||||
|
||||
Function EnableChatNotifications(Val URL, Val ChatID, Val Token = "") Export
|
||||
Return ВключитьУведомленияЧата(URL, ChatID, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetChatMessagesList(Val URL, Val ChatID, Val LastID = "", Val FirstID = "", Val Token = "") Export
|
||||
Return ПолучитьСписокСообщенийЧата(URL, ChatID, LastID, FirstID, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetDialog(Val URL, Val ChatID, Val Token = "") Export
|
||||
Return ПолучитьДиалог(URL, ChatID, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetChatMembersList(Val URL, Val ChatID, Val Token = "") Export
|
||||
Return ПолучитьСписокПользователейДиалога(URL, ChatID, Token);
|
||||
EndFunction
|
||||
|
||||
Function SendWritingNotification(Val URL, Val ChatID, Val Token = "") Export
|
||||
Return ОтправитьУведомлениеОВводе(URL, ChatID, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetUserStatus(Val URL, Val Token = "") Export
|
||||
Return ПолучитьСтатусПользователя(URL, Token);
|
||||
EndFunction
|
||||
|
||||
Function SetUserStatus(Val URL, Val Status, Val Token = "") Export
|
||||
Return УстановитьСтатусПользователя(URL, Status, Token);
|
||||
EndFunction
|
||||
|
||||
Function ReadAll(Val URL, Val Token = "") Export
|
||||
Return ПрочитатьВсе(URL, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetChatFilesFolder(Val URL, Val ChatID, Val Token = "") Export
|
||||
Return ПолучитьКаталогФайловЧата(URL, ChatID, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetChatStructure(Val Clear = False) Export
|
||||
Return ПолучитьСтруктуруЧата(Clear);
|
||||
EndFunction
|
||||
|
||||
Function SendMessage(Val URL, Val ChatID, Val Text, Val Attachments = "", Val Token = "") Export
|
||||
Return ОтправитьСообщение(URL, ChatID, Text, Attachments, Token);
|
||||
EndFunction
|
||||
|
||||
Function EditMessage(Val URL, Val MessageID, Val Text = "", Val Attachments = "", Val Token = "") Export
|
||||
Return ИзменитьСообщение(URL, MessageID, Text, Attachments, Token);
|
||||
EndFunction
|
||||
|
||||
Function SetMessageReaction(Val URL, Val MessageID, Val Token = "") Export
|
||||
Return УстановитьРеакциюНаСообщение(URL, MessageID, Token);
|
||||
EndFunction
|
||||
|
||||
Function DeleteMessage(Val URL, Val MessageID, Val Token = "") Export
|
||||
Return УдалитьСообщение(URL, MessageID, Token);
|
||||
EndFunction
|
||||
|
||||
Function SendFile(Val URL, Val ChatID, Val FileID, Val Description = "", Val Token = "") Export
|
||||
Return ОтправитьФайл(URL, ChatID, FileID, Description, Token);
|
||||
EndFunction
|
||||
|
||||
Function MarkMessageAsReaded(Val URL, Val ChatID, Val MessageID, Val Token = "") Export
|
||||
Return ОтметитьСообщениеКакПрочитанное(URL, ChatID, MessageID, Token);
|
||||
EndFunction
|
||||
|
||||
Function MarkMessageAsUnreaded(Val URL, Val ChatID, Val MessageID, Val Token = "") Export
|
||||
Return ОтметитьСообщениеКакНепрочитанное(URL, ChatID, MessageID, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetPictureBlock(Val Name, Val URL) Export
|
||||
Return ПолучитьБлокКартинки(Name, URL);
|
||||
EndFunction
|
||||
|
||||
Function GetFileBlock(Val Name, Val URL) Export
|
||||
Return ПолучитьБлокФайла(Name, URL);
|
||||
EndFunction
|
||||
|
||||
Function CreatePersonalNotification(Val URL, Val UserID, Val Text, Val Tag = "", Val Attachments = "", Val Token = "") Export
|
||||
Return СоздатьПерсональноеУведомление(URL, UserID, Text, Tag, Attachments, Token);
|
||||
EndFunction
|
||||
|
||||
Function CreateSystemNotification(Val URL, Val UserID, Val Text, Val Tag = "", Val Attachments = "", Val Token = "") Export
|
||||
Return СоздатьСистемноеУведомление(URL, UserID, Text, Tag, Attachments, Token);
|
||||
EndFunction
|
||||
|
||||
Function DeleteNotification(Val URL, Val NotificationID, Val Token = "") Export
|
||||
Return УдалитьУведомление(URL, NotificationID, Token);
|
||||
EndFunction
|
||||
|
||||
Function CreateDepartment(Val URL, Val Name, Val ParentID = "", Val HeadID = "", Val Token = "") Export
|
||||
Return СоздатьПодразделение(URL, Name, ParentID, HeadID, Token);
|
||||
EndFunction
|
||||
|
||||
Function UpdateDepartment(Val URL, Val DepartmentID, Val Name = "", Val ParentID = "", Val HeadID = "", Val Token = "") Export
|
||||
Return ИзменитьПодразделение(URL, DepartmentID, Name, ParentID, HeadID, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetDepartments(Val URL, Val DepartmentID = "", Val Name = "", Val ParentID = "", Val HeadID = "", Val Token = "") Export
|
||||
Return ПолучитьПодразделения(URL, DepartmentID, Name, ParentID, HeadID, Token);
|
||||
EndFunction
|
||||
|
||||
Function DeleteDepartment(Val URL, Val DepartmentID, Val Token = "") Export
|
||||
Return УдалитьПодразделение(URL, DepartmentID, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetCurrentUser(Val URL, Val Token = "") Export
|
||||
Return ПолучитьТекущегоПользователя(URL, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetUser(Val URL, Val UserID, Val Token = "") Export
|
||||
Return ПолучитьПользователя(URL, UserID, Token);
|
||||
EndFunction
|
||||
|
||||
Function CreateUser(Val URL, Val FieldsStructure, Val Token = "") Export
|
||||
Return СоздатьПользователя(URL, FieldsStructure, Token);
|
||||
EndFunction
|
||||
|
||||
Function UpdateUser(Val URL, Val UserID, Val FieldsStructure, Val Token = "") Export
|
||||
Return ИзменитьПользователя(URL, UserID, FieldsStructure, Token);
|
||||
EndFunction
|
||||
|
||||
Function ChangeUserStatus(Val URL, Val UserID, Val Fire = True, Val Token = "") Export
|
||||
Return ИзменитьСтатусПользователя(URL, UserID, Fire, Token);
|
||||
EndFunction
|
||||
|
||||
Function FindUsers(Val URL, Val FilterStructure, Val Token = "") Export
|
||||
Return НайтиПользователей(URL, FilterStructure, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetUserFieldsStructure(Val URL, Val Token = "") Export
|
||||
Return ПолучитьСтурктуруПользователя(URL, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetUserFilterStructure(Val Clear = False) Export
|
||||
Return ПолучитьСтруктуруФильтраПользователей(Clear);
|
||||
EndFunction
|
||||
|
||||
Function CreateLead(Val URL, Val FieldsStructure, Val Token = "") Export
|
||||
Return СоздатьЛид(URL, FieldsStructure, Token);
|
||||
EndFunction
|
||||
|
||||
Function DeleteLead(Val URL, Val LeadID, Val Token = "") Export
|
||||
Return УдалитьЛид(URL, LeadID, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetLead(Val URL, Val LeadID, Val Token = "") Export
|
||||
Return ПолучитьЛид(URL, LeadID, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetLeadsList(Val URL, Val Filter = "", Val Indent = 0, Val Token = "") Export
|
||||
Return ПолучитьСписокЛидов(URL, Filter, Indent, Token);
|
||||
EndFunction
|
||||
|
||||
Function UpdateLead(Val URL, Val LeadID, Val FieldsStructure, Val Token = "") Export
|
||||
Return ИзменитьЛид(URL, LeadID, FieldsStructure, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetLeadStructure(Val URL, Val Token = "") Export
|
||||
Return ПолучитьСтруктуруЛида(URL, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetLeadFilterStructure(Val Clear = False) Export
|
||||
Return ПолучитьСтруктуруФильтраЛидов(Clear);
|
||||
EndFunction
|
||||
|
||||
Function CreateDeal(Val URL, Val FieldsStructure, Val Token = "") Export
|
||||
Return СоздатьСделку(URL, FieldsStructure, Token);
|
||||
EndFunction
|
||||
|
||||
Function DeleteDeal(Val URL, Val DealID, Val Token = "") Export
|
||||
Return УдалитьСделку(URL, DealID, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetDeal(Val URL, Val DealID, Val Token = "") Export
|
||||
Return ПолучитьСделку(URL, DealID, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetDealsList(Val URL, Val Filter = "", Val Indent = 0, Val Token = "") Export
|
||||
Return ПолучитьСписокСделок(URL, Filter, Indent, Token);
|
||||
EndFunction
|
||||
|
||||
Function UpdateDeal(Val URL, Val DealID, Val FieldsStructure, Val Token = "") Export
|
||||
Return ИзменитьСделку(URL, DealID, FieldsStructure, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetDealStructure(Val URL, Val Token = "") Export
|
||||
Return ПолучитьСтруктуруСделки(URL, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetDealsFilterStructure(Val Clear = False) Export
|
||||
Return ПолучитьСтруктуруФильтраСделок(Clear);
|
||||
EndFunction
|
||||
|
||||
Function GetCalendarList(Val URL, Val OwnerID, Val Type, Val Token = "") Export
|
||||
Return ПолучитьСписокКалендарей(URL, OwnerID, Type, Token);
|
||||
EndFunction
|
||||
|
||||
Function CreateCalendar(Val URL, Val FieldsStructure, Val Token = "") Export
|
||||
Return СоздатьКалендарь(URL, FieldsStructure, Token);
|
||||
EndFunction
|
||||
|
||||
Function UpdateCalendar(Val URL, Val CalendarID, Val FieldsStructure, Val Token = "") Export
|
||||
Return ИзменитьКалендарь(URL, CalendarID, FieldsStructure, Token);
|
||||
EndFunction
|
||||
|
||||
Function DeleteCalendar(Val URL, Val CalendarID, Val OwnerID, Val Type, Val Token = "") Export
|
||||
Return УдалитьКалендарь(URL, CalendarID, OwnerID, Type, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetUserBusy(Val URL, Val Users, Val StartDate, Val EndDate, Val Token = "") Export
|
||||
Return ПолучитьЗанятостьПользователей(URL, Users, StartDate, EndDate, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetCustomCalendarSettings(Val URL, Val Token = "") Export
|
||||
Return ПолучитьПользовательскиеНастройкиКалендаря(URL, Token);
|
||||
EndFunction
|
||||
|
||||
Function SetCustomCalendarSettings(Val URL, Val SettingsStructure, Val Token = "") Export
|
||||
Return УстановитьПользовательскиеНастройкиКалендаря(URL, SettingsStructure, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetCalendarSettingsStructure(Val URL, Val Token = "") Export
|
||||
Return ПолучитьСтруктуруНастроекКалендаря(URL, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetCalednarCustomSettingsStructure(Val Clear = False) Export
|
||||
Return ПолучитьСтруктуруПользовательскихНастроекКаледнаря(Clear);
|
||||
EndFunction
|
||||
|
||||
Function GetCalendarStructure(Val Clear = False) Export
|
||||
Return ПолучитьСтруктуруКалендаря(Clear);
|
||||
EndFunction
|
||||
|
||||
Function CreateCalendarEvent(Val URL, Val EventDescription, Val Token = "") Export
|
||||
Return СоздатьСобытиеКалендаря(URL, EventDescription, Token);
|
||||
EndFunction
|
||||
|
||||
Function UpdateCalendarEvent(Val URL, Val EventID, Val EventDescription, Val Token = "") Export
|
||||
Return ИзменитьСобытиеКалендаря(URL, EventID, EventDescription, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetCalendarEvent(Val URL, Val EventID, Val Token = "") Export
|
||||
Return ПолучитьСобытиеКалендаря(URL, EventID, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetCalendarEvents(Val URL, Val OwnerID, Val Type, Val Filter = "", Val Token = "") Export
|
||||
Return ПолучитьСобытияКалендарей(URL, OwnerID, Type, Filter, Token);
|
||||
EndFunction
|
||||
|
||||
Function DeleteCalendarEvent(Val URL, Val EventID, Val Token = "") Export
|
||||
Return УдалитьСобытиеКалендаря(URL, EventID, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetUserParticipationStatus(Val URL, Val EventID, Val Token = "") Export
|
||||
Return ПолучитьСтатусУчастияПользователя(URL, EventID, Token);
|
||||
EndFunction
|
||||
|
||||
Function SetUserParticipationStatus(Val URL, Val EventID, Val Status, Val Token = "") Export
|
||||
Return УстановитьСтатусУчастияПользователя(URL, EventID, Status, Token);
|
||||
EndFunction
|
||||
|
||||
Function GetCalendarEventsStructure(Val Clear = False) Export
|
||||
Return ПолучитьСтруктуруСобытияКалендаря(Clear);
|
||||
EndFunction
|
||||
|
||||
Function GetCalendarEventsFilterStructure(Val Clear = False) Export
|
||||
Return ПолучитьСтруктуруФильтраСобытийКалендарей(Clear);
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
2797
src/ru/OInt/core/Modules/OPI_CDEK.os
vendored
2797
src/ru/OInt/core/Modules/OPI_CDEK.os
vendored
File diff suppressed because it is too large
Load Diff
119
src/ru/OInt/core/Modules/OPI_Dropbox.os
vendored
119
src/ru/OInt/core/Modules/OPI_Dropbox.os
vendored
@@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_Dropbox.os
|
||||
// OneScript: ./OInt/core/Modules/OPI_Dropbox.os
|
||||
// Lib: Dropbox
|
||||
// CLI: dropbox
|
||||
// Keywords: dropbox
|
||||
@@ -987,120 +987,3 @@
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
|
||||
#Region Alternate
|
||||
|
||||
Function GetAuthorizationLink(Val AppKey) Export
|
||||
Return ПолучитьСсылкуАвторизации(AppKey);
|
||||
EndFunction
|
||||
|
||||
Function GetToken(Val AppKey, Val AppSecret, Val Code) Export
|
||||
Return ПолучитьТокен(AppKey, AppSecret, Code);
|
||||
EndFunction
|
||||
|
||||
Function RefreshToken(Val AppKey, Val AppSecret, Val RefreshToken) Export
|
||||
Return ОбновитьТокен(AppKey, AppSecret, RefreshToken);
|
||||
EndFunction
|
||||
|
||||
Function GetAccountInformation(Val Token, Val Account = "") Export
|
||||
Return ПолучитьИнформациюОбАккаунте(Token, Account);
|
||||
EndFunction
|
||||
|
||||
Function GetSpaceUsageData(Val Token) Export
|
||||
Return ПолучитьДанныеИспользованияПространства(Token);
|
||||
EndFunction
|
||||
|
||||
Function GetObjectInformation(Val Token, Val Path, Val Detailed = False) Export
|
||||
Return ПолучитьИнформациюОбОбъекте(Token, Path, Detailed);
|
||||
EndFunction
|
||||
|
||||
Function GetListOfFolderFiles(Val Token, Val Path = "", Val Detailed = False, Val Cursor = "") Export
|
||||
Return ПолучитьСписокФайловПапки(Token, Path, Detailed, Cursor);
|
||||
EndFunction
|
||||
|
||||
Function GetPreview(Val Token, Val Path) Export
|
||||
Return ПолучитьПревью(Token, Path);
|
||||
EndFunction
|
||||
|
||||
Function UploadFile(Val Token, Val File, Val Path, Val Overwrite = False) Export
|
||||
Return ЗагрузитьФайл(Token, File, Path, Overwrite);
|
||||
EndFunction
|
||||
|
||||
Function UploadFileByURL(Val Token, Val FileURL, Val Path) Export
|
||||
Return ЗагрузитьФайлПоURL(Token, FileURL, Path);
|
||||
EndFunction
|
||||
|
||||
Function GetUploadStatusByURL(Val Token, Val JobID) Export
|
||||
Return ПолучитьСтатусЗагрузкиПоURL(Token, JobID);
|
||||
EndFunction
|
||||
|
||||
Function DeleteObject(Val Token, Val Path, Val Irrecoverable = False) Export
|
||||
Return УдалитьОбъект(Token, Path, Irrecoverable);
|
||||
EndFunction
|
||||
|
||||
Function CopyObject(Val Token, Val From, Val Target) Export
|
||||
Return КопироватьОбъект(Token, From, Target);
|
||||
EndFunction
|
||||
|
||||
Function MoveObject(Val Token, Val From, Val Target) Export
|
||||
Return ПереместитьОбъект(Token, From, Target);
|
||||
EndFunction
|
||||
|
||||
Function CreateFolder(Val Token, Val Path) Export
|
||||
Return СоздатьПапку(Token, Path);
|
||||
EndFunction
|
||||
|
||||
Function DownloadFile(Val Token, Val Path) Export
|
||||
Return СкачатьФайл(Token, Path);
|
||||
EndFunction
|
||||
|
||||
Function DownloadFolder(Val Token, Val Path) Export
|
||||
Return СкачатьПапку(Token, Path);
|
||||
EndFunction
|
||||
|
||||
Function GetObjectVersionList(Val Token, Val Path, Val Count = 10) Export
|
||||
Return ПолучитьСписокВерсийОбъекта(Token, Path, Count);
|
||||
EndFunction
|
||||
|
||||
Function RestoreObjectToVersion(Val Token, Val Path, Val Version) Export
|
||||
Return ВосстановитьОбъектКВерсии(Token, Path, Version);
|
||||
EndFunction
|
||||
|
||||
Function GetTagList(Val Token, Val Paths) Export
|
||||
Return ПолучитьСписокТегов(Token, Paths);
|
||||
EndFunction
|
||||
|
||||
Function AddTag(Val Token, Val Path, Val Tag) Export
|
||||
Return ДобавитьТег(Token, Path, Tag);
|
||||
EndFunction
|
||||
|
||||
Function DeleteTag(Val Token, Val Path, Val Tag) Export
|
||||
Return УдалитьТег(Token, Path, Tag);
|
||||
EndFunction
|
||||
|
||||
Function PublishFolder(Val Token, Val Path) Export
|
||||
Return ОпубликоватьПапку(Token, Path);
|
||||
EndFunction
|
||||
|
||||
Function CancelFolderPublication(Val Token, Val FolderID) Export
|
||||
Return ОтменитьПубликациюПапки(Token, FolderID);
|
||||
EndFunction
|
||||
|
||||
Function AddUsersToFile(Val Token, Val FileID, Val EmailAddresses, Val ViewOnly = True) Export
|
||||
Return ДобавитьПользователейКФайлу(Token, FileID, EmailAddresses, ViewOnly);
|
||||
EndFunction
|
||||
|
||||
Function AddUsersToFolder(Val Token, Val FolderID, Val EmailAddresses, Val ViewOnly = True) Export
|
||||
Return ДобавитьПользователейКПапке(Token, FolderID, EmailAddresses, ViewOnly);
|
||||
EndFunction
|
||||
|
||||
Function GetAsynchronousChangeStatus(Val Token, Val JobID) Export
|
||||
Return ПолучитьСтатусАсинхронногоИзменения(Token, JobID);
|
||||
EndFunction
|
||||
|
||||
Function CancelFilePublication(Val Token, Val FileID) Export
|
||||
Return ОтменитьПубликациюФайла(Token, FileID);
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
75
src/ru/OInt/core/Modules/OPI_GoogleCalendar.os
vendored
75
src/ru/OInt/core/Modules/OPI_GoogleCalendar.os
vendored
@@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_GoogleCalendar.os
|
||||
// OneScript: ./OInt/core/Modules/OPI_GoogleCalendar.os
|
||||
// Lib: Google Calendar
|
||||
// CLI: gcalendar
|
||||
// Keywords: google calendar, googlecalendar, gcalendar
|
||||
@@ -655,76 +655,3 @@
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
|
||||
#Region Alternate
|
||||
|
||||
Function CreateCalendar(Val Token, Val Name) Export
|
||||
Return СоздатьКалендарь(Token, Name);
|
||||
EndFunction
|
||||
|
||||
Function GetCalendarMetadata(Val Token, Val Calendar) Export
|
||||
Return ПолучитьМетаданныеКалендаря(Token, Calendar);
|
||||
EndFunction
|
||||
|
||||
Function EditCalendarMetadata(Val Token, Val Calendar, Val Name = "", Val Description = "") Export
|
||||
Return ИзменитьМетаданныеКалендаря(Token, Calendar, Name, Description);
|
||||
EndFunction
|
||||
|
||||
Function ClearMainCalendar(Val Token) Export
|
||||
Return ОчиститьОсновнойКалендарь(Token);
|
||||
EndFunction
|
||||
|
||||
Function DeleteCalendar(Val Token, Val Calendar) Export
|
||||
Return УдалитьКалендарь(Token, Calendar);
|
||||
EndFunction
|
||||
|
||||
Function GetCalendarList(Val Token) Export
|
||||
Return ПолучитьСписокКалендарей(Token);
|
||||
EndFunction
|
||||
|
||||
Function AddCalendarToList(Val Token, Val Calendar) Export
|
||||
Return ДобавитьКалендарьВСписок(Token, Calendar);
|
||||
EndFunction
|
||||
|
||||
Function GetListCalendar(Val Token, Val Calendar) Export
|
||||
Return ПолучитьКалендарьСписка(Token, Calendar);
|
||||
EndFunction
|
||||
|
||||
Function DeleteCalendarFromList(Val Token, Val Calendar) Export
|
||||
Return УдалитьКалендарьИзСписка(Token, Calendar);
|
||||
EndFunction
|
||||
|
||||
Function EditListCalendar(Val Token, Val Calendar, Val PrimaryColor, Val SecondaryColor, Val Hidden = False) Export
|
||||
Return ИзменитьКалендарьСписка(Token, Calendar, PrimaryColor, SecondaryColor, Hidden);
|
||||
EndFunction
|
||||
|
||||
Function GetEventDescription(Val Clear = False) Export
|
||||
Return ПолучитьОписаниеСобытия(Clear);
|
||||
EndFunction
|
||||
|
||||
Function GetEventList(Val Token, Val Calendar) Export
|
||||
Return ПолучитьСписокСобытий(Token, Calendar);
|
||||
EndFunction
|
||||
|
||||
Function GetEvent(Val Token, Val Calendar, Val Event) Export
|
||||
Return ПолучитьСобытие(Token, Calendar, Event);
|
||||
EndFunction
|
||||
|
||||
Function CreateEvent(Val Token, Val Calendar, Val EventDescription) Export
|
||||
Return СоздатьСобытие(Token, Calendar, EventDescription);
|
||||
EndFunction
|
||||
|
||||
Function MoveEvent(Val Token, Val SourceCalendar, Val TargetCalendar, Val Event) Export
|
||||
Return ПереместитьСобытие(Token, SourceCalendar, TargetCalendar, Event);
|
||||
EndFunction
|
||||
|
||||
Function EditEvent(Val Token, Val Calendar, Val EventDescription, Val Event) Export
|
||||
Return ИзменитьСобытие(Token, Calendar, EventDescription, Event);
|
||||
EndFunction
|
||||
|
||||
Function DeleteEvent(Val Token, Val Calendar, Val Event) Export
|
||||
Return УдалитьСобытие(Token, Calendar, Event);
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
63
src/ru/OInt/core/Modules/OPI_GoogleDrive.os
vendored
63
src/ru/OInt/core/Modules/OPI_GoogleDrive.os
vendored
@@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_GoogleDrive.os
|
||||
// OneScript: ./OInt/core/Modules/OPI_GoogleDrive.os
|
||||
// Lib: Google Drive
|
||||
// CLI: gdrive
|
||||
// Keywords: google drive, googledrive, gdrive, google disk
|
||||
@@ -777,64 +777,3 @@
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
|
||||
#Region Alternate
|
||||
|
||||
Function GetObjectInformation(Val Token, Val Identifier) Export
|
||||
Return ПолучитьИнформациюОбОбъекте(Token, Identifier);
|
||||
EndFunction
|
||||
|
||||
Function GetDirectoriesList(Val Token, Val NameContains = "", Val Detailed = False) Export
|
||||
Return ПолучитьСписокКаталогов(Token, NameContains, Detailed);
|
||||
EndFunction
|
||||
|
||||
Function GetFilesList(Val Token, Val NameContains = "", Val Directory = "") Export
|
||||
Return ПолучитьСписокФайлов(Token, NameContains, Directory);
|
||||
EndFunction
|
||||
|
||||
Function UploadFile(Val Token, Val File, Val Description) Export
|
||||
Return ЗагрузитьФайл(Token, File, Description);
|
||||
EndFunction
|
||||
|
||||
Function CreateFolder(Val Token, Val Name, Val Parent = "") Export
|
||||
Return СоздатьПапку(Token, Name, Parent);
|
||||
EndFunction
|
||||
|
||||
Function DownloadFile(Val Token, Val Identifier, Val SavePath = "") Export
|
||||
Return СкачатьФайл(Token, Identifier, SavePath);
|
||||
EndFunction
|
||||
|
||||
Function CopyObject(Val Token, Val Identifier, Val NewName = "", Val NewParent = "") Export
|
||||
Return СкопироватьОбъект(Token, Identifier, NewName, NewParent);
|
||||
EndFunction
|
||||
|
||||
Function UpdateFile(Val Token, Val Identifier, Val File, Val NewName = "") Export
|
||||
Return ОбновитьФайл(Token, Identifier, File, NewName);
|
||||
EndFunction
|
||||
|
||||
Function DeleteObject(Val Token, Val Identifier) Export
|
||||
Return УдалитьОбъект(Token, Identifier);
|
||||
EndFunction
|
||||
|
||||
Function GetFileDescription(Val Clear = False) Export
|
||||
Return ПолучитьОписаниеФайла(Clear);
|
||||
EndFunction
|
||||
|
||||
Function CreateComment(Val Token, Val Identifier, Val Comment) Export
|
||||
Return СоздатьКомментарий(Token, Identifier, Comment);
|
||||
EndFunction
|
||||
|
||||
Function GetComment(Val Token, Val ObjectID, Val CommentID) Export
|
||||
Return ПолучитьКомментарий(Token, ObjectID, CommentID);
|
||||
EndFunction
|
||||
|
||||
Function GetCommentList(Val Token, Val ObjectID) Export
|
||||
Return ПолучитьСписокКомментариев(Token, ObjectID);
|
||||
EndFunction
|
||||
|
||||
Function DeleteComment(Val Token, Val ObjectID, Val CommentID) Export
|
||||
Return УдалитьКомментарий(Token, ObjectID, CommentID);
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
43
src/ru/OInt/core/Modules/OPI_GoogleSheets.os
vendored
43
src/ru/OInt/core/Modules/OPI_GoogleSheets.os
vendored
@@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_GoogleSheets.os
|
||||
// OneScript: ./OInt/core/Modules/OPI_GoogleSheets.os
|
||||
// Lib: Google Sheets
|
||||
// CLI: gsheets
|
||||
// Keywords: googlesheets, google sheets, spreadsheets
|
||||
@@ -419,44 +419,3 @@
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
|
||||
#Region Alternate
|
||||
|
||||
Function CreateSpreadsheet(Val Token, Val Name, Val ArrayOfSheetNames) Export
|
||||
Return СоздатьКнигу(Token, Name, ArrayOfSheetNames);
|
||||
EndFunction
|
||||
|
||||
Function GetSpreadsheet(Val Token, Val Identifier) Export
|
||||
Return ПолучитьКнигу(Token, Identifier);
|
||||
EndFunction
|
||||
|
||||
Function EditSpreadsheetTitle(Val Token, Val Spreadsheet, Val Name) Export
|
||||
Return ИзменитьНаименованиеКниги(Token, Spreadsheet, Name);
|
||||
EndFunction
|
||||
|
||||
Function AddSheet(Val Token, Val Spreadsheet, Val Name) Export
|
||||
Return ДобавитьЛист(Token, Spreadsheet, Name);
|
||||
EndFunction
|
||||
|
||||
Function DeleteSheet(Val Token, Val Spreadsheet, Val Sheet) Export
|
||||
Return УдалитьЛист(Token, Spreadsheet, Sheet);
|
||||
EndFunction
|
||||
|
||||
Function CopySheet(Val Token, Val From, Val Target, Val Sheet) Export
|
||||
Return КопироватьЛист(Token, From, Target, Sheet);
|
||||
EndFunction
|
||||
|
||||
Function SetCellValues(Val Token, Val Spreadsheet, Val ValueMapping, Val Sheet = "", Val MajorDimension = "COLUMNS") Export
|
||||
Return УстановитьЗначенияЯчеек(Token, Spreadsheet, ValueMapping, Sheet, MajorDimension);
|
||||
EndFunction
|
||||
|
||||
Function ClearCells(Val Token, Val Spreadsheet, Val CellsArray, Val Sheet = "") Export
|
||||
Return ОчиститьЯчейки(Token, Spreadsheet, CellsArray, Sheet);
|
||||
EndFunction
|
||||
|
||||
Function GetCellValues(Val Token, Val Spreadsheet, Val CellsArray = "", Val Sheet = "") Export
|
||||
Return ПолучитьЗначенияЯчеек(Token, Spreadsheet, CellsArray, Sheet);
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
27
src/ru/OInt/core/Modules/OPI_GoogleWorkspace.os
vendored
27
src/ru/OInt/core/Modules/OPI_GoogleWorkspace.os
vendored
@@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_GoogleWorkspace.os
|
||||
// OneScript: ./OInt/core/Modules/OPI_GoogleWorkspace.os
|
||||
// Lib: Google Workspace
|
||||
// CLI: google
|
||||
|
||||
@@ -243,28 +243,3 @@
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
|
||||
#Region Alternate
|
||||
|
||||
Function FormCodeRetrievalLink(Val ClientID, Val Calendar = True, Val Drive = True, Val Sheets = True) Export
|
||||
Return СформироватьСсылкуПолученияКода(ClientID, Calendar, Drive, Sheets);
|
||||
EndFunction
|
||||
|
||||
Function GetTokenByCode(Val ClientID, Val ClientSecret, Val Code) Export
|
||||
Return ПолучитьТокенПоКоду(ClientID, ClientSecret, Code);
|
||||
EndFunction
|
||||
|
||||
Function RefreshToken(Val ClientID, Val ClientSecret, Val RefreshToken) Export
|
||||
Return ОбновитьТокен(ClientID, ClientSecret, RefreshToken);
|
||||
EndFunction
|
||||
|
||||
Function GetServiceAccountToken(Val Data, Val Scope, Val Expire = 3600) Export
|
||||
Return ПолучитьТокенServiceАккаунта(Data, Scope, Expire);
|
||||
EndFunction
|
||||
|
||||
Function GetAuthorizationHeader(Val Token) Export
|
||||
Return ПолучитьЗаголовокАвторизации(Token);
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
2751
src/ru/OInt/core/Modules/OPI_GreenAPI.os
vendored
2751
src/ru/OInt/core/Modules/OPI_GreenAPI.os
vendored
File diff suppressed because it is too large
Load Diff
1303
src/ru/OInt/core/Modules/OPI_MySQL.os
vendored
1303
src/ru/OInt/core/Modules/OPI_MySQL.os
vendored
File diff suppressed because it is too large
Load Diff
933
src/ru/OInt/core/Modules/OPI_Neocities.os
vendored
933
src/ru/OInt/core/Modules/OPI_Neocities.os
vendored
@@ -1,483 +1,450 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_Neocities.os
|
||||
// Lib: Neocities
|
||||
// CLI: neocities
|
||||
// Keywords: neocities
|
||||
|
||||
// MIT License
|
||||
|
||||
// Copyright (c) 2023-2025 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:Typo-off
|
||||
// BSLLS:LatinAndCyrillicSymbolInWord-off
|
||||
// BSLLS:IncorrectLineBreak-off
|
||||
// BSLLS:NumberOfOptionalParams-off
|
||||
// BSLLS:UsingServiceTag-off
|
||||
// BSLLS:LineLength-off
|
||||
|
||||
//@skip-check module-structure-top-region
|
||||
//@skip-check module-structure-method-in-regions
|
||||
//@skip-check wrong-string-literal-content
|
||||
//@skip-check method-too-many-params
|
||||
|
||||
// Раскомментировать, если выполняется OneScript
|
||||
#Использовать "../../tools"
|
||||
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
#Область ПолучениеДанных
|
||||
|
||||
// Получить данные о сайте
|
||||
// Получает информацию о сайте по его имени или токену
|
||||
//
|
||||
// Примечание:
|
||||
// Документация Neocities API: [neocities.org/api](@neocities.org/api)
|
||||
//
|
||||
// Параметры:
|
||||
// Токен - Строка - Токен авторизации - token
|
||||
// Сайт - Строка - Имя сайта (логин) для получения информации. Текущий, если не заполнено - sitename
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Neocities
|
||||
Функция ПолучитьДанныеОСайте(Знач Токен, Знач Сайт = "") Экспорт
|
||||
|
||||
URL = "https://neocities.org/api/info";
|
||||
|
||||
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
|
||||
|
||||
Параметры = Новый Структура;
|
||||
OPI_Инструменты.ДобавитьПоле("sitename", Сайт, "Строка", Параметры);
|
||||
|
||||
Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры, Заголовки);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Получить токен
|
||||
// Получает токен авторизации по логину и паролю
|
||||
//
|
||||
// Примечание:
|
||||
// Документация Neocities API: [neocities.org/api](@neocities.org/api)
|
||||
//
|
||||
// Параметры:
|
||||
// Логин - Строка - Логин пользователя - login
|
||||
// Пароль - Строка - Пароль пользователя - password
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Neocities
|
||||
Функция ПолучитьТокен(Знач Логин, Знач Пароль) Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Логин);
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Пароль);
|
||||
|
||||
URL = "neocities.org";
|
||||
Таймаут = 120;
|
||||
|
||||
Попытка
|
||||
|
||||
ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
|
||||
БезопасноеСоединение = Новый HTTPСоединение(URL, 443, Логин, Пароль, , Таймаут, ЗащищенноеСоединение);
|
||||
|
||||
Исключение
|
||||
|
||||
URL = "https://" + URL;
|
||||
БезопасноеСоединение = Новый HTTPСоединение(URL, 443, Логин, Пароль, , Таймаут);
|
||||
|
||||
КонецПопытки;
|
||||
|
||||
Ответ = БезопасноеСоединение.Получить(Новый HTTPЗапрос("/api/key"));
|
||||
|
||||
ЧтениеJSON = Новый ЧтениеJSON();
|
||||
ЧтениеJSON.УстановитьСтроку(Ответ.ПолучитьТелоКакСтроку());
|
||||
|
||||
Ответ = ПрочитатьJSON(ЧтениеJSON);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область РаботаСФайлами
|
||||
|
||||
// Загрузить файл
|
||||
// Загружает одиночный файл на сервер Neocities
|
||||
//
|
||||
// Примечание:
|
||||
// Документация Neocities API: [neocities.org/api](@neocities.org/api)
|
||||
//
|
||||
// Параметры:
|
||||
// Токен - Строка - Токен авторизации - token
|
||||
// Путь - Строка - Целевой путь файла на Neocities - path
|
||||
// Данные - Строка, ДвоичныеДанные - URL, путь или данные файла для загрузки - file
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Neocities
|
||||
Функция ЗагрузитьФайл(Знач Токен, Знач Путь, Знач Данные) Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
|
||||
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Данные);
|
||||
|
||||
URL = "https://neocities.org/api/upload";
|
||||
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
|
||||
|
||||
СоответствиеФайла = Новый Соответствие;
|
||||
СоответствиеФайла.Вставить(Путь + "|" + Путь, Данные);
|
||||
|
||||
Ответ = OPI_ЗапросыHTTP.PostMultipart(URL, , СоответствиеФайла, "multipart/form-data", Заголовки);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Загрузить файлы
|
||||
// Загружает несколько файлов на сервер Neocities
|
||||
//
|
||||
// Примечание:
|
||||
// Документация Neocities API: [neocities.org/api](@neocities.org/api)
|
||||
//
|
||||
// Параметры:
|
||||
// Токен - Строка - Токен авторизации - token
|
||||
// СоответствиеФайлов - Соответствие Из КлючИЗначение - Файлы для загрузки: Ключ > путь на NC, Значение > Файл - files
|
||||
// ПоОдному - Булево - Истина > отправляет файлы отдельными запросами - singly
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Neocities
|
||||
Функция ЗагрузитьФайлы(Знач Токен, Знач СоответствиеФайлов, Знач ПоОдному = Ложь) Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьБулево(ПоОдному);
|
||||
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(СоответствиеФайлов);
|
||||
|
||||
КонечныйОтвет = Новый Массив;
|
||||
ОбработанноеСоответствие = Новый Соответствие;
|
||||
|
||||
Для Каждого ФайлОтправки Из СоответствиеФайлов Цикл
|
||||
|
||||
Если ПоОдному Тогда
|
||||
|
||||
Ответ = ЗагрузитьФайл(Токен, ФайлОтправки.Ключ, ФайлОтправки.Значение);
|
||||
КонечныйОтвет.Добавить(Ответ);
|
||||
|
||||
Иначе
|
||||
|
||||
ТекущийПуть = ФайлОтправки.Ключ;
|
||||
ТекущиеДанные = ФайлОтправки.Значение;
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(ТекущийПуть);
|
||||
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(ТекущиеДанные);
|
||||
|
||||
ОбработанноеСоответствие.Вставить(ТекущийПуть + "|" + ТекущийПуть, ТекущиеДанные);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Если Не ПоОдному Тогда
|
||||
|
||||
URL = "https://neocities.org/api/upload";
|
||||
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
|
||||
|
||||
КонечныйОтвет = OPI_ЗапросыHTTP.PostMultipart(URL
|
||||
,
|
||||
, ОбработанноеСоответствие
|
||||
, "multipart/form-data"
|
||||
, Заголовки);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат КонечныйОтвет;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Удалить выбранные файлы
|
||||
// Удаляет файл или несколько файлов с сервера Neocities
|
||||
//
|
||||
// Примечание:
|
||||
// Документация Neocities API: [neocities.org/api](@neocities.org/api)
|
||||
//
|
||||
// Параметры:
|
||||
// Токен - Строка - Токен авторизации - token
|
||||
// Пути - Строка, Массив Из Строка - Путь или несколько путей удаляемых файлов - paths
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Neocities
|
||||
Функция УдалитьВыбранныеФайлы(Знач Токен, Знач Пути) Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьМассив(Пути);
|
||||
|
||||
URL = "https://neocities.org/api/delete";
|
||||
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
|
||||
|
||||
Для Н = 0 По Пути.ВГраница() Цикл
|
||||
|
||||
ТекущееЗначение = Пути[Н];
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(ТекущееЗначение);
|
||||
|
||||
Пути.Установить(Н, "filenames[]=" + ТекущееЗначение);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
ПутиСтрокой = СтрСоединить(Пути, "&");
|
||||
Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, ПутиСтрокой, Заголовки, Ложь);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Получить список файлов
|
||||
// Получает список файлов с отбором каталога или без
|
||||
//
|
||||
// Примечание:
|
||||
// Документация Neocities API: [neocities.org/api](@neocities.org/api)
|
||||
//
|
||||
// Параметры:
|
||||
// Токен - Строка - Токен авторизации - token
|
||||
// Путь - Строка - Отбор файлов по каталогу. Все, если не заполнено - path
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Neocities
|
||||
Функция ПолучитьСписокФайлов(Знач Токен, Знач Путь = "") Экспорт
|
||||
|
||||
URL = "https://neocities.org/api/list";
|
||||
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
|
||||
|
||||
Параметры = Новый Структура;
|
||||
OPI_Инструменты.ДобавитьПоле("path", Путь, "Строка", Параметры);
|
||||
|
||||
Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры, Заголовки);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Синхронизировать каталоги
|
||||
// Создает копию локального каталога по выбранному пути на сервере
|
||||
//
|
||||
// Примечание:
|
||||
// Документация Neocities API: [neocities.org/api](@neocities.org/api)
|
||||
// Метод удаляет файлы на сервере, если они отсутствуют в локальном каталоге
|
||||
//
|
||||
// Параметры:
|
||||
// Токен - Строка - Токен авторизации - token
|
||||
// ЛокальныйКаталог - Строка - Локальный каталог источник - local
|
||||
// УдаленныйКаталог - Строка - Удаленный каталог приемника. Корень, если не заполнено - remote
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура Из КлючИЗначение - информация об ошибках синхронизации
|
||||
Функция СинхронизироватьКаталоги(Знач Токен, Знач ЛокальныйКаталог, Знач УдаленныйКаталог = "") Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(ЛокальныйКаталог);
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(УдаленныйКаталог);
|
||||
|
||||
Сообщить("Начало синхронизации...");
|
||||
|
||||
Если ЗначениеЗаполнено(УдаленныйКаталог) Тогда
|
||||
УдаленныйКаталог = ?(СтрЗаканчиваетсяНа(УдаленныйКаталог, "/"), УдаленныйКаталог, УдаленныйКаталог + "/");
|
||||
КонецЕсли;
|
||||
|
||||
УдаленныеФайлы = ПолучитьСписокФайлов(Токен, УдаленныйКаталог);
|
||||
|
||||
Если Не УдаленныеФайлы["result"] = "success" Тогда
|
||||
//@skip-check constructor-function-return-section
|
||||
Возврат УдаленныеФайлы;
|
||||
КонецЕсли;
|
||||
|
||||
ЛокальныеПути = Новый Соответствие;
|
||||
ЛокальныеПодкаталоги = Новый Соответствие;
|
||||
|
||||
ПолучитьНаборыЛокальныхПутей(ЛокальныйКаталог, УдаленныйКаталог, ЛокальныеПути, ЛокальныеПодкаталоги);
|
||||
|
||||
МассивУдаляемых = ПолучитьУдаляемыеФайлы(УдаленныеФайлы, ЛокальныеПути, ЛокальныеПодкаталоги);
|
||||
Результат = ВыполнитьСинхронизацию(Токен, МассивУдаляемых, ЛокальныеПути);
|
||||
|
||||
//@skip-check constructor-function-return-section
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Функция СоздатьЗаголовкиЗапроса(Знач Токен)
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
|
||||
|
||||
Заголовки = Новый Соответствие;
|
||||
Заголовки.Вставить("Authorization", "Bearer " + Токен);
|
||||
Возврат Заголовки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьУдаляемыеФайлы(УдаленныеФайлы, ЛокальныеПути, ЛокальныеПодкаталоги)
|
||||
|
||||
МассивУдаляемых = Новый Массив;
|
||||
|
||||
Для Каждого УдаленныйФайл Из УдаленныеФайлы["files"] Цикл
|
||||
|
||||
ПутьУдаленногоОсновной = УдаленныйФайл["path"];
|
||||
ПутьУдаленногоДополнительный = "/" + УдаленныйФайл["path"];
|
||||
|
||||
Если УдаленныйФайл["is_directory"] Тогда
|
||||
|
||||
СуществующийУдаленный = ЛокальныеПодкаталоги[ПутьУдаленногоОсновной];
|
||||
СуществующийУдаленный = ?(ЗначениеЗаполнено(СуществующийУдаленный)
|
||||
, СуществующийУдаленный
|
||||
, ЛокальныеПодкаталоги[ПутьУдаленногоДополнительный]);
|
||||
|
||||
Иначе
|
||||
СуществующийУдаленный = ЛокальныеПути[ПутьУдаленногоОсновной];
|
||||
СуществующийУдаленный = ?(ЗначениеЗаполнено(СуществующийУдаленный)
|
||||
, СуществующийУдаленный
|
||||
, ЛокальныеПути[ПутьУдаленногоДополнительный]);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если СуществующийУдаленный = Неопределено Тогда
|
||||
МассивУдаляемых.Добавить(ПутьУдаленногоОсновной);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат МассивУдаляемых;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ВыполнитьСинхронизацию(Токен, МассивУдаляемых, ЛокальныеПути)
|
||||
|
||||
МассивОшибок = Новый Массив;
|
||||
|
||||
Если Не МассивУдаляемых.Количество() = 0 Тогда
|
||||
|
||||
Ответ = УдалитьВыбранныеФайлы(Токен, МассивУдаляемых);
|
||||
|
||||
Если Не Ответ["result"] = "success" Тогда
|
||||
МассивОшибок.Добавить(Ответ);
|
||||
|
||||
Иначе
|
||||
|
||||
// BSLLS:UnusedLocalVariable-off
|
||||
|
||||
//@skip-check module-unused-local-variable
|
||||
СообщениеУдаления = СтрШаблон("Удалено %1 лишних файлов", Строка(МассивУдаляемых.Количество()));
|
||||
Сообщить(СообщениеУдаления);
|
||||
|
||||
// BSLLS:UnusedLocalVariable-on
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Всего = OPI_Инструменты.ЧислоВСтроку(ЛокальныеПути.Количество());
|
||||
Счетчик = 0;
|
||||
|
||||
Для Каждого ЛокальныйПуть Из ЛокальныеПути Цикл
|
||||
|
||||
Ответ = ЗагрузитьФайл(Токен, ЛокальныйПуть.Ключ, ЛокальныйПуть.Значение);
|
||||
|
||||
Если Не Ответ["result"] = "success" Тогда
|
||||
|
||||
МассивОшибок.Добавить(Ответ);
|
||||
|
||||
Иначе
|
||||
|
||||
// BSLLS:UnusedLocalVariable-off
|
||||
|
||||
//@skip-check module-unused-local-variable
|
||||
Прогресс = "[" + OPI_Инструменты.ЧислоВСтроку(Счетчик) + "/" + Всего + "] ";
|
||||
Сообщить(Прогресс + ЛокальныйПуть.Ключ + Символы.ПС + Ответ["message"] + Символы.ПС);
|
||||
|
||||
// BSLLS:UnusedLocalVariable-on
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Счетчик = Счетчик + 1;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Новый Структура("errors,items", МассивОшибок.Количество(), МассивОшибок);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ПолучитьНаборыЛокальныхПутей(ЛокальныйКаталог, УдаленныйКаталог, ЛокальныеПути, ЛокальныеПодкаталоги)
|
||||
|
||||
ЛокальныйКаталог = СтрЗаменить(ЛокальныйКаталог, "\", "/");
|
||||
ЛокальныйКаталог = ?(СтрЗаканчиваетсяНа(ЛокальныйКаталог, "/"), ЛокальныйКаталог, ЛокальныйКаталог + "/");
|
||||
|
||||
ЛокальныеФайлы = НайтиФайлы(ЛокальныйКаталог, "*", Истина);
|
||||
|
||||
Для Каждого ЛокальныйФайл Из ЛокальныеФайлы Цикл
|
||||
|
||||
ТекущийАбсПуть = ЛокальныйФайл.ПолноеИмя;
|
||||
ТекущийОтнПуть = Прав(ТекущийАбсПуть, СтрДлина(ТекущийАбсПуть) - СтрДлина(ЛокальныйКаталог));
|
||||
ТекущийОтнПуть = УдаленныйКаталог + ТекущийОтнПуть;
|
||||
|
||||
ТекущийОтнПуть = СтрЗаменить(ТекущийОтнПуть, "\", "/");
|
||||
|
||||
Если ЛокальныйФайл.ЭтоКаталог() Тогда
|
||||
ЛокальныеПодкаталоги.Вставить(ТекущийОтнПуть, ТекущийАбсПуть);
|
||||
Иначе
|
||||
ЛокальныеПути.Вставить(ТекущийОтнПуть, ТекущийАбсПуть);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
|
||||
#Region Alternate
|
||||
|
||||
Function GetSiteData(Val Token, Val Website = "") Export
|
||||
Return ПолучитьДанныеОСайте(Token, Website);
|
||||
EndFunction
|
||||
|
||||
Function GetToken(Val Login, Val Password) Export
|
||||
Return ПолучитьТокен(Login, Password);
|
||||
EndFunction
|
||||
|
||||
Function UploadFile(Val Token, Val Path, Val Data) Export
|
||||
Return ЗагрузитьФайл(Token, Path, Data);
|
||||
EndFunction
|
||||
|
||||
Function UploadFiles(Val Token, Val FileMapping, Val Singly = False) Export
|
||||
Return ЗагрузитьФайлы(Token, FileMapping, Singly);
|
||||
EndFunction
|
||||
|
||||
Function DeleteSelectedFiles(Val Token, Val Paths) Export
|
||||
Return УдалитьВыбранныеФайлы(Token, Paths);
|
||||
EndFunction
|
||||
|
||||
Function GetFilesList(Val Token, Val Path = "") Export
|
||||
Return ПолучитьСписокФайлов(Token, Path);
|
||||
EndFunction
|
||||
|
||||
Function SynchronizeFolders(Val Token, Val LocalFolder, Val RemoteFolder = "") Export
|
||||
Return СинхронизироватьКаталоги(Token, LocalFolder, RemoteFolder);
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
// OneScript: ./OInt/core/Modules/OPI_Neocities.os
|
||||
// Lib: Neocities
|
||||
// CLI: neocities
|
||||
// Keywords: neocities
|
||||
|
||||
// MIT License
|
||||
|
||||
// Copyright (c) 2023-2025 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:Typo-off
|
||||
// BSLLS:LatinAndCyrillicSymbolInWord-off
|
||||
// BSLLS:IncorrectLineBreak-off
|
||||
// BSLLS:NumberOfOptionalParams-off
|
||||
// BSLLS:UsingServiceTag-off
|
||||
// BSLLS:LineLength-off
|
||||
|
||||
//@skip-check module-structure-top-region
|
||||
//@skip-check module-structure-method-in-regions
|
||||
//@skip-check wrong-string-literal-content
|
||||
//@skip-check method-too-many-params
|
||||
|
||||
// Раскомментировать, если выполняется OneScript
|
||||
#Использовать "../../tools"
|
||||
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
#Область ПолучениеДанных
|
||||
|
||||
// Получить данные о сайте
|
||||
// Получает информацию о сайте по его имени или токену
|
||||
//
|
||||
// Примечание:
|
||||
// Документация Neocities API: [neocities.org/api](@neocities.org/api)
|
||||
//
|
||||
// Параметры:
|
||||
// Токен - Строка - Токен авторизации - token
|
||||
// Сайт - Строка - Имя сайта (логин) для получения информации. Текущий, если не заполнено - sitename
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Neocities
|
||||
Функция ПолучитьДанныеОСайте(Знач Токен, Знач Сайт = "") Экспорт
|
||||
|
||||
URL = "https://neocities.org/api/info";
|
||||
|
||||
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
|
||||
|
||||
Параметры = Новый Структура;
|
||||
OPI_Инструменты.ДобавитьПоле("sitename", Сайт, "Строка", Параметры);
|
||||
|
||||
Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры, Заголовки);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Получить токен
|
||||
// Получает токен авторизации по логину и паролю
|
||||
//
|
||||
// Примечание:
|
||||
// Документация Neocities API: [neocities.org/api](@neocities.org/api)
|
||||
//
|
||||
// Параметры:
|
||||
// Логин - Строка - Логин пользователя - login
|
||||
// Пароль - Строка - Пароль пользователя - password
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Neocities
|
||||
Функция ПолучитьТокен(Знач Логин, Знач Пароль) Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Логин);
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Пароль);
|
||||
|
||||
URL = "neocities.org";
|
||||
Таймаут = 120;
|
||||
|
||||
Попытка
|
||||
|
||||
ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
|
||||
БезопасноеСоединение = Новый HTTPСоединение(URL, 443, Логин, Пароль, , Таймаут, ЗащищенноеСоединение);
|
||||
|
||||
Исключение
|
||||
|
||||
URL = "https://" + URL;
|
||||
БезопасноеСоединение = Новый HTTPСоединение(URL, 443, Логин, Пароль, , Таймаут);
|
||||
|
||||
КонецПопытки;
|
||||
|
||||
Ответ = БезопасноеСоединение.Получить(Новый HTTPЗапрос("/api/key"));
|
||||
|
||||
ЧтениеJSON = Новый ЧтениеJSON();
|
||||
ЧтениеJSON.УстановитьСтроку(Ответ.ПолучитьТелоКакСтроку());
|
||||
|
||||
Ответ = ПрочитатьJSON(ЧтениеJSON);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область РаботаСФайлами
|
||||
|
||||
// Загрузить файл
|
||||
// Загружает одиночный файл на сервер Neocities
|
||||
//
|
||||
// Примечание:
|
||||
// Документация Neocities API: [neocities.org/api](@neocities.org/api)
|
||||
//
|
||||
// Параметры:
|
||||
// Токен - Строка - Токен авторизации - token
|
||||
// Путь - Строка - Целевой путь файла на Neocities - path
|
||||
// Данные - Строка, ДвоичныеДанные - URL, путь или данные файла для загрузки - file
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Neocities
|
||||
Функция ЗагрузитьФайл(Знач Токен, Знач Путь, Знач Данные) Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
|
||||
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Данные);
|
||||
|
||||
URL = "https://neocities.org/api/upload";
|
||||
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
|
||||
|
||||
СоответствиеФайла = Новый Соответствие;
|
||||
СоответствиеФайла.Вставить(Путь + "|" + Путь, Данные);
|
||||
|
||||
Ответ = OPI_ЗапросыHTTP.PostMultipart(URL, , СоответствиеФайла, "multipart/form-data", Заголовки);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Загрузить файлы
|
||||
// Загружает несколько файлов на сервер Neocities
|
||||
//
|
||||
// Примечание:
|
||||
// Документация Neocities API: [neocities.org/api](@neocities.org/api)
|
||||
//
|
||||
// Параметры:
|
||||
// Токен - Строка - Токен авторизации - token
|
||||
// СоответствиеФайлов - Соответствие Из КлючИЗначение - Файлы для загрузки: Ключ > путь на NC, Значение > Файл - files
|
||||
// ПоОдному - Булево - Истина > отправляет файлы отдельными запросами - singly
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Neocities
|
||||
Функция ЗагрузитьФайлы(Знач Токен, Знач СоответствиеФайлов, Знач ПоОдному = Ложь) Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьБулево(ПоОдному);
|
||||
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(СоответствиеФайлов);
|
||||
|
||||
КонечныйОтвет = Новый Массив;
|
||||
ОбработанноеСоответствие = Новый Соответствие;
|
||||
|
||||
Для Каждого ФайлОтправки Из СоответствиеФайлов Цикл
|
||||
|
||||
Если ПоОдному Тогда
|
||||
|
||||
Ответ = ЗагрузитьФайл(Токен, ФайлОтправки.Ключ, ФайлОтправки.Значение);
|
||||
КонечныйОтвет.Добавить(Ответ);
|
||||
|
||||
Иначе
|
||||
|
||||
ТекущийПуть = ФайлОтправки.Ключ;
|
||||
ТекущиеДанные = ФайлОтправки.Значение;
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(ТекущийПуть);
|
||||
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(ТекущиеДанные);
|
||||
|
||||
ОбработанноеСоответствие.Вставить(ТекущийПуть + "|" + ТекущийПуть, ТекущиеДанные);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Если Не ПоОдному Тогда
|
||||
|
||||
URL = "https://neocities.org/api/upload";
|
||||
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
|
||||
|
||||
КонечныйОтвет = OPI_ЗапросыHTTP.PostMultipart(URL
|
||||
,
|
||||
, ОбработанноеСоответствие
|
||||
, "multipart/form-data"
|
||||
, Заголовки);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат КонечныйОтвет;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Удалить выбранные файлы
|
||||
// Удаляет файл или несколько файлов с сервера Neocities
|
||||
//
|
||||
// Примечание:
|
||||
// Документация Neocities API: [neocities.org/api](@neocities.org/api)
|
||||
//
|
||||
// Параметры:
|
||||
// Токен - Строка - Токен авторизации - token
|
||||
// Пути - Строка, Массив Из Строка - Путь или несколько путей удаляемых файлов - paths
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Neocities
|
||||
Функция УдалитьВыбранныеФайлы(Знач Токен, Знач Пути) Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьМассив(Пути);
|
||||
|
||||
URL = "https://neocities.org/api/delete";
|
||||
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
|
||||
|
||||
Для Н = 0 По Пути.ВГраница() Цикл
|
||||
|
||||
ТекущееЗначение = Пути[Н];
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(ТекущееЗначение);
|
||||
|
||||
Пути.Установить(Н, "filenames[]=" + ТекущееЗначение);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
ПутиСтрокой = СтрСоединить(Пути, "&");
|
||||
Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, ПутиСтрокой, Заголовки, Ложь);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Получить список файлов
|
||||
// Получает список файлов с отбором каталога или без
|
||||
//
|
||||
// Примечание:
|
||||
// Документация Neocities API: [neocities.org/api](@neocities.org/api)
|
||||
//
|
||||
// Параметры:
|
||||
// Токен - Строка - Токен авторизации - token
|
||||
// Путь - Строка - Отбор файлов по каталогу. Все, если не заполнено - path
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Neocities
|
||||
Функция ПолучитьСписокФайлов(Знач Токен, Знач Путь = "") Экспорт
|
||||
|
||||
URL = "https://neocities.org/api/list";
|
||||
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
|
||||
|
||||
Параметры = Новый Структура;
|
||||
OPI_Инструменты.ДобавитьПоле("path", Путь, "Строка", Параметры);
|
||||
|
||||
Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры, Заголовки);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Синхронизировать каталоги
|
||||
// Создает копию локального каталога по выбранному пути на сервере
|
||||
//
|
||||
// Примечание:
|
||||
// Документация Neocities API: [neocities.org/api](@neocities.org/api)
|
||||
// Метод удаляет файлы на сервере, если они отсутствуют в локальном каталоге
|
||||
//
|
||||
// Параметры:
|
||||
// Токен - Строка - Токен авторизации - token
|
||||
// ЛокальныйКаталог - Строка - Локальный каталог источник - local
|
||||
// УдаленныйКаталог - Строка - Удаленный каталог приемника. Корень, если не заполнено - remote
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура Из КлючИЗначение - информация об ошибках синхронизации
|
||||
Функция СинхронизироватьКаталоги(Знач Токен, Знач ЛокальныйКаталог, Знач УдаленныйКаталог = "") Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(ЛокальныйКаталог);
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(УдаленныйКаталог);
|
||||
|
||||
Сообщить("Начало синхронизации...");
|
||||
|
||||
Если ЗначениеЗаполнено(УдаленныйКаталог) Тогда
|
||||
УдаленныйКаталог = ?(СтрЗаканчиваетсяНа(УдаленныйКаталог, "/"), УдаленныйКаталог, УдаленныйКаталог + "/");
|
||||
КонецЕсли;
|
||||
|
||||
УдаленныеФайлы = ПолучитьСписокФайлов(Токен, УдаленныйКаталог);
|
||||
|
||||
Если Не УдаленныеФайлы["result"] = "success" Тогда
|
||||
//@skip-check constructor-function-return-section
|
||||
Возврат УдаленныеФайлы;
|
||||
КонецЕсли;
|
||||
|
||||
ЛокальныеПути = Новый Соответствие;
|
||||
ЛокальныеПодкаталоги = Новый Соответствие;
|
||||
|
||||
ПолучитьНаборыЛокальныхПутей(ЛокальныйКаталог, УдаленныйКаталог, ЛокальныеПути, ЛокальныеПодкаталоги);
|
||||
|
||||
МассивУдаляемых = ПолучитьУдаляемыеФайлы(УдаленныеФайлы, ЛокальныеПути, ЛокальныеПодкаталоги);
|
||||
Результат = ВыполнитьСинхронизацию(Токен, МассивУдаляемых, ЛокальныеПути);
|
||||
|
||||
//@skip-check constructor-function-return-section
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Функция СоздатьЗаголовкиЗапроса(Знач Токен)
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
|
||||
|
||||
Заголовки = Новый Соответствие;
|
||||
Заголовки.Вставить("Authorization", "Bearer " + Токен);
|
||||
Возврат Заголовки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьУдаляемыеФайлы(УдаленныеФайлы, ЛокальныеПути, ЛокальныеПодкаталоги)
|
||||
|
||||
МассивУдаляемых = Новый Массив;
|
||||
|
||||
Для Каждого УдаленныйФайл Из УдаленныеФайлы["files"] Цикл
|
||||
|
||||
ПутьУдаленногоОсновной = УдаленныйФайл["path"];
|
||||
ПутьУдаленногоДополнительный = "/" + УдаленныйФайл["path"];
|
||||
|
||||
Если УдаленныйФайл["is_directory"] Тогда
|
||||
|
||||
СуществующийУдаленный = ЛокальныеПодкаталоги[ПутьУдаленногоОсновной];
|
||||
СуществующийУдаленный = ?(ЗначениеЗаполнено(СуществующийУдаленный)
|
||||
, СуществующийУдаленный
|
||||
, ЛокальныеПодкаталоги[ПутьУдаленногоДополнительный]);
|
||||
|
||||
Иначе
|
||||
СуществующийУдаленный = ЛокальныеПути[ПутьУдаленногоОсновной];
|
||||
СуществующийУдаленный = ?(ЗначениеЗаполнено(СуществующийУдаленный)
|
||||
, СуществующийУдаленный
|
||||
, ЛокальныеПути[ПутьУдаленногоДополнительный]);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если СуществующийУдаленный = Неопределено Тогда
|
||||
МассивУдаляемых.Добавить(ПутьУдаленногоОсновной);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат МассивУдаляемых;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ВыполнитьСинхронизацию(Токен, МассивУдаляемых, ЛокальныеПути)
|
||||
|
||||
МассивОшибок = Новый Массив;
|
||||
|
||||
Если Не МассивУдаляемых.Количество() = 0 Тогда
|
||||
|
||||
Ответ = УдалитьВыбранныеФайлы(Токен, МассивУдаляемых);
|
||||
|
||||
Если Не Ответ["result"] = "success" Тогда
|
||||
МассивОшибок.Добавить(Ответ);
|
||||
|
||||
Иначе
|
||||
|
||||
// BSLLS:UnusedLocalVariable-off
|
||||
|
||||
//@skip-check module-unused-local-variable
|
||||
СообщениеУдаления = СтрШаблон("Удалено %1 лишних файлов", Строка(МассивУдаляемых.Количество()));
|
||||
Сообщить(СообщениеУдаления);
|
||||
|
||||
// BSLLS:UnusedLocalVariable-on
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Всего = OPI_Инструменты.ЧислоВСтроку(ЛокальныеПути.Количество());
|
||||
Счетчик = 0;
|
||||
|
||||
Для Каждого ЛокальныйПуть Из ЛокальныеПути Цикл
|
||||
|
||||
Ответ = ЗагрузитьФайл(Токен, ЛокальныйПуть.Ключ, ЛокальныйПуть.Значение);
|
||||
|
||||
Если Не Ответ["result"] = "success" Тогда
|
||||
|
||||
МассивОшибок.Добавить(Ответ);
|
||||
|
||||
Иначе
|
||||
|
||||
// BSLLS:UnusedLocalVariable-off
|
||||
|
||||
//@skip-check module-unused-local-variable
|
||||
Прогресс = "[" + OPI_Инструменты.ЧислоВСтроку(Счетчик) + "/" + Всего + "] ";
|
||||
Сообщить(Прогресс + ЛокальныйПуть.Ключ + Символы.ПС + Ответ["message"] + Символы.ПС);
|
||||
|
||||
// BSLLS:UnusedLocalVariable-on
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Счетчик = Счетчик + 1;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Новый Структура("errors,items", МассивОшибок.Количество(), МассивОшибок);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ПолучитьНаборыЛокальныхПутей(ЛокальныйКаталог, УдаленныйКаталог, ЛокальныеПути, ЛокальныеПодкаталоги)
|
||||
|
||||
ЛокальныйКаталог = СтрЗаменить(ЛокальныйКаталог, "\", "/");
|
||||
ЛокальныйКаталог = ?(СтрЗаканчиваетсяНа(ЛокальныйКаталог, "/"), ЛокальныйКаталог, ЛокальныйКаталог + "/");
|
||||
|
||||
ЛокальныеФайлы = НайтиФайлы(ЛокальныйКаталог, "*", Истина);
|
||||
|
||||
Для Каждого ЛокальныйФайл Из ЛокальныеФайлы Цикл
|
||||
|
||||
ТекущийАбсПуть = ЛокальныйФайл.ПолноеИмя;
|
||||
ТекущийОтнПуть = Прав(ТекущийАбсПуть, СтрДлина(ТекущийАбсПуть) - СтрДлина(ЛокальныйКаталог));
|
||||
ТекущийОтнПуть = УдаленныйКаталог + ТекущийОтнПуть;
|
||||
|
||||
ТекущийОтнПуть = СтрЗаменить(ТекущийОтнПуть, "\", "/");
|
||||
|
||||
Если ЛокальныйФайл.ЭтоКаталог() Тогда
|
||||
ЛокальныеПодкаталоги.Вставить(ТекущийОтнПуть, ТекущийАбсПуть);
|
||||
Иначе
|
||||
ЛокальныеПути.Вставить(ТекущийОтнПуть, ТекущийАбсПуть);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
59
src/ru/OInt/core/Modules/OPI_Notion.os
vendored
59
src/ru/OInt/core/Modules/OPI_Notion.os
vendored
@@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_Notion.os
|
||||
// OneScript: ./OInt/core/Modules/OPI_Notion.os
|
||||
// Lib: Notion
|
||||
// CLI: notion
|
||||
// Keywords: notion
|
||||
@@ -893,60 +893,3 @@
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
|
||||
#Region Alternate
|
||||
|
||||
Function CreatePage(Val Token, Val Parent, Val Title) Export
|
||||
Return СоздатьСтраницу(Token, Parent, Title);
|
||||
EndFunction
|
||||
|
||||
Function CreatePageInDatabase(Val Token, Val Parent, Val Data) Export
|
||||
Return СоздатьСтраницуВБазу(Token, Parent, Data);
|
||||
EndFunction
|
||||
|
||||
Function GetPage(Val Token, Val Page) Export
|
||||
Return ПолучитьСтраницу(Token, Page);
|
||||
EndFunction
|
||||
|
||||
Function EditPageProperties(Val Token, Val Page, Val Data = "", Val Icon = "", Val Cover = "", Val Archived = False) Export
|
||||
Return ИзменитьСвойстваСтраницы(Token, Page, Data, Icon, Cover, Archived);
|
||||
EndFunction
|
||||
|
||||
Function CreateDatabase(Val Token, Val Parent, Val Title, Val Properties = "") Export
|
||||
Return СоздатьБазуДанных(Token, Parent, Title, Properties);
|
||||
EndFunction
|
||||
|
||||
Function GetDatabase(Val Token, Val Base) Export
|
||||
Return ПолучитьБазуДанных(Token, Base);
|
||||
EndFunction
|
||||
|
||||
Function EditDatabaseProperties(Val Token, Val Base, Val Properties = "", Val Title = "", Val Description = "") Export
|
||||
Return ИзменитьСвойстваБазы(Token, Base, Properties, Title, Description);
|
||||
EndFunction
|
||||
|
||||
Function CreateBlock(Val Token, Val Parent, Val Block, Val InsertAfter = "") Export
|
||||
Return СоздатьБлок(Token, Parent, Block, InsertAfter);
|
||||
EndFunction
|
||||
|
||||
Function ReturnBlock(Val Token, Val BlockID, Val OnlyBase = True) Export
|
||||
Return ВернутьБлок(Token, BlockID, OnlyBase);
|
||||
EndFunction
|
||||
|
||||
Function ReturnChildBlocks(Val Token, Val BlockID) Export
|
||||
Return ВернутьДочерниеБлоки(Token, BlockID);
|
||||
EndFunction
|
||||
|
||||
Function DeleteBlock(Val Token, Val BlockID) Export
|
||||
Return УдалитьБлок(Token, BlockID);
|
||||
EndFunction
|
||||
|
||||
Function UserList(Val Token) Export
|
||||
Return СписокПользователей(Token);
|
||||
EndFunction
|
||||
|
||||
Function GetUserData(Val Token, Val UserID) Export
|
||||
Return ПолучитьДанныеПользователя(Token, UserID);
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
1553
src/ru/OInt/core/Modules/OPI_Ollama.os
vendored
1553
src/ru/OInt/core/Modules/OPI_Ollama.os
vendored
File diff suppressed because it is too large
Load Diff
184
src/ru/OInt/core/Modules/OPI_OpenAI.os
vendored
Normal file
184
src/ru/OInt/core/Modules/OPI_OpenAI.os
vendored
Normal file
@@ -0,0 +1,184 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_OpenAI.os
|
||||
// Lib: OpenAI
|
||||
// CLI: openai
|
||||
|
||||
// MIT License
|
||||
|
||||
// Copyright (c) 2023-2025 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:Typo-off
|
||||
// BSLLS:LatinAndCyrillicSymbolInWord-off
|
||||
// BSLLS:IncorrectLineBreak-off
|
||||
// BSLLS:NumberOfOptionalParams-off
|
||||
// BSLLS:UsingServiceTag-off
|
||||
// BSLLS:LineLength-off
|
||||
|
||||
//@skip-check module-structure-top-region
|
||||
//@skip-check module-structure-method-in-regions
|
||||
//@skip-check wrong-string-literal-content
|
||||
//@skip-check method-too-many-params
|
||||
//@skip-check constructor-function-return-section
|
||||
//@skip-check doc-comment-collection-item-type
|
||||
|
||||
// Раскомментировать, если выполняется OneScript
|
||||
#Использовать "../../tools"
|
||||
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
#Область ОбработкаЗапросов
|
||||
|
||||
// Получить ответ
|
||||
// Генерирует ответ по заданному текстовому запросу
|
||||
//
|
||||
// Примечание:
|
||||
// Метод в документации API: [Create chat completion](@platform.openai.com/docs/api-reference/chat/create)
|
||||
//
|
||||
// Параметры:
|
||||
// URL - Строка - URL сервера Ollama - url
|
||||
// Токен - Строка - Токен авторизации OpenAI - token
|
||||
// Модель - Строка - Имя модели - model
|
||||
// Сообщения - Строка, Массив Из Строка - Сообщения разговора. См. ПолучитьСтруктуруСообщения - msgs
|
||||
// ДопПараметры - Структура Из КлючИЗначение - Коллекция КлючЗначение дополнительных параметров - options
|
||||
// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп. заголовки запроса, если необходимо - headers
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - Результат обработки
|
||||
Функция ПолучитьОтвет(Знач URL, Знач Токен, Знач Модель, Знач Сообщения, Знач ДопПараметры = "", Знач ДопЗаголовки = "") Экспорт
|
||||
|
||||
ДополнитьURL(URL, "v1/chat/completions");
|
||||
|
||||
Параметры = Новый Структура;
|
||||
OPI_Инструменты.ДобавитьПоле("model" , Модель , "Строка", Параметры);
|
||||
OPI_Инструменты.ДобавитьПоле("messages", Сообщения, "Массив", Параметры);
|
||||
OPI_Инструменты.ДобавитьПоле("stream" , Ложь , "Булево", Параметры);
|
||||
|
||||
ОбработатьПараметры(Параметры, ДопПараметры);
|
||||
ОбработатьЗаголовки(ДопЗаголовки, Токен);
|
||||
|
||||
Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, ДопЗаголовки);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Получить представления
|
||||
// Получает представления (embeddings) для заданных вводных
|
||||
//
|
||||
// Примечание:
|
||||
// Метод в документации API: [Create embeddings](@platform.openai.com/docs/api-reference/embeddings/create)
|
||||
//
|
||||
// Параметры:
|
||||
// URL - Строка - URL сервера Ollama - url
|
||||
// Токен - Строка - Токен авторизации OpenAI - token
|
||||
// Модель - Строка - Имя модели - model
|
||||
// Текст - Массив Из Строка - Строка или массив строк запросов - input
|
||||
// ДопПараметры - Структура Из КлючИЗначение - Доп. параметры. См. ПолучитьСтруктуруПараметровПредставлений - options
|
||||
// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп заголовки запроса, если необходимо - headers
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - Результат обработки
|
||||
Функция ПолучитьПредставления(Знач URL, Знач Токен, Знач Модель, Знач Текст, Знач ДопПараметры = "", Знач ДопЗаголовки = "") Экспорт
|
||||
|
||||
ДополнитьURL(URL, "v1/embeddings");
|
||||
|
||||
Параметры = Новый Структура;
|
||||
|
||||
OPI_Инструменты.ДобавитьПоле("model", Модель, "Строка", Параметры);
|
||||
OPI_Инструменты.ДобавитьПоле("input", Текст , "Массив", Параметры);
|
||||
|
||||
ОбработатьПараметры(Параметры, ДопПараметры);
|
||||
ОбработатьЗаголовки(ДопЗаголовки, Токен);
|
||||
|
||||
Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, ДопЗаголовки);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Получить структуру сообщения контекста
|
||||
// Получает структуру сообщения для списка сообщений запроса
|
||||
//
|
||||
// Параметры:
|
||||
// Роль - Строка - Источник сообщения: system, user, developer - role
|
||||
// Текст - Строка - Текст сообщения - text
|
||||
// Имя - Строка - Имя участника разговора - name
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура Из КлючИЗначение - Структура полей
|
||||
Функция ПолучитьСтруктуруСообщения(Знач Роль, Знач Текст, Знач Имя = "") Экспорт
|
||||
|
||||
СтруктураПолей = Новый Структура;
|
||||
|
||||
OPI_Инструменты.ДобавитьПоле("role" , Роль , "Строка", СтруктураПолей);
|
||||
OPI_Инструменты.ДобавитьПоле("content", Текст, "Строка", СтруктураПолей);
|
||||
OPI_Инструменты.ДобавитьПоле("name" , Имя , "Строка", СтруктураПолей);
|
||||
|
||||
Возврат СтруктураПолей;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Процедура ДополнитьURL(URL, Знач Путь)
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(URL);
|
||||
|
||||
URL = ?(СтрЗаканчиваетсяНа(URL, "/"), URL, URL + "/");
|
||||
URL = URL + Путь;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбработатьПараметры(Параметры, Знач ДопПараметры)
|
||||
|
||||
Если Не ЗначениеЗаполнено(ДопПараметры) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ТекстОшибки = "Передана некорректная коллекция доп. параметров!";
|
||||
OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(ДопПараметры, ТекстОшибки);
|
||||
|
||||
Для Каждого ДопПараметр Из ДопПараметры Цикл
|
||||
Параметры.Вставить(ДопПараметр.Ключ, ДопПараметр.Значение);
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбработатьЗаголовки(ДопЗаголовки, Знач Токен)
|
||||
|
||||
Если Не ЗначениеЗаполнено(ДопЗаголовки) Тогда
|
||||
ДопЗаголовки = Новый Соответствие;
|
||||
Иначе
|
||||
ТекстОшибки = "Передана некорректная коллекция доп. заголовков!";
|
||||
OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(ДопЗаголовки, ТекстОшибки);
|
||||
КонецЕсли;
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
|
||||
ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
4041
src/ru/OInt/core/Modules/OPI_Ozon.os
vendored
4041
src/ru/OInt/core/Modules/OPI_Ozon.os
vendored
File diff suppressed because it is too large
Load Diff
1319
src/ru/OInt/core/Modules/OPI_PostgreSQL.os
vendored
1319
src/ru/OInt/core/Modules/OPI_PostgreSQL.os
vendored
File diff suppressed because it is too large
Load Diff
349
src/ru/OInt/core/Modules/OPI_RCON.os
vendored
349
src/ru/OInt/core/Modules/OPI_RCON.os
vendored
@@ -1,185 +1,164 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_RCON.os
|
||||
// Lib: RCON
|
||||
// CLI: rcon
|
||||
// Keywords: rcon, remote console
|
||||
|
||||
// MIT License
|
||||
|
||||
// Copyright (c) 2023-2025 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:Typo-off
|
||||
// BSLLS:LatinAndCyrillicSymbolInWord-off
|
||||
// BSLLS:IncorrectLineBreak-off
|
||||
// BSLLS:NumberOfOptionalParams-off
|
||||
// BSLLS:UsingServiceTag-off
|
||||
// BSLLS:LineLength-off
|
||||
|
||||
//@skip-check module-structure-top-region
|
||||
//@skip-check module-structure-method-in-regions
|
||||
//@skip-check wrong-string-literal-content
|
||||
//@skip-check method-too-many-params
|
||||
|
||||
// Раскомментировать, если выполняется OneScript
|
||||
#Использовать "../../tools"
|
||||
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
#Область ВыполнениеКоманд
|
||||
|
||||
// Открыть соединение !NOCLI
|
||||
// Открывает новое соединения RCON
|
||||
//
|
||||
// Параметры:
|
||||
// ПараметрыСоединения - Структура Из КлючИЗначение - Параметры соединения. См. СформироватьПараметрыСоединения - params
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Произвольный - Объект коннектора или структура с информацией об ошибке
|
||||
Функция ОткрытьСоединение(Знач ПараметрыСоединения) Экспорт
|
||||
|
||||
Если ЭтоКоннектор(ПараметрыСоединения) Тогда
|
||||
Возврат ПараметрыСоединения;
|
||||
КонецЕсли;
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(ПараметрыСоединения);
|
||||
|
||||
МассивОбязательных = СтрРазделить("url,password,read_timeout,write_timeout", ",");
|
||||
МассивНедостающих = OPI_Инструменты.НайтиОтсутствующиеПоляКоллекции(ПараметрыСоединения, МассивОбязательных);
|
||||
|
||||
Если ЗначениеЗаполнено(МассивНедостающих) Тогда
|
||||
ВызватьИсключение СтрШаблон("Отсутствуют параметры подключения: %1", СтрСоединить(МассивНедостающих, ", "));
|
||||
КонецЕсли;
|
||||
|
||||
Коннектор = OPI_Компоненты.ПолучитьКомпоненту("RCON");
|
||||
|
||||
URL = ПараметрыСоединения["url"];
|
||||
Пароль = ПараметрыСоединения["password"];
|
||||
ТаймаутЧтения = ПараметрыСоединения["read_timeout"];
|
||||
ТаймаутЗаписи = ПараметрыСоединения["write_timeout"];
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(URL);
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Пароль);
|
||||
OPI_ПреобразованиеТипов.ПолучитьЧисло(ТаймаутЧтения);
|
||||
OPI_ПреобразованиеТипов.ПолучитьЧисло(ТаймаутЗаписи);
|
||||
|
||||
Результат = Коннектор.Connect(URL, Пароль, ТаймаутЧтения, ТаймаутЗаписи);
|
||||
Результат = OPI_Инструменты.JsonВСтруктуру(Результат, Ложь);
|
||||
|
||||
Возврат ?(Результат["result"], Коннектор, Результат);
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Выполнить команду
|
||||
// Выполняет команду на сервере
|
||||
//
|
||||
// Примечание:
|
||||
// При передаче параметров соединения, новое соединение будет создано и закрыто в рамках выполнения одной команды.^^
|
||||
// Для выполнения нескольких команд (в версиях для OS и 1С) рекомендуется использовать заранее созданное соединение (см. ОткрытьСоединение)
|
||||
//
|
||||
// Параметры:
|
||||
// Команда - Строка - Текст команды - exec
|
||||
// Соединение - Произвольный, Структура Из КлючИЗначение - Соединение или параметры соединения - conn
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - Результат выполнения команды
|
||||
Функция ВыполнитьКоманду(Знач Команда, Знач Соединение) Экспорт
|
||||
|
||||
Если ЭтоКоннектор(Соединение) Тогда
|
||||
Коннектор = Соединение;
|
||||
Иначе
|
||||
Коннектор = ОткрытьСоединение(Соединение);
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ЭтоКоннектор(Коннектор) Тогда
|
||||
Возврат Коннектор;
|
||||
КонецЕсли;
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Команда);
|
||||
|
||||
Результат = Коннектор.Command(Команда);
|
||||
Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Сформировать параметры соединения
|
||||
// Формирует коллекцию параметров соединения
|
||||
//
|
||||
// Параметры:
|
||||
// URL - Строка - URL сервера - url
|
||||
// Пароль - Строка - Пароль для подключения - pass
|
||||
// ТаймаутЧтения - Число - Таймаут ожидания ответа (в секундах) - rtout
|
||||
// ТаймаутЗаписи - Число - Таймаут ожидания отправки запроса (в секундах) - wtout
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура Из КлючИЗначение - Структура параметров соединения
|
||||
Функция СформироватьПараметрыСоединения(Знач URL, Знач Пароль, Знач ТаймаутЧтения = 30, Знач ТаймаутЗаписи = 30) Экспорт
|
||||
|
||||
ПараметрыСоединения = Новый Структура;
|
||||
OPI_Инструменты.ДобавитьПоле("url" , URL , "Строка", ПараметрыСоединения);
|
||||
OPI_Инструменты.ДобавитьПоле("password" , Пароль , "Строка", ПараметрыСоединения);
|
||||
OPI_Инструменты.ДобавитьПоле("read_timeout" , ТаймаутЧтения, "Число" , ПараметрыСоединения);
|
||||
OPI_Инструменты.ДобавитьПоле("write_timeout", ТаймаутЗаписи, "Число" , ПараметрыСоединения);
|
||||
|
||||
Возврат ПараметрыСоединения;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Это коннектор !NOCLI
|
||||
// Проверяет, что значение является объектом внешней компоненты RCON
|
||||
//
|
||||
// Параметры:
|
||||
// Значение - Произвольный - Значение для проверки - value
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Булево - Это коннектор
|
||||
Функция ЭтоКоннектор(Знач Значение) Экспорт
|
||||
|
||||
Возврат Строка(ТипЗнч(Значение)) = "AddIn.OPI_RCON.Main";
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
|
||||
#Region Alternate
|
||||
|
||||
Function CreateConnection(Val ConnectionParams) Export
|
||||
Return ОткрытьСоединение(ConnectionParams);
|
||||
EndFunction
|
||||
|
||||
Function ExecuteCommand(Val Command, Val Connection) Export
|
||||
Return ВыполнитьКоманду(Command, Connection);
|
||||
EndFunction
|
||||
|
||||
Function FormConnectionParameters(Val URL, Val Password, Val ReadTimeout = 30, Val WriteTimeout = 30) Export
|
||||
Return СформироватьПараметрыСоединения(URL, Password, ReadTimeout, WriteTimeout);
|
||||
EndFunction
|
||||
|
||||
Function IsConnector(Val Value) Export
|
||||
Return ЭтоКоннектор(Value);
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
// OneScript: ./OInt/core/Modules/OPI_RCON.os
|
||||
// Lib: RCON
|
||||
// CLI: rcon
|
||||
// Keywords: rcon, remote console
|
||||
|
||||
// MIT License
|
||||
|
||||
// Copyright (c) 2023-2025 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:Typo-off
|
||||
// BSLLS:LatinAndCyrillicSymbolInWord-off
|
||||
// BSLLS:IncorrectLineBreak-off
|
||||
// BSLLS:NumberOfOptionalParams-off
|
||||
// BSLLS:UsingServiceTag-off
|
||||
// BSLLS:LineLength-off
|
||||
|
||||
//@skip-check module-structure-top-region
|
||||
//@skip-check module-structure-method-in-regions
|
||||
//@skip-check wrong-string-literal-content
|
||||
//@skip-check method-too-many-params
|
||||
|
||||
// Раскомментировать, если выполняется OneScript
|
||||
#Использовать "../../tools"
|
||||
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
#Область ВыполнениеКоманд
|
||||
|
||||
// Открыть соединение !NOCLI
|
||||
// Открывает новое соединения RCON
|
||||
//
|
||||
// Параметры:
|
||||
// ПараметрыСоединения - Структура Из КлючИЗначение - Параметры соединения. См. СформироватьПараметрыСоединения - params
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Произвольный - Объект коннектора или структура с информацией об ошибке
|
||||
Функция ОткрытьСоединение(Знач ПараметрыСоединения) Экспорт
|
||||
|
||||
Если ЭтоКоннектор(ПараметрыСоединения) Тогда
|
||||
Возврат ПараметрыСоединения;
|
||||
КонецЕсли;
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(ПараметрыСоединения);
|
||||
|
||||
МассивОбязательных = СтрРазделить("url,password,read_timeout,write_timeout", ",");
|
||||
МассивНедостающих = OPI_Инструменты.НайтиОтсутствующиеПоляКоллекции(ПараметрыСоединения, МассивОбязательных);
|
||||
|
||||
Если ЗначениеЗаполнено(МассивНедостающих) Тогда
|
||||
ВызватьИсключение СтрШаблон("Отсутствуют параметры подключения: %1", СтрСоединить(МассивНедостающих, ", "));
|
||||
КонецЕсли;
|
||||
|
||||
Коннектор = OPI_Компоненты.ПолучитьКомпоненту("RCON");
|
||||
|
||||
URL = ПараметрыСоединения["url"];
|
||||
Пароль = ПараметрыСоединения["password"];
|
||||
ТаймаутЧтения = ПараметрыСоединения["read_timeout"];
|
||||
ТаймаутЗаписи = ПараметрыСоединения["write_timeout"];
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(URL);
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Пароль);
|
||||
OPI_ПреобразованиеТипов.ПолучитьЧисло(ТаймаутЧтения);
|
||||
OPI_ПреобразованиеТипов.ПолучитьЧисло(ТаймаутЗаписи);
|
||||
|
||||
Результат = Коннектор.Connect(URL, Пароль, ТаймаутЧтения, ТаймаутЗаписи);
|
||||
Результат = OPI_Инструменты.JsonВСтруктуру(Результат, Ложь);
|
||||
|
||||
Возврат ?(Результат["result"], Коннектор, Результат);
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Выполнить команду
|
||||
// Выполняет команду на сервере
|
||||
//
|
||||
// Примечание:
|
||||
// При передаче параметров соединения, новое соединение будет создано и закрыто в рамках выполнения одной команды.^^
|
||||
// Для выполнения нескольких команд (в версиях для OS и 1С) рекомендуется использовать заранее созданное соединение (см. ОткрытьСоединение)
|
||||
//
|
||||
// Параметры:
|
||||
// Команда - Строка - Текст команды - exec
|
||||
// Соединение - Произвольный, Структура Из КлючИЗначение - Соединение или параметры соединения - conn
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - Результат выполнения команды
|
||||
Функция ВыполнитьКоманду(Знач Команда, Знач Соединение) Экспорт
|
||||
|
||||
Если ЭтоКоннектор(Соединение) Тогда
|
||||
Коннектор = Соединение;
|
||||
Иначе
|
||||
Коннектор = ОткрытьСоединение(Соединение);
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ЭтоКоннектор(Коннектор) Тогда
|
||||
Возврат Коннектор;
|
||||
КонецЕсли;
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Команда);
|
||||
|
||||
Результат = Коннектор.Command(Команда);
|
||||
Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Сформировать параметры соединения
|
||||
// Формирует коллекцию параметров соединения
|
||||
//
|
||||
// Параметры:
|
||||
// URL - Строка - URL сервера - url
|
||||
// Пароль - Строка - Пароль для подключения - pass
|
||||
// ТаймаутЧтения - Число - Таймаут ожидания ответа (в секундах) - rtout
|
||||
// ТаймаутЗаписи - Число - Таймаут ожидания отправки запроса (в секундах) - wtout
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура Из КлючИЗначение - Структура параметров соединения
|
||||
Функция СформироватьПараметрыСоединения(Знач URL, Знач Пароль, Знач ТаймаутЧтения = 30, Знач ТаймаутЗаписи = 30) Экспорт
|
||||
|
||||
ПараметрыСоединения = Новый Структура;
|
||||
OPI_Инструменты.ДобавитьПоле("url" , URL , "Строка", ПараметрыСоединения);
|
||||
OPI_Инструменты.ДобавитьПоле("password" , Пароль , "Строка", ПараметрыСоединения);
|
||||
OPI_Инструменты.ДобавитьПоле("read_timeout" , ТаймаутЧтения, "Число" , ПараметрыСоединения);
|
||||
OPI_Инструменты.ДобавитьПоле("write_timeout", ТаймаутЗаписи, "Число" , ПараметрыСоединения);
|
||||
|
||||
Возврат ПараметрыСоединения;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Это коннектор !NOCLI
|
||||
// Проверяет, что значение является объектом внешней компоненты RCON
|
||||
//
|
||||
// Параметры:
|
||||
// Значение - Произвольный - Значение для проверки - value
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Булево - Это коннектор
|
||||
Функция ЭтоКоннектор(Знач Значение) Экспорт
|
||||
|
||||
Возврат Строка(ТипЗнч(Значение)) = "AddIn.OPI_RCON.Main";
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
3995
src/ru/OInt/core/Modules/OPI_S3.os
vendored
3995
src/ru/OInt/core/Modules/OPI_S3.os
vendored
File diff suppressed because it is too large
Load Diff
1015
src/ru/OInt/core/Modules/OPI_SQLite.os
vendored
1015
src/ru/OInt/core/Modules/OPI_SQLite.os
vendored
File diff suppressed because it is too large
Load Diff
155
src/ru/OInt/core/Modules/OPI_Slack.os
vendored
155
src/ru/OInt/core/Modules/OPI_Slack.os
vendored
@@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_Slack.os
|
||||
// OneScript: ./OInt/core/Modules/OPI_Slack.os
|
||||
// Lib: Slack
|
||||
// CLI: slack
|
||||
// Keywords: slack
|
||||
@@ -1042,156 +1042,3 @@
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
|
||||
#Region Alternate
|
||||
|
||||
Function GetBotInformation(Val Token) Export
|
||||
Return ПолучитьИнформациюОБоте(Token);
|
||||
EndFunction
|
||||
|
||||
Function GetWorkspaceList(Val Token, Val Cursor = "") Export
|
||||
Return ПолучитьСписокРабочихОбластей(Token, Cursor);
|
||||
EndFunction
|
||||
|
||||
Function GetUserList(Val Token, Val Cursor = "") Export
|
||||
Return ПолучитьСписокПользователей(Token, Cursor);
|
||||
EndFunction
|
||||
|
||||
Function SendMessage(Val Token, Val Channel, Val Text = "", Val SendingDate = "", Val Blocks = "") Export
|
||||
Return ОтправитьСообщение(Token, Channel, Text, SendingDate, Blocks);
|
||||
EndFunction
|
||||
|
||||
Function SendEphemeralMessage(Val Token, Val Channel, Val Text = "", Val User = "", Val Blocks = "") Export
|
||||
Return ОтправитьЭфемерноеСообщение(Token, Channel, Text, User, Blocks);
|
||||
EndFunction
|
||||
|
||||
Function EditMessage(Val Token, Val Channel, Val Timestamp, Val Text = "", Val BlockArray = "") Export
|
||||
Return ИзменитьСообщение(Token, Channel, Timestamp, Text, BlockArray);
|
||||
EndFunction
|
||||
|
||||
Function DeleteMessage(Val Token, Val Channel, Val Timestamp, Val IsDelayed = False) Export
|
||||
Return УдалитьСообщение(Token, Channel, Timestamp, IsDelayed);
|
||||
EndFunction
|
||||
|
||||
Function GetDelayedMessageList(Val Token, Val Channel, Val Cursor = "") Export
|
||||
Return ПолучитьСписокОтложенныхСообщений(Token, Channel, Cursor);
|
||||
EndFunction
|
||||
|
||||
Function GetMessageLink(Val Token, Val Channel, Val Timestamp) Export
|
||||
Return ПолучитьСсылкуНаСообщение(Token, Channel, Timestamp);
|
||||
EndFunction
|
||||
|
||||
Function GetMessageReplyList(Val Token, Val Channel, Val Timestamp, Val Cursor = "") Export
|
||||
Return ПолучитьСписокОтветовНаСообщение(Token, Channel, Timestamp, Cursor);
|
||||
EndFunction
|
||||
|
||||
Function GetChannelList(Val Token, Val ExcludeArchived = False, Val Cursor = "") Export
|
||||
Return ПолучитьСписокКаналов(Token, ExcludeArchived, Cursor);
|
||||
EndFunction
|
||||
|
||||
Function GetChannelUserList(Val Token, Val Channel, Val Cursor = "") Export
|
||||
Return ПолучитьСписокПользователейКанала(Token, Channel, Cursor);
|
||||
EndFunction
|
||||
|
||||
Function CreateChannel(Val Token, Val Name, Val Private = False) Export
|
||||
Return СоздатьКанал(Token, Name, Private);
|
||||
EndFunction
|
||||
|
||||
Function ArchiveChannel(Val Token, Val Channel) Export
|
||||
Return АрхивироватьКанал(Token, Channel);
|
||||
EndFunction
|
||||
|
||||
Function GetChannel(Val Token, Val Channel) Export
|
||||
Return ПолучитьКанал(Token, Channel);
|
||||
EndFunction
|
||||
|
||||
Function GetChannelHistory(Val Token, Val Channel) Export
|
||||
Return ПолучитьИсториюКанала(Token, Channel);
|
||||
EndFunction
|
||||
|
||||
Function InviteUsersToChannel(Val Token, Val Channel, Val ArrayOfUsers) Export
|
||||
Return ПригласитьПользователейВКанал(Token, Channel, ArrayOfUsers);
|
||||
EndFunction
|
||||
|
||||
Function KickUserFromChannel(Val Token, Val Channel, Val User) Export
|
||||
Return ВыгнатьПользователяИзКанала(Token, Channel, User);
|
||||
EndFunction
|
||||
|
||||
Function JoinChannel(Val Token, Val Channel) Export
|
||||
Return ВступитьВКанал(Token, Channel);
|
||||
EndFunction
|
||||
|
||||
Function LeaveChannel(Val Token, Val Channel) Export
|
||||
Return ПокинутьКанал(Token, Channel);
|
||||
EndFunction
|
||||
|
||||
Function SetChannelTopic(Val Token, Val Channel, Val Topic) Export
|
||||
Return УстановитьТемуКанала(Token, Channel, Topic);
|
||||
EndFunction
|
||||
|
||||
Function SetChannelGoal(Val Token, Val Channel, Val Purpose) Export
|
||||
Return УстановитьЦельКанала(Token, Channel, Purpose);
|
||||
EndFunction
|
||||
|
||||
Function RenameChannel(Val Token, Val Channel, Val Name) Export
|
||||
Return ПереименоватьКанал(Token, Channel, Name);
|
||||
EndFunction
|
||||
|
||||
Function OpenDialog(Val Token, Val ArrayOfUsers) Export
|
||||
Return ОткрытьДиалог(Token, ArrayOfUsers);
|
||||
EndFunction
|
||||
|
||||
Function CloseDialog(Val Token, Val Dialog) Export
|
||||
Return ЗакрытьДиалог(Token, Dialog);
|
||||
EndFunction
|
||||
|
||||
Function GetFilesList(Val Token, Val Channel = "", Val PageNumber = 1) Export
|
||||
Return ПолучитьСписокФайлов(Token, Channel, PageNumber);
|
||||
EndFunction
|
||||
|
||||
Function UploadFile(Val Token, Val File, Val FileName, Val Title, Val Channel = "") Export
|
||||
Return ЗагрузитьФайл(Token, File, FileName, Title, Channel);
|
||||
EndFunction
|
||||
|
||||
Function GetFileData(Val Token, Val FileID) Export
|
||||
Return ПолучитьДанныеФайла(Token, FileID);
|
||||
EndFunction
|
||||
|
||||
Function DeleteFile(Val Token, Val FileID) Export
|
||||
Return УдалитьФайл(Token, FileID);
|
||||
EndFunction
|
||||
|
||||
Function MakeFilePublic(Val Token, Val FileID) Export
|
||||
Return СделатьФайлПубличным(Token, FileID);
|
||||
EndFunction
|
||||
|
||||
Function MakeFilePrivate(Val Token, Val FileID) Export
|
||||
Return СделатьФайлПриватным(Token, FileID);
|
||||
EndFunction
|
||||
|
||||
Function GetExternalFileList(Val Token, Val Channel = "", Val Cursor = "") Export
|
||||
Return ПолучитьСписокВнешнихФайлов(Token, Channel, Cursor);
|
||||
EndFunction
|
||||
|
||||
Function GetExternalFile(Val Token, Val FileID) Export
|
||||
Return ПолучитьВнешнийФайл(Token, FileID);
|
||||
EndFunction
|
||||
|
||||
Function AddExternalFile(Val Token, Val URL, Val Title) Export
|
||||
Return ДобавитьВнешнийФайл(Token, URL, Title);
|
||||
EndFunction
|
||||
|
||||
Function SendExternalFile(Val Token, Val FileID, Val ChannelArray) Export
|
||||
Return ОтправитьВнешнийФайл(Token, FileID, ChannelArray);
|
||||
EndFunction
|
||||
|
||||
Function DeleteExternalFile(Val Token, Val FileID) Export
|
||||
Return УдалитьВнешнийФайл(Token, FileID);
|
||||
EndFunction
|
||||
|
||||
Function GenerateImageBlock(Val URL, Val AlternateText = "") Export
|
||||
Return СформироватьБлокКартинку(URL, AlternateText);
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
661
src/ru/OInt/core/Modules/OPI_TCP.os
vendored
661
src/ru/OInt/core/Modules/OPI_TCP.os
vendored
@@ -1,351 +1,310 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_TCP.os
|
||||
// Lib: TCP
|
||||
// CLI: tcp
|
||||
// Keywords: tcp
|
||||
|
||||
// MIT License
|
||||
|
||||
// Copyright (c) 2023-2025 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:Typo-off
|
||||
// BSLLS:LatinAndCyrillicSymbolInWord-off
|
||||
// BSLLS:IncorrectLineBreak-off
|
||||
// BSLLS:NumberOfOptionalParams-off
|
||||
// BSLLS:UsingServiceTag-off
|
||||
// BSLLS:LineLength-off
|
||||
|
||||
//@skip-check module-structure-top-region
|
||||
//@skip-check module-structure-method-in-regions
|
||||
//@skip-check wrong-string-literal-content
|
||||
//@skip-check method-too-many-params
|
||||
|
||||
// Раскомментировать, если выполняется OneScript
|
||||
#Использовать "../../tools"
|
||||
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
#Область МетодыКлиента
|
||||
|
||||
// Открыть соединение !NOCLI
|
||||
// Создает TCP соединение
|
||||
//
|
||||
// Параметры:
|
||||
// Адрес - Строка - Адрес и порт для подключения - address
|
||||
// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение, Произвольный - Возвращает объект TCP клиента при успешном подключении или информацию об ошибке
|
||||
Функция ОткрытьСоединение(Знач Адрес, Знач Tls = "") Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Адрес);
|
||||
OPI_Инструменты.ВернутьУправляющиеПоследовательности(Адрес);
|
||||
|
||||
Домен = OPI_Инструменты.ПолучитьДомен(Адрес);
|
||||
|
||||
TCPКлиент = OPI_Компоненты.ПолучитьКомпоненту("TCPClient");
|
||||
Успех = TCPКлиент.SetAddress(Адрес, Домен);
|
||||
|
||||
Если Не Успех Тогда
|
||||
Возврат ПолучитьПоследнююОшибку(TCPКлиент);
|
||||
КонецЕсли;
|
||||
|
||||
Tls = OPI_Компоненты.УстановитьTls(TCPКлиент, Tls);
|
||||
|
||||
Если Не OPI_Инструменты.ПолучитьИли(Tls, "result", Ложь) Тогда
|
||||
Возврат Tls;
|
||||
КонецЕсли;
|
||||
|
||||
Успех = TCPКлиент.Connect();
|
||||
|
||||
Если Не Успех Тогда
|
||||
Возврат ПолучитьПоследнююОшибку(TCPКлиент);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат TCPКлиент;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Закрыть соединение !NOCLI
|
||||
// Явно закрывает созданное ранее соединение
|
||||
//
|
||||
// Параметры:
|
||||
// Соединение - Произвольный - Соединение, см. ОткрытьСоединение - tcp
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Булево - всегда возвращает Истина
|
||||
Функция ЗакрытьСоединение(Знач Соединение) Экспорт
|
||||
|
||||
Возврат Соединение.Disconnect();
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Прочитать двоичные данные !NOCLI
|
||||
// Читает данные из указанного соединения
|
||||
//
|
||||
// Примечание:
|
||||
// При работе с бесконечным потоком входящих данных обязательно указание параметра МаксимальныйРазмер, так как^^
|
||||
// бесконечное получение данных может привести к зависанию
|
||||
// При закрытии соединения, ошибке или обнаружении EOF чтение завершается в любом случае
|
||||
//
|
||||
// Параметры:
|
||||
// Соединение - Произвольный - Соединение, см. ОткрытьСоединение - tcp
|
||||
// МаксимальныйРазмер - Число - Максимальный размер данных (байт). 0 > без ограничений - size
|
||||
// Маркер - Строка, ДвоичныеДанные - Маркер конца сообщения. Пусто > без маркера - marker
|
||||
// Таймаут - Число - Таймаут ожидания данных (мс). 0 > без ограничений - timeout
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ДвоичныеДанные - Полученные данные
|
||||
Функция ПрочитатьДвоичныеДанные(Знач Соединение
|
||||
, Знач МаксимальныйРазмер = 0
|
||||
, Знач Маркер = ""
|
||||
, Знач Таймаут = 5000) Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьЧисло(Таймаут);
|
||||
OPI_ПреобразованиеТипов.ПолучитьЧисло(МаксимальныйРазмер);
|
||||
|
||||
Если ТипЗнч(Маркер) = Тип("Строка") Тогда
|
||||
Маркер = ПолучитьДвоичныеДанныеИзСтроки(Маркер);
|
||||
Иначе
|
||||
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Маркер);
|
||||
КонецЕсли;
|
||||
|
||||
Данные = Соединение.Read(МаксимальныйРазмер, Маркер, Таймаут);
|
||||
|
||||
Возврат Данные;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Прочитать строку !NOCLI
|
||||
// Читает данные из указанного соединения в виде строки
|
||||
//
|
||||
// Примечание:
|
||||
// При закрытии соединения, ошибке или обнаружении EOF чтение завершается в любом случае
|
||||
//
|
||||
// Параметры:
|
||||
// Соединение - Произвольный - Соединение, см. ОткрытьСоединение - tcp
|
||||
// Кодировка - Строка - Кодировка преобразования данных в строку - enc
|
||||
// Маркер - Строка, ДвоичныеДанные - Маркер конца сообщения. Пусто > без маркера - marker
|
||||
// Таймаут - Число - Таймаут ожидания данных (мс). 0 > без ограничений - timeout
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Строка - Полученные данные в виде строки
|
||||
Функция ПрочитатьСтроку(Знач Соединение
|
||||
, Знач Кодировка = "UTF-8"
|
||||
, Знач Маркер = ""
|
||||
, Знач Таймаут = 5000) Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Кодировка);
|
||||
|
||||
Данные = ПрочитатьДвоичныеДанные(Соединение, , Маркер, Таймаут);
|
||||
Данные = ПолучитьСтрокуИзДвоичныхДанных(Данные, Кодировка);
|
||||
|
||||
Возврат Данные;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Отправить двоичные данные !NOCLI
|
||||
// Отправляет двоичные данные через указанное соединение
|
||||
//
|
||||
// Параметры:
|
||||
// Соединение - Произвольный - Соединение, см. ОткрытьСоединение - tcp
|
||||
// Данные - ДвоичныеДанные - Данные для отправки - data
|
||||
// Таймаут - Число - Таймаут ожидания записи (мс). 0 > без ограничений - timeout
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Булево - Признак успешного выполнения
|
||||
Функция ОтправитьДвоичныеДанные(Знач Соединение, Знач Данные, Знач Таймаут = 5000) Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Данные);
|
||||
OPI_ПреобразованиеТипов.ПолучитьЧисло(Таймаут);
|
||||
|
||||
Результат = Соединение.Send(Данные, Таймаут);
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Отправить строку !NOCLI
|
||||
// Отправляет данные в виде строки через указанное соединение
|
||||
//
|
||||
// Параметры:
|
||||
// Соединение - Произвольный - Соединение, см. ОткрытьСоединение - tcp
|
||||
// Данные - Строка - Данные для отправки в виде строки - data
|
||||
// Кодировка - Строка - Кодировка для записи исходящей строки в поток - enc
|
||||
// Таймаут - Число - Таймаут ожидания записи (мс). 0 > без ограничений - timeout
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Булево - Признак успешного выполнения
|
||||
Функция ОтправитьСтроку(Знач Соединение, Знач Данные, Знач Кодировка = "UTF-8", Знач Таймаут = 5000) Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Данные);
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Кодировка);
|
||||
|
||||
ДанныеДД = ПолучитьДвоичныеДанныеИзСтроки(Данные, Кодировка);
|
||||
|
||||
Результат = ОтправитьДвоичныеДанные(Соединение, ДанныеДД, Таймаут);
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Обработать запрос
|
||||
// Отправляет одиночный запрос на указанный адрес и получает ответ, используя стандартные настройки
|
||||
//
|
||||
// Параметры:
|
||||
// Адрес - Строка - Адрес и порт для подключения - address
|
||||
// Данные - Строка, ДвоичныеДанные - Данные или текст для отправки - data
|
||||
// ОтветСтрокой - Булево - Признак получения ответа как строки - string
|
||||
// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ДвоичныеДанные, Строка - Ответ на запрос или информация об ошибке
|
||||
Функция ОбработатьЗапрос(Знач Адрес, Знач Данные = "", Знач ОтветСтрокой = Истина, Знач Tls = "") Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Данные, Истина, Ложь);
|
||||
OPI_ПреобразованиеТипов.ПолучитьБулево(ОтветСтрокой);
|
||||
|
||||
Соединение = ОткрытьСоединение(Адрес, Tls);
|
||||
|
||||
Если Не OPI_Компоненты.ЭтоКомпонента(Соединение) Тогда
|
||||
Возврат Соединение;
|
||||
КонецЕсли;
|
||||
|
||||
Результат = ОтправитьДвоичныеДанные(Соединение, Данные);
|
||||
|
||||
Если Результат Тогда
|
||||
|
||||
Ответ = ПрочитатьДвоичныеДанные(Соединение, , Символы.ПС);
|
||||
|
||||
Если Не ЗначениеЗаполнено(Ответ) Тогда
|
||||
|
||||
Ошибка = ПолучитьПоследнююОшибку(Соединение);
|
||||
|
||||
Если ЗначениеЗаполнено(Ошибка) Тогда
|
||||
Ответ = OPI_Инструменты.JSONСтрокой(Ошибка);
|
||||
Ответ = ПолучитьДвоичныеДанныеИзСтроки(Ответ);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Ответ = ?(ОтветСтрокой, ПолучитьСтрокуИзДвоичныхДанных(Ответ), Ответ);
|
||||
|
||||
Иначе
|
||||
|
||||
Ответ = ПолучитьПоследнююОшибку(Соединение);
|
||||
Ответ = ?(ЗначениеЗаполнено(Ответ), OPI_Инструменты.JSONСтрокой(Ответ), "OPI: Не удалось отправить сообщение");
|
||||
|
||||
Ответ = ?(ОтветСтрокой, Ответ, ПолучитьДвоичныеДанныеИзСтроки(Ответ));
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ЗакрытьСоединение(Соединение);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Получить последнюю ошибку !NOCLI
|
||||
// Получает информацию о последней ошибке в соединении
|
||||
//
|
||||
// Параметры:
|
||||
// Соединение - Произвольный - Соединение, см. ОткрытьСоединение - tcp
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение, Неопределено - Информация об ошибке или неопределено, если ошибки нет
|
||||
Функция ПолучитьПоследнююОшибку(Знач Соединение) Экспорт
|
||||
|
||||
Результат = Соединение.GetLastError();
|
||||
|
||||
Если ЗначениеЗаполнено(Результат) Тогда
|
||||
Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
|
||||
Иначе
|
||||
Результат = Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Получить настройки TLS
|
||||
// Формирует настройки для использования TLS при выполнении запросов
|
||||
//
|
||||
// Примечание:
|
||||
// Настройки Tls могут быть установлены только в момент создания соединения: явного, при использовании функции `ОткрытьСоединение`^^
|
||||
// или неявного, при передаче строки подключения в метод `ОбработатьЗапрос`
|
||||
//
|
||||
// Параметры:
|
||||
// ОтключитьПроверкуСертификатов - Булево - Позволяет работать с некорретными сертификатами, в т.ч. самоподписанными - trust
|
||||
// ПутьКСертификату - Строка - Путь к корневому PEM файлу сертификата, если его нет в системном хранилище - cert
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура Из КлючИЗначение - Структура настроек TLS соединения
|
||||
Функция ПолучитьНастройкиTls(Знач ОтключитьПроверкуСертификатов, Знач ПутьКСертификату = "") Экспорт
|
||||
|
||||
Возврат OPI_Компоненты.ПолучитьНастройкиTls(ОтключитьПроверкуСертификатов, ПутьКСертификату);
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
|
||||
#Region Alternate
|
||||
|
||||
Function CreateConnection(Val Address, Val Tls = "") Export
|
||||
Return ОткрытьСоединение(Address, Tls);
|
||||
EndFunction
|
||||
|
||||
Function CloseConnection(Val Connection) Export
|
||||
Return ЗакрытьСоединение(Connection);
|
||||
EndFunction
|
||||
|
||||
Function ReadBinaryData(Val Connection, Val MaxSize = 0, Val Marker = "", Val Timeout = 5000) Export
|
||||
Return ПрочитатьДвоичныеДанные(Connection, MaxSize, Marker, Timeout);
|
||||
EndFunction
|
||||
|
||||
Function ReadLine(Val Connection, Val Encoding = "UTF-8", Val Marker = "", Val Timeout = 5000) Export
|
||||
Return ПрочитатьСтроку(Connection, Encoding, Marker, Timeout);
|
||||
EndFunction
|
||||
|
||||
Function SendBinaryData(Val Connection, Val Data, Val Timeout = 5000) Export
|
||||
Return ОтправитьДвоичныеДанные(Connection, Data, Timeout);
|
||||
EndFunction
|
||||
|
||||
Function SendLine(Val Connection, Val Data, Val Encoding = "UTF-8", Val Timeout = 5000) Export
|
||||
Return ОтправитьСтроку(Connection, Data, Encoding, Timeout);
|
||||
EndFunction
|
||||
|
||||
Function ProcessRequest(Val Address, Val Data = "", Val ResponseString = True, Val Tls = "") Export
|
||||
Return ОбработатьЗапрос(Address, Data, ResponseString, Tls);
|
||||
EndFunction
|
||||
|
||||
Function GetLastError(Val Connection) Export
|
||||
Return ПолучитьПоследнююОшибку(Connection);
|
||||
EndFunction
|
||||
|
||||
Function GetTlsSettings(Val DisableCertVerification, Val CertFilepath = "") Export
|
||||
Return ПолучитьНастройкиTls(DisableCertVerification, CertFilepath);
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
// OneScript: ./OInt/core/Modules/OPI_TCP.os
|
||||
// Lib: TCP
|
||||
// CLI: tcp
|
||||
// Keywords: tcp
|
||||
|
||||
// MIT License
|
||||
|
||||
// Copyright (c) 2023-2025 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:Typo-off
|
||||
// BSLLS:LatinAndCyrillicSymbolInWord-off
|
||||
// BSLLS:IncorrectLineBreak-off
|
||||
// BSLLS:NumberOfOptionalParams-off
|
||||
// BSLLS:UsingServiceTag-off
|
||||
// BSLLS:LineLength-off
|
||||
|
||||
//@skip-check module-structure-top-region
|
||||
//@skip-check module-structure-method-in-regions
|
||||
//@skip-check wrong-string-literal-content
|
||||
//@skip-check method-too-many-params
|
||||
|
||||
// Раскомментировать, если выполняется OneScript
|
||||
#Использовать "../../tools"
|
||||
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
#Область МетодыКлиента
|
||||
|
||||
// Открыть соединение !NOCLI
|
||||
// Создает TCP соединение
|
||||
//
|
||||
// Параметры:
|
||||
// Адрес - Строка - Адрес и порт для подключения - address
|
||||
// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение, Произвольный - Возвращает объект TCP клиента при успешном подключении или информацию об ошибке
|
||||
Функция ОткрытьСоединение(Знач Адрес, Знач Tls = "") Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Адрес);
|
||||
OPI_Инструменты.ВернутьУправляющиеПоследовательности(Адрес);
|
||||
|
||||
Домен = OPI_Инструменты.ПолучитьДомен(Адрес);
|
||||
|
||||
TCPКлиент = OPI_Компоненты.ПолучитьКомпоненту("TCPClient");
|
||||
Успех = TCPКлиент.SetAddress(Адрес, Домен);
|
||||
|
||||
Если Не Успех Тогда
|
||||
Возврат ПолучитьПоследнююОшибку(TCPКлиент);
|
||||
КонецЕсли;
|
||||
|
||||
Tls = OPI_Компоненты.УстановитьTls(TCPКлиент, Tls);
|
||||
|
||||
Если Не OPI_Инструменты.ПолучитьИли(Tls, "result", Ложь) Тогда
|
||||
Возврат Tls;
|
||||
КонецЕсли;
|
||||
|
||||
Успех = TCPКлиент.Connect();
|
||||
|
||||
Если Не Успех Тогда
|
||||
Возврат ПолучитьПоследнююОшибку(TCPКлиент);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат TCPКлиент;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Закрыть соединение !NOCLI
|
||||
// Явно закрывает созданное ранее соединение
|
||||
//
|
||||
// Параметры:
|
||||
// Соединение - Произвольный - Соединение, см. ОткрытьСоединение - tcp
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Булево - всегда возвращает Истина
|
||||
Функция ЗакрытьСоединение(Знач Соединение) Экспорт
|
||||
|
||||
Возврат Соединение.Disconnect();
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Прочитать двоичные данные !NOCLI
|
||||
// Читает данные из указанного соединения
|
||||
//
|
||||
// Примечание:
|
||||
// При работе с бесконечным потоком входящих данных обязательно указание параметра МаксимальныйРазмер, так как^^
|
||||
// бесконечное получение данных может привести к зависанию
|
||||
// При закрытии соединения, ошибке или обнаружении EOF чтение завершается в любом случае
|
||||
//
|
||||
// Параметры:
|
||||
// Соединение - Произвольный - Соединение, см. ОткрытьСоединение - tcp
|
||||
// МаксимальныйРазмер - Число - Максимальный размер данных (байт). 0 > без ограничений - size
|
||||
// Маркер - Строка, ДвоичныеДанные - Маркер конца сообщения. Пусто > без маркера - marker
|
||||
// Таймаут - Число - Таймаут ожидания данных (мс). 0 > без ограничений - timeout
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ДвоичныеДанные - Полученные данные
|
||||
Функция ПрочитатьДвоичныеДанные(Знач Соединение
|
||||
, Знач МаксимальныйРазмер = 0
|
||||
, Знач Маркер = ""
|
||||
, Знач Таймаут = 5000) Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьЧисло(Таймаут);
|
||||
OPI_ПреобразованиеТипов.ПолучитьЧисло(МаксимальныйРазмер);
|
||||
|
||||
Если ТипЗнч(Маркер) = Тип("Строка") Тогда
|
||||
Маркер = ПолучитьДвоичныеДанныеИзСтроки(Маркер);
|
||||
Иначе
|
||||
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Маркер);
|
||||
КонецЕсли;
|
||||
|
||||
Данные = Соединение.Read(МаксимальныйРазмер, Маркер, Таймаут);
|
||||
|
||||
Возврат Данные;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Прочитать строку !NOCLI
|
||||
// Читает данные из указанного соединения в виде строки
|
||||
//
|
||||
// Примечание:
|
||||
// При закрытии соединения, ошибке или обнаружении EOF чтение завершается в любом случае
|
||||
//
|
||||
// Параметры:
|
||||
// Соединение - Произвольный - Соединение, см. ОткрытьСоединение - tcp
|
||||
// Кодировка - Строка - Кодировка преобразования данных в строку - enc
|
||||
// Маркер - Строка, ДвоичныеДанные - Маркер конца сообщения. Пусто > без маркера - marker
|
||||
// Таймаут - Число - Таймаут ожидания данных (мс). 0 > без ограничений - timeout
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Строка - Полученные данные в виде строки
|
||||
Функция ПрочитатьСтроку(Знач Соединение
|
||||
, Знач Кодировка = "UTF-8"
|
||||
, Знач Маркер = ""
|
||||
, Знач Таймаут = 5000) Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Кодировка);
|
||||
|
||||
Данные = ПрочитатьДвоичныеДанные(Соединение, , Маркер, Таймаут);
|
||||
Данные = ПолучитьСтрокуИзДвоичныхДанных(Данные, Кодировка);
|
||||
|
||||
Возврат Данные;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Отправить двоичные данные !NOCLI
|
||||
// Отправляет двоичные данные через указанное соединение
|
||||
//
|
||||
// Параметры:
|
||||
// Соединение - Произвольный - Соединение, см. ОткрытьСоединение - tcp
|
||||
// Данные - ДвоичныеДанные - Данные для отправки - data
|
||||
// Таймаут - Число - Таймаут ожидания записи (мс). 0 > без ограничений - timeout
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Булево - Признак успешного выполнения
|
||||
Функция ОтправитьДвоичныеДанные(Знач Соединение, Знач Данные, Знач Таймаут = 5000) Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Данные);
|
||||
OPI_ПреобразованиеТипов.ПолучитьЧисло(Таймаут);
|
||||
|
||||
Результат = Соединение.Send(Данные, Таймаут);
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Отправить строку !NOCLI
|
||||
// Отправляет данные в виде строки через указанное соединение
|
||||
//
|
||||
// Параметры:
|
||||
// Соединение - Произвольный - Соединение, см. ОткрытьСоединение - tcp
|
||||
// Данные - Строка - Данные для отправки в виде строки - data
|
||||
// Кодировка - Строка - Кодировка для записи исходящей строки в поток - enc
|
||||
// Таймаут - Число - Таймаут ожидания записи (мс). 0 > без ограничений - timeout
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Булево - Признак успешного выполнения
|
||||
Функция ОтправитьСтроку(Знач Соединение, Знач Данные, Знач Кодировка = "UTF-8", Знач Таймаут = 5000) Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Данные);
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Кодировка);
|
||||
|
||||
ДанныеДД = ПолучитьДвоичныеДанныеИзСтроки(Данные, Кодировка);
|
||||
|
||||
Результат = ОтправитьДвоичныеДанные(Соединение, ДанныеДД, Таймаут);
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Обработать запрос
|
||||
// Отправляет одиночный запрос на указанный адрес и получает ответ, используя стандартные настройки
|
||||
//
|
||||
// Параметры:
|
||||
// Адрес - Строка - Адрес и порт для подключения - address
|
||||
// Данные - Строка, ДвоичныеДанные - Данные или текст для отправки - data
|
||||
// ОтветСтрокой - Булево - Признак получения ответа как строки - string
|
||||
// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ДвоичныеДанные, Строка - Ответ на запрос или информация об ошибке
|
||||
Функция ОбработатьЗапрос(Знач Адрес, Знач Данные = "", Знач ОтветСтрокой = Истина, Знач Tls = "") Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Данные, Истина, Ложь);
|
||||
OPI_ПреобразованиеТипов.ПолучитьБулево(ОтветСтрокой);
|
||||
|
||||
Соединение = ОткрытьСоединение(Адрес, Tls);
|
||||
|
||||
Если Не OPI_Компоненты.ЭтоКомпонента(Соединение) Тогда
|
||||
Возврат Соединение;
|
||||
КонецЕсли;
|
||||
|
||||
Результат = ОтправитьДвоичныеДанные(Соединение, Данные);
|
||||
|
||||
Если Результат Тогда
|
||||
|
||||
Ответ = ПрочитатьДвоичныеДанные(Соединение, , Символы.ПС);
|
||||
|
||||
Если Не ЗначениеЗаполнено(Ответ) Тогда
|
||||
|
||||
Ошибка = ПолучитьПоследнююОшибку(Соединение);
|
||||
|
||||
Если ЗначениеЗаполнено(Ошибка) Тогда
|
||||
Ответ = OPI_Инструменты.JSONСтрокой(Ошибка);
|
||||
Ответ = ПолучитьДвоичныеДанныеИзСтроки(Ответ);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Ответ = ?(ОтветСтрокой, ПолучитьСтрокуИзДвоичныхДанных(Ответ), Ответ);
|
||||
|
||||
Иначе
|
||||
|
||||
Ответ = ПолучитьПоследнююОшибку(Соединение);
|
||||
Ответ = ?(ЗначениеЗаполнено(Ответ), OPI_Инструменты.JSONСтрокой(Ответ), "OPI: Не удалось отправить сообщение");
|
||||
|
||||
Ответ = ?(ОтветСтрокой, Ответ, ПолучитьДвоичныеДанныеИзСтроки(Ответ));
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ЗакрытьСоединение(Соединение);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Получить последнюю ошибку !NOCLI
|
||||
// Получает информацию о последней ошибке в соединении
|
||||
//
|
||||
// Параметры:
|
||||
// Соединение - Произвольный - Соединение, см. ОткрытьСоединение - tcp
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение, Неопределено - Информация об ошибке или неопределено, если ошибки нет
|
||||
Функция ПолучитьПоследнююОшибку(Знач Соединение) Экспорт
|
||||
|
||||
Результат = Соединение.GetLastError();
|
||||
|
||||
Если ЗначениеЗаполнено(Результат) Тогда
|
||||
Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
|
||||
Иначе
|
||||
Результат = Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Получить настройки TLS
|
||||
// Формирует настройки для использования TLS при выполнении запросов
|
||||
//
|
||||
// Примечание:
|
||||
// Настройки Tls могут быть установлены только в момент создания соединения: явного, при использовании функции `ОткрытьСоединение`^^
|
||||
// или неявного, при передаче строки подключения в метод `ОбработатьЗапрос`
|
||||
//
|
||||
// Параметры:
|
||||
// ОтключитьПроверкуСертификатов - Булево - Позволяет работать с некорретными сертификатами, в т.ч. самоподписанными - trust
|
||||
// ПутьКСертификату - Строка - Путь к корневому PEM файлу сертификата, если его нет в системном хранилище - cert
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура Из КлючИЗначение - Структура настроек TLS соединения
|
||||
Функция ПолучитьНастройкиTls(Знач ОтключитьПроверкуСертификатов, Знач ПутьКСертификату = "") Экспорт
|
||||
|
||||
Возврат OPI_Компоненты.ПолучитьНастройкиTls(ОтключитьПроверкуСертификатов, ПутьКСертификату);
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
159
src/ru/OInt/core/Modules/OPI_Telegram.os
vendored
159
src/ru/OInt/core/Modules/OPI_Telegram.os
vendored
@@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_Telegram.os
|
||||
// OneScript: ./OInt/core/Modules/OPI_Telegram.os
|
||||
// Lib: Telegram
|
||||
// CLI: telegram
|
||||
// Keywords: telegram
|
||||
@@ -1570,160 +1570,3 @@
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
|
||||
#Region Alternate
|
||||
|
||||
Function GetBotInformation(Val Token) Export
|
||||
Return ПолучитьИнформациюБота(Token);
|
||||
EndFunction
|
||||
|
||||
Function GetUpdates(Val Token, Val Timeout = 0, Val Offset = "") Export
|
||||
Return ПолучитьОбновления(Token, Timeout, Offset);
|
||||
EndFunction
|
||||
|
||||
Function SetWebhook(Val Token, Val URL) Export
|
||||
Return УстановитьWebhook(Token, URL);
|
||||
EndFunction
|
||||
|
||||
Function DeleteWebhook(Val Token) Export
|
||||
Return УдалитьWebhook(Token);
|
||||
EndFunction
|
||||
|
||||
Function DownloadFile(Val Token, Val FileID) Export
|
||||
Return СкачатьФайл(Token, FileID);
|
||||
EndFunction
|
||||
|
||||
Function ProcessTMAData(Val DataString, Val Token) Export
|
||||
Return ОбработатьДанныеTMA(DataString, Token);
|
||||
EndFunction
|
||||
|
||||
Function SendTextMessage(Val Token, Val ChatID, Val Text, Val Keyboard = "", Val Markup = "Markdown", Val RepliedID = 0) Export
|
||||
Return ОтправитьТекстовоеСообщение(Token, ChatID, Text, Keyboard, Markup, RepliedID);
|
||||
EndFunction
|
||||
|
||||
Function SendImage(Val Token, Val ChatID, Val Text, Val Image, Val Keyboard = "", Val Markup = "Markdown") Export
|
||||
Return ОтправитьКартинку(Token, ChatID, Text, Image, Keyboard, Markup);
|
||||
EndFunction
|
||||
|
||||
Function SendVideo(Val Token, Val ChatID, Val Text, Val Video, Val Keyboard = "", Val Markup = "Markdown") Export
|
||||
Return ОтправитьВидео(Token, ChatID, Text, Video, Keyboard, Markup);
|
||||
EndFunction
|
||||
|
||||
Function SendAudio(Val Token, Val ChatID, Val Text, Val Audio, Val Keyboard = "", Val Markup = "Markdown") Export
|
||||
Return ОтправитьАудио(Token, ChatID, Text, Audio, Keyboard, Markup);
|
||||
EndFunction
|
||||
|
||||
Function SendDocument(Val Token, Val ChatID, Val Text, Val Document, Val Keyboard = "", Val Markup = "Markdown", Val FileName = "") Export
|
||||
Return ОтправитьДокумент(Token, ChatID, Text, Document, Keyboard, Markup, FileName);
|
||||
EndFunction
|
||||
|
||||
Function SendGif(Val Token, Val ChatID, Val Text, Val GIF, Val Keyboard = "", Val Markup = "Markdown") Export
|
||||
Return ОтправитьГифку(Token, ChatID, Text, GIF, Keyboard, Markup);
|
||||
EndFunction
|
||||
|
||||
Function SendMediaGroup(Val Token, Val ChatID, Val Text, Val FileMapping, Val Keyboard = "", Val Markup = "Markdown") Export
|
||||
Return ОтправитьМедиагруппу(Token, ChatID, Text, FileMapping, Keyboard, Markup);
|
||||
EndFunction
|
||||
|
||||
Function SendLocation(Val Token, Val ChatID, Val Latitude, Val Longitude, Val Keyboard = "") Export
|
||||
Return ОтправитьМестоположение(Token, ChatID, Latitude, Longitude, Keyboard);
|
||||
EndFunction
|
||||
|
||||
Function SendContact(Val Token, Val ChatID, Val Name, Val LastName, Val Phone, Val Keyboard = "") Export
|
||||
Return ОтправитьКонтакт(Token, ChatID, Name, LastName, Phone, Keyboard);
|
||||
EndFunction
|
||||
|
||||
Function SendPoll(Val Token, Val ChatID, Val Question, Val AnswersArray, Val Anonymous = True) Export
|
||||
Return ОтправитьОпрос(Token, ChatID, Question, AnswersArray, Anonymous);
|
||||
EndFunction
|
||||
|
||||
Function ForwardMessage(Val Token, Val OriginalID, Val FromID, Val ToID) Export
|
||||
Return ПереслатьСообщение(Token, OriginalID, FromID, ToID);
|
||||
EndFunction
|
||||
|
||||
Function DeleteMessage(Val Token, Val ChatID, Val MessageID) Export
|
||||
Return УдалитьСообщение(Token, ChatID, MessageID);
|
||||
EndFunction
|
||||
|
||||
Function ReplaceMessageKeyboard(Val Token, Val ChatID, Val MessageID, Val Keyboard) Export
|
||||
Return ЗаменитьКлавиатуруСообщения(Token, ChatID, MessageID, Keyboard);
|
||||
EndFunction
|
||||
|
||||
Function ReplaceMessageText(Val Token, Val ChatID, Val MessageID, Val Text, Val Markup = "") Export
|
||||
Return ЗаменитьТекстСообщения(Token, ChatID, MessageID, Text, Markup);
|
||||
EndFunction
|
||||
|
||||
Function ReplaceMessageCaption(Val Token, Val ChatID, Val MessageID, Val Description, Val Markup = "") Export
|
||||
Return ЗаменитьОписаниеСообщения(Token, ChatID, MessageID, Description, Markup);
|
||||
EndFunction
|
||||
|
||||
Function FormKeyboardFromButtonArray(Val ButtonArray, Val UnderMessage = False, Val OneByOne = True) Export
|
||||
Return СформироватьКлавиатуруПоМассивуКнопок(ButtonArray, UnderMessage, OneByOne);
|
||||
EndFunction
|
||||
|
||||
Function Ban(Val Token, Val ChatID, Val UserID) Export
|
||||
Return Бан(Token, ChatID, UserID);
|
||||
EndFunction
|
||||
|
||||
Function Unban(Val Token, Val ChatID, Val UserID) Export
|
||||
Return Разбан(Token, ChatID, UserID);
|
||||
EndFunction
|
||||
|
||||
Function CreateInvitationLink(Val Token, Val ChatID, Val Title = "", Val ExpirationDate = "", Val UserLimit = 0) Export
|
||||
Return СоздатьСсылкуПриглашение(Token, ChatID, Title, ExpirationDate, UserLimit);
|
||||
EndFunction
|
||||
|
||||
Function PinMessage(Val Token, Val ChatID, Val MessageID) Export
|
||||
Return ЗакрепитьСообщение(Token, ChatID, MessageID);
|
||||
EndFunction
|
||||
|
||||
Function UnpinMessage(Val Token, Val ChatID, Val MessageID) Export
|
||||
Return ОткрепитьСообщение(Token, ChatID, MessageID);
|
||||
EndFunction
|
||||
|
||||
Function GetParticipantCount(Val Token, Val ChatID) Export
|
||||
Return ПолучитьЧислоУчастников(Token, ChatID);
|
||||
EndFunction
|
||||
|
||||
Function GetAvatarIconList(Val Token) Export
|
||||
Return ПолучитьСписокИконокАватаров(Token);
|
||||
EndFunction
|
||||
|
||||
Function CreateForumThread(Val Token, Val ChatID, Val Title, Val IconID = "") Export
|
||||
Return СоздатьТемуФорума(Token, ChatID, Title, IconID);
|
||||
EndFunction
|
||||
|
||||
Function EditForumTopic(Val Token, Val ChatID, Val ThreadID, Val Title = Undefined, Val IconID = Undefined) Export
|
||||
Return ИзменитьТемуФорума(Token, ChatID, ThreadID, Title, IconID);
|
||||
EndFunction
|
||||
|
||||
Function CloseForumThread(Val Token, Val ChatID, Val ThreadID = "") Export
|
||||
Return ЗакрытьТемуФорума(Token, ChatID, ThreadID);
|
||||
EndFunction
|
||||
|
||||
Function OpenForumThread(Val Token, Val ChatID, Val ThreadID = "") Export
|
||||
Return ОткрытьТемуФорума(Token, ChatID, ThreadID);
|
||||
EndFunction
|
||||
|
||||
Function DeleteForumTopic(Val Token, Val ChatID, Val ThreadID) Export
|
||||
Return УдалитьТемуФорума(Token, ChatID, ThreadID);
|
||||
EndFunction
|
||||
|
||||
Function HideMainForumTopic(Val Token, Val ChatID) Export
|
||||
Return СкрытьГлавнуюТемуФорума(Token, ChatID);
|
||||
EndFunction
|
||||
|
||||
Function ShowMainForumTopic(Val Token, Val ChatID) Export
|
||||
Return ПоказатьГлавнуюТемуФорума(Token, ChatID);
|
||||
EndFunction
|
||||
|
||||
Function EditMainForumTopicName(Val Token, Val ChatID, Val Title) Export
|
||||
Return ИзменитьИмяГлавнойТемыФорума(Token, ChatID, Title);
|
||||
EndFunction
|
||||
|
||||
Function ClearThreadPinnedMessagesList(Val Token, Val ChatID, Val ThreadID = "") Export
|
||||
Return ОчиститьСписокЗакрепленныхСообщенийТемы(Token, ChatID, ThreadID);
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
51
src/ru/OInt/core/Modules/OPI_Twitter.os
vendored
51
src/ru/OInt/core/Modules/OPI_Twitter.os
vendored
@@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_Twitter.os
|
||||
// OneScript: ./OInt/core/Modules/OPI_Twitter.os
|
||||
// Lib: Twitter
|
||||
// CLI: twitter
|
||||
// Keywords: twitter, x
|
||||
@@ -660,52 +660,3 @@
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
|
||||
#Region Alternate
|
||||
|
||||
Function GetAuthorizationLink(Parameters = "") Export
|
||||
Return ПолучитьСсылкуАвторизации(Parameters);
|
||||
EndFunction
|
||||
|
||||
Function GetToken(Val Code, Val Parameters = "") Export
|
||||
Return ПолучитьТокен(Code, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function RefreshToken(Val Parameters = "") Export
|
||||
Return ОбновитьТокен(Parameters);
|
||||
EndFunction
|
||||
|
||||
Function HandleIncomingRequestAfterAuthorization(Request) Export
|
||||
Return ОбработкаВходящегоЗапросаПослеАвторизации(Request);
|
||||
EndFunction
|
||||
|
||||
Function CreateCustomTweet(Val Text = "", Val MediaArray = "", Val PollOptionsArray = "", Val PollDuration = "", Val Parameters = "") Export
|
||||
Return СоздатьПроизвольныйТвит(Text, MediaArray, PollOptionsArray, PollDuration, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function CreateTextTweet(Val Text, Val Parameters = "") Export
|
||||
Return СоздатьТекстовыйТвит(Text, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function CreateImageTweet(Val Text, Val ImageArray, Val Parameters = "") Export
|
||||
Return СоздатьТвитКартинки(Text, ImageArray, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function CreateGifTweet(Val Text, Val GifsArray, Val Parameters = "") Export
|
||||
Return СоздатьТвитГифки(Text, GifsArray, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function CreateVideoTweet(Val Text, Val VideosArray, Val Parameters = "") Export
|
||||
Return СоздатьТвитВидео(Text, VideosArray, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function CreatePollTweet(Val Text, Val OptionArray, Val Duration, Val Parameters = "") Export
|
||||
Return СоздатьТвитОпрос(Text, OptionArray, Duration, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function UploadAttachmentsArray(Val ArrayOfFiles, Val AttachmentsType, Val Parameters = "") Export
|
||||
Return ЗагрузитьМассивВложений(ArrayOfFiles, AttachmentsType, Parameters);
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
211
src/ru/OInt/core/Modules/OPI_VK.os
vendored
211
src/ru/OInt/core/Modules/OPI_VK.os
vendored
@@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_VK.os
|
||||
// OneScript: ./OInt/core/Modules/OPI_VK.os
|
||||
// Lib: VK
|
||||
// CLI: vk
|
||||
// Keywords: vk, vkontakte
|
||||
@@ -2185,212 +2185,3 @@
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
|
||||
#Region Alternate
|
||||
|
||||
Function CreateTokenRetrievalLink(Val App_id) Export
|
||||
Return СоздатьСсылкуПолученияТокена(App_id);
|
||||
EndFunction
|
||||
|
||||
Function CreatePost(Val Text, Val ImageArray, Val Advertisement = False, Val LinkUnderPost = "", Val Parameters = "") Export
|
||||
Return СоздатьПост(Text, ImageArray, Advertisement, LinkUnderPost, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function CreateCompositePost(Val Text, Val Objects, Val Advertisement = False, Val LinkUnderPost = "", Val Parameters = "") Export
|
||||
Return СоздатьСоставнойПост(Text, Objects, Advertisement, LinkUnderPost, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function DeletePost(Val PostID, Val Parameters = "") Export
|
||||
Return УдалитьПост(PostID, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function CreatePoll(Val Question, Val AnswersArray, Val Image = "", Val Parameters = "") Export
|
||||
Return СоздатьОпрос(Question, AnswersArray, Image, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function CreateAlbum(Val Name, Val Description = "", Val Parameters = "") Export
|
||||
Return СоздатьАльбом(Name, Description, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function DeleteAlbum(Val AlbumID, Val Parameters = "") Export
|
||||
Return УдалитьАльбом(AlbumID, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function CreateStory(Val Image, Val URL = "", Val Parameters = "") Export
|
||||
Return СоздатьИсторию(Image, URL, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function SaveImageToAlbum(Val AlbumID, Val Image, Val Description = "", Val Parameters = "") Export
|
||||
Return СохранитьКартинкуВАльбом(AlbumID, Image, Description, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function DeleteImage(Val ImageID, Val Parameters = "") Export
|
||||
Return УдалитьКартинку(ImageID, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function UploadVideoToServer(Val Video, Val Name, Val Description = "", Val Album = "", Val Parameters = "") Export
|
||||
Return ЗагрузитьВидеоНаСервер(Video, Name, Description, Album, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function UploadPhotoToServer(Val Image, Val Parameters = "", Val View = "Post") Export
|
||||
Return ЗагрузитьФотоНаСервер(Image, Parameters, View);
|
||||
EndFunction
|
||||
|
||||
Function CreateDiscussion(Val Name, Val FirstMessageText, Val Parameters = "") Export
|
||||
Return СоздатьОбсуждение(Name, FirstMessageText, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function CloseDiscussion(Val DiscussionID, Val DeleteCompletely = False, Val Parameters = "") Export
|
||||
Return ЗакрытьОбсуждение(DiscussionID, DeleteCompletely, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function OpenDiscussion(Val DiscussionID, Val Parameters = "") Export
|
||||
Return ОткрытьОбсуждение(DiscussionID, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function WriteInDiscussion(Val DiscussionID, Val Text, Val Parameters = "") Export
|
||||
Return НаписатьВОбсуждение(DiscussionID, Text, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function LikePost(Val PostID, Val WallID = "", Val Parameters = "") Export
|
||||
Return ПоставитьЛайк(PostID, WallID, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function MakeRepost(Val PostID, Val WallID = "", Val TargetWall = "", Val Advertising = False, Val Parameters = "") Export
|
||||
Return СделатьРепост(PostID, WallID, TargetWall, Advertising, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function WriteMessage(Val Text, Val UserID, Val Communitytoken, Val Keyboard = "", Val Parameters = "") Export
|
||||
Return НаписатьСообщение(Text, UserID, Communitytoken, Keyboard, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function WriteComment(Val PostID, Val WallID, Val Text, Val Parameters = "") Export
|
||||
Return НаписатьКомментарий(PostID, WallID, Text, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function ShortenLink(Val URL, Val Parameters = "") Export
|
||||
Return СократитьСсылку(URL, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function GetStatistics(Val StartDate, Val EndDate, Val Parameters = "") Export
|
||||
Return ПолучитьСтатистику(StartDate, EndDate, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function GetPostStatistics(Val PostIDsArray, Val Parameters = "") Export
|
||||
Return ПолучитьСтатистикуПостов(PostIDsArray, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function CreateAdvertisingCampaign(Val AccountID, Val Name, Val Parameters = "") Export
|
||||
Return СоздатьРекламнуюКампанию(AccountID, Name, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function CreateAd(Val CampaignNumber, Val DailyLimit, Val CategoryNumber, Val PostID, Val AccountID, Val Parameters = "") Export
|
||||
Return СоздатьРекламноеОбъявление(CampaignNumber, DailyLimit, CategoryNumber, PostID, AccountID, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function PauseAdvertising(Val AccountID, Val AdID, Val Parameters = "") Export
|
||||
Return ПриостановитьРекламноеОбъявление(AccountID, AdID, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function GetAdvertisingCategoryList(Val Parameters = "") Export
|
||||
Return ПолучитьСписокРекламныхКатегорий(Parameters);
|
||||
EndFunction
|
||||
|
||||
Function GetProductCategoryList(Val Parameters = "") Export
|
||||
Return ПолучитьСписокКатегорийТоваров(Parameters);
|
||||
EndFunction
|
||||
|
||||
Function GetProductList(Val Selection = "", Val Parameters = "") Export
|
||||
Return ПолучитьСписокТоваров(Selection, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function GetProductsByID(Val Products, Val Parameters = "") Export
|
||||
Return ПолучитьТоварыПоИД(Products, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function AddProduct(Val ProductDescription, Val Selection = "", Val Parameters = "") Export
|
||||
Return ДобавитьТовар(ProductDescription, Selection, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function EditProduct(Val Product, Val ProductDescription, Val Selection = "", Val Parameters = "") Export
|
||||
Return ИзменитьТовар(Product, ProductDescription, Selection, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function DeleteProduct(Val Product, Val Parameters = "") Export
|
||||
Return УдалитьТовар(Product, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function GroupProducts(Val ProductsArray, Val ExistingGroup = "", Val Parameters = "") Export
|
||||
Return СгруппироватьТовары(ProductsArray, ExistingGroup, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function GetProductDescription(Val Clear = False) Export
|
||||
Return ПолучитьОписаниеТовара(Clear);
|
||||
EndFunction
|
||||
|
||||
Function GetSelectionList(Val Parameters = "") Export
|
||||
Return ПолучитьСписокПодборок(Parameters);
|
||||
EndFunction
|
||||
|
||||
Function GetSelectionsByID(Val Selections, Val Parameters = "") Export
|
||||
Return ПолучитьПодборкиПоИД(Selections, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function CreateProductCollection(Val Name, Val Image, Val Main = False, Val Hidden = False, Val Parameters = "") Export
|
||||
Return СоздатьПодборкуТоваров(Name, Image, Main, Hidden, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function EditProductCollection(Val Name, Val Selection, Val Image = "", Val Main = False, Val Hidden = False, Val Parameters = "") Export
|
||||
Return ИзменитьПодборкуТоваров(Name, Selection, Image, Main, Hidden, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function AddProductToCollection(Val ProductsArray, Val Selection, Val Parameters = "") Export
|
||||
Return ДобавитьТоварВПодборку(ProductsArray, Selection, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function RemoveProductFromSelection(Val Product, Val Selection, Val Parameters = "") Export
|
||||
Return УдалитьТоварИзПодборки(Product, Selection, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function DeleteSelection(Val Selection, Val Parameters = "") Export
|
||||
Return УдалитьПодборку(Selection, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function GetPropertyList(Val Parameters = "") Export
|
||||
Return ПолучитьСписокСвойств(Parameters);
|
||||
EndFunction
|
||||
|
||||
Function CreateProductProperty(Val Name, Val Parameters = "") Export
|
||||
Return СоздатьСвойствоТовара(Name, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function EditProductProperty(Val Name, Val Property, Val Parameters = "") Export
|
||||
Return ИзменитьСвойствоТовара(Name, Property, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function DeleteProductProperty(Val Property, Val Parameters = "") Export
|
||||
Return УдалитьСвойствоТовара(Property, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function AddProductPropertyVariant(Val Value, Val Property, Val Parameters = "") Export
|
||||
Return ДобавитьВариантСвойстваТовара(Value, Property, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function EditProductPropertyVariant(Val Value, Val Property, Val Option, Val Parameters = "") Export
|
||||
Return ИзменитьВариантСвойстваТовара(Value, Property, Option, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function DeleteProductPropertyVariant(Val Option, Val Parameters = "") Export
|
||||
Return УдалитьВариантСвойстваТовара(Option, Parameters);
|
||||
EndFunction
|
||||
|
||||
Function GetOrderList(Val Parameters = "") Export
|
||||
Return ПолучитьСписокЗаказов(Parameters);
|
||||
EndFunction
|
||||
|
||||
Function FormKeyboard(Val ButtonArray) Export
|
||||
Return СформироватьКлавиатуру(ButtonArray);
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
123
src/ru/OInt/core/Modules/OPI_VKTeams.os
vendored
123
src/ru/OInt/core/Modules/OPI_VKTeams.os
vendored
@@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_VKTeams.os
|
||||
// OneScript: ./OInt/core/Modules/OPI_VKTeams.os
|
||||
// Lib: VKTeams
|
||||
// CLI: vkteams
|
||||
// Keywords: vkteams, vk teams
|
||||
@@ -971,124 +971,3 @@
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
|
||||
#Region Alternate
|
||||
|
||||
Function CheckToken(Val Token) Export
|
||||
Return ПроверитьТокен(Token);
|
||||
EndFunction
|
||||
|
||||
Function GetEvents(Val Token, Val LastID, Val Timeout = 0) Export
|
||||
Return ПолучитьСобытия(Token, LastID, Timeout);
|
||||
EndFunction
|
||||
|
||||
Function GetFileInformation(Val Token, Val FileID) Export
|
||||
Return ПолучитьИнформациюОФайле(Token, FileID);
|
||||
EndFunction
|
||||
|
||||
Function SendTextMessage(Val Token, Val ChatID, Val Text, Val ReplyID = 0, Val Keyboard = "", Val Markup = "MarkdownV2") Export
|
||||
Return ОтправитьТекстовоеСообщение(Token, ChatID, Text, ReplyID, Keyboard, Markup);
|
||||
EndFunction
|
||||
|
||||
Function SendFile(Val Token, Val ChatID, Val File, Val Text = "", Val FileName = "", Val Markup = "MarkdownV2") Export
|
||||
Return ОтправитьФайл(Token, ChatID, File, Text, FileName, Markup);
|
||||
EndFunction
|
||||
|
||||
Function SendVoice(Val Token, Val ChatID, Val File, Val FileType = "m4a", Val ReplyID = 0, Val Keyboard = "") Export
|
||||
Return ОтправитьГолосовоеСообщение(Token, ChatID, File, FileType, ReplyID, Keyboard);
|
||||
EndFunction
|
||||
|
||||
Function EditMessageText(Val Token, Val ChatID, Val MessageID, Val Text, Val Markup = "MarkdownV2") Export
|
||||
Return ИзменитьТекстСообщения(Token, ChatID, MessageID, Text, Markup);
|
||||
EndFunction
|
||||
|
||||
Function DeleteMessage(Val Token, Val ChatID, Val MessageID) Export
|
||||
Return УдалитьСообщение(Token, ChatID, MessageID);
|
||||
EndFunction
|
||||
|
||||
Function ResendFile(Val Token, Val ChatID, Val FileID, Val Text = "", Val Markup = "MarkdownV2") Export
|
||||
Return ПереслатьФайл(Token, ChatID, FileID, Text, Markup);
|
||||
EndFunction
|
||||
|
||||
Function ResendVoice(Val Token, Val ChatID, Val FileID) Export
|
||||
Return ПереслатьГолосовоеСообщение(Token, ChatID, FileID);
|
||||
EndFunction
|
||||
|
||||
Function ForwardMessage(Val Token, Val MessageID, Val FromChatID, Val ChatID, Val Text = "") Export
|
||||
Return ПереслатьСообщение(Token, MessageID, FromChatID, ChatID, Text);
|
||||
EndFunction
|
||||
|
||||
Function PinMessage(Val Token, Val ChatID, Val MessageID) Export
|
||||
Return ЗакрепитьСообщение(Token, ChatID, MessageID);
|
||||
EndFunction
|
||||
|
||||
Function UnpinMessage(Val Token, Val ChatID, Val MessageID) Export
|
||||
Return ОткрепитьСообщение(Token, ChatID, MessageID);
|
||||
EndFunction
|
||||
|
||||
Function AnswerButtonEvent(Val Token, Val EventID, Val Text = "", Val URL = "", Val AsAlert = False) Export
|
||||
Return ОтветитьНаСобытиеКлавиатуры(Token, EventID, Text, URL, AsAlert);
|
||||
EndFunction
|
||||
|
||||
Function MakeActionButton(Val Text, Val Value = "", Val URL = "", Val Style = "base") Export
|
||||
Return СформироватьКнопкуДействия(Text, Value, URL, Style);
|
||||
EndFunction
|
||||
|
||||
Function RemoveChatMembers(Val Token, Val ChatID, Val Users) Export
|
||||
Return ИсключитьПользователейЧата(Token, ChatID, Users);
|
||||
EndFunction
|
||||
|
||||
Function ChangeChatPicture(Val Token, Val ChatID, Val File) Export
|
||||
Return ИзменитьАватарЧата(Token, ChatID, File);
|
||||
EndFunction
|
||||
|
||||
Function GetChatInfo(Val Token, Val ChatID) Export
|
||||
Return ПолучитьИнформациюОЧате(Token, ChatID);
|
||||
EndFunction
|
||||
|
||||
Function GetChatAdmins(Val Token, Val ChatID) Export
|
||||
Return ПолучитьАдминистраторовЧата(Token, ChatID);
|
||||
EndFunction
|
||||
|
||||
Function GetChatMembers(Val Token, Val ChatID, Val Cursor = "") Export
|
||||
Return ПолучитьПользователейЧата(Token, ChatID, Cursor);
|
||||
EndFunction
|
||||
|
||||
Function GetChatBlockedUsers(Val Token, Val ChatID) Export
|
||||
Return ПолучитьЗаблокированныхПользователейЧата(Token, ChatID);
|
||||
EndFunction
|
||||
|
||||
Function GetChatJoinRequests(Val Token, Val ChatID) Export
|
||||
Return ПолучитьЗапросыВступленияЧата(Token, ChatID);
|
||||
EndFunction
|
||||
|
||||
Function BlockChatUser(Val Token, Val ChatID, Val UserID, Val DeleteLastMessages = False) Export
|
||||
Return ЗаблокироватьПользователяЧата(Token, ChatID, UserID, DeleteLastMessages);
|
||||
EndFunction
|
||||
|
||||
Function UnblockChatUser(Val Token, Val ChatID, Val UserID) Export
|
||||
Return РазблокироватьПользователяЧата(Token, ChatID, UserID);
|
||||
EndFunction
|
||||
|
||||
Function ApprovePending(Val Token, Val ChatID, Val UserID = "") Export
|
||||
Return ОдобритьЗаявкуНаВступление(Token, ChatID, UserID);
|
||||
EndFunction
|
||||
|
||||
Function DisapprovePending(Val Token, Val ChatID, Val UserID = "") Export
|
||||
Return ОтклонитьЗаявкуНаВступление(Token, ChatID, UserID);
|
||||
EndFunction
|
||||
|
||||
Function SetChatTitle(Val Token, Val ChatID, Val Text) Export
|
||||
Return УстановитьЗаголовокЧата(Token, ChatID, Text);
|
||||
EndFunction
|
||||
|
||||
Function SetChatDescription(Val Token, Val ChatID, Val Text) Export
|
||||
Return УстановитьОписаниеЧата(Token, ChatID, Text);
|
||||
EndFunction
|
||||
|
||||
Function SetChatRules(Val Token, Val ChatID, Val Text) Export
|
||||
Return УстановитьПравилаЧата(Token, ChatID, Text);
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
51
src/ru/OInt/core/Modules/OPI_Viber.os
vendored
51
src/ru/OInt/core/Modules/OPI_Viber.os
vendored
@@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_Viber.os
|
||||
// OneScript: ./OInt/core/Modules/OPI_Viber.os
|
||||
// Lib: Viber
|
||||
// CLI: viber
|
||||
// Keywords: viber
|
||||
@@ -404,52 +404,3 @@
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
|
||||
#Region Alternate
|
||||
|
||||
Function SetWebhook(Val Token, Val URL) Export
|
||||
Return УстановитьWebhook(Token, URL);
|
||||
EndFunction
|
||||
|
||||
Function GetChannelInformation(Val Token) Export
|
||||
Return ПолучитьИнформациюОКанале(Token);
|
||||
EndFunction
|
||||
|
||||
Function GetUserData(Val Token, Val UserID) Export
|
||||
Return ПолучитьДанныеПользователя(Token, UserID);
|
||||
EndFunction
|
||||
|
||||
Function GetOnlineUsers(Val Token, Val UserIDs) Export
|
||||
Return ПолучитьОнлайнПользователей(Token, UserIDs);
|
||||
EndFunction
|
||||
|
||||
Function SendTextMessage(Val Token, Val Text, Val UserID, Val SendingToChannel, Val Keyboard = "") Export
|
||||
Return ОтправитьТекстовоеСообщение(Token, Text, UserID, SendingToChannel, Keyboard);
|
||||
EndFunction
|
||||
|
||||
Function SendImage(Val Token, Val URL, Val UserID, Val SendingToChannel, Val Description = "") Export
|
||||
Return ОтправитьКартинку(Token, URL, UserID, SendingToChannel, Description);
|
||||
EndFunction
|
||||
|
||||
Function SendFile(Val Token, Val URL, Val UserID, Val SendingToChannel, Val Extension, Val Size = "") Export
|
||||
Return ОтправитьФайл(Token, URL, UserID, SendingToChannel, Extension, Size);
|
||||
EndFunction
|
||||
|
||||
Function SendContact(Val Token, Val ContactName, Val PhoneNumber, Val UserID, Val SendingToChannel) Export
|
||||
Return ОтправитьКонтакт(Token, ContactName, PhoneNumber, UserID, SendingToChannel);
|
||||
EndFunction
|
||||
|
||||
Function SendLocation(Val Token, Val Latitude, Val Longitude, Val UserID, Val SendingToChannel) Export
|
||||
Return ОтправитьЛокацию(Token, Latitude, Longitude, UserID, SendingToChannel);
|
||||
EndFunction
|
||||
|
||||
Function SendLink(Val Token, Val URL, Val UserID, Val SendingToChannel) Export
|
||||
Return ОтправитьСсылку(Token, URL, UserID, SendingToChannel);
|
||||
EndFunction
|
||||
|
||||
Function CreateKeyboardFromArrayButton(Val ButtonArray, Val ButtonColor = "#2db9b9") Export
|
||||
Return СформироватьКлавиатуруИзМассиваКнопок(ButtonArray, ButtonColor);
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
75
src/ru/OInt/core/Modules/OPI_YandexDisk.os
vendored
75
src/ru/OInt/core/Modules/OPI_YandexDisk.os
vendored
@@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_YandexDisk.os
|
||||
// OneScript: ./OInt/core/Modules/OPI_YandexDisk.os
|
||||
// Lib: Yandex Disk
|
||||
// CLI: yadisk
|
||||
// Keywords: yandexdisk, yandex.disk, yandex disk, yandex drive, yadisk, ya disk
|
||||
@@ -607,76 +607,3 @@
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
|
||||
#Region Alternate
|
||||
|
||||
Function GetDiskInformation(Val Token) Export
|
||||
Return ПолучитьИнформациюОДиске(Token);
|
||||
EndFunction
|
||||
|
||||
Function CreateFolder(Val Token, Val Path) Export
|
||||
Return СоздатьПапку(Token, Path);
|
||||
EndFunction
|
||||
|
||||
Function GetObject(Val Token, Val Path) Export
|
||||
Return ПолучитьОбъект(Token, Path);
|
||||
EndFunction
|
||||
|
||||
Function DeleteObject(Val Token, Val Path, Val ToCart = True) Export
|
||||
Return УдалитьОбъект(Token, Path, ToCart);
|
||||
EndFunction
|
||||
|
||||
Function CreateObjectCopy(Val Token, Val Original, Val Path, Val Overwrite = False) Export
|
||||
Return СоздатьКопиюОбъекта(Token, Original, Path, Overwrite);
|
||||
EndFunction
|
||||
|
||||
Function GetDownloadLink(Val Token, Val Path) Export
|
||||
Return ПолучитьСсылкуДляСкачивания(Token, Path);
|
||||
EndFunction
|
||||
|
||||
Function DownloadFile(Val Token, Val Path, Val SavePath = "") Export
|
||||
Return СкачатьФайл(Token, Path, SavePath);
|
||||
EndFunction
|
||||
|
||||
Function GetFilesList(Val Token, Val Count = 0, Val OffsetFromStart = 0, Val FilterByType = "", Val SortByDate = False) Export
|
||||
Return ПолучитьСписокФайлов(Token, Count, OffsetFromStart, FilterByType, SortByDate);
|
||||
EndFunction
|
||||
|
||||
Function MoveObject(Val Token, Val Original, Val Path, Val Overwrite = False) Export
|
||||
Return ПереместитьОбъект(Token, Original, Path, Overwrite);
|
||||
EndFunction
|
||||
|
||||
Function UploadFile(Val Token, Val Path, Val File, Val Overwrite = False) Export
|
||||
Return ЗагрузитьФайл(Token, Path, File, Overwrite);
|
||||
EndFunction
|
||||
|
||||
Function UploadFileByURL(Val Token, Val Path, Val Address) Export
|
||||
Return ЗагрузитьФайлПоURL(Token, Path, Address);
|
||||
EndFunction
|
||||
|
||||
Function PublishObject(Val Token, Val Path) Export
|
||||
Return ОпубликоватьОбъект(Token, Path);
|
||||
EndFunction
|
||||
|
||||
Function CancelObjectPublication(Val Token, Val Path) Export
|
||||
Return ОтменитьПубликациюОбъекта(Token, Path);
|
||||
EndFunction
|
||||
|
||||
Function GetPublishedObjectsList(Val Token, Val Count = 0, Val OffsetFromStart = 0) Export
|
||||
Return ПолучитьСписокОпубликованныхОбъектов(Token, Count, OffsetFromStart);
|
||||
EndFunction
|
||||
|
||||
Function GetPublicObject(Val Token, Val URL, Val Count = 0, Val OffsetFromStart = 0) Export
|
||||
Return ПолучитьПубличныйОбъект(Token, URL, Count, OffsetFromStart);
|
||||
EndFunction
|
||||
|
||||
Function GetDownloadLinkForPublicObject(Val Token, Val URL, Val Path = "") Export
|
||||
Return ПолучитьСсылкуСкачиванияПубличногоОбъекта(Token, URL, Path);
|
||||
EndFunction
|
||||
|
||||
Function SavePublicObjectToDisk(Val Token, Val URL, From = "", Target = "") Export
|
||||
Return СохранитьПубличныйОбъектНаДиск(Token, URL, From, Target);
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
23
src/ru/OInt/core/Modules/OPI_YandexID.os
vendored
23
src/ru/OInt/core/Modules/OPI_YandexID.os
vendored
@@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_YandexID.os
|
||||
// OneScript: ./OInt/core/Modules/OPI_YandexID.os
|
||||
// Lib: Yandex ID
|
||||
// CLI: yandex
|
||||
|
||||
@@ -130,24 +130,3 @@
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
|
||||
#Region Alternate
|
||||
|
||||
Function GetConfirmationCode(Val ClientId) Export
|
||||
Return ПолучитьКодПодтверждения(ClientId);
|
||||
EndFunction
|
||||
|
||||
Function ConvertCodeToToken(Val ClientId, Val ClientSecret, Val DeviceCode) Export
|
||||
Return ПреобразоватьКодВТокен(ClientId, ClientSecret, DeviceCode);
|
||||
EndFunction
|
||||
|
||||
Function RefreshToken(Val ClientId, Val ClientSecret, Val RefreshToken) Export
|
||||
Return ОбновитьТокен(ClientId, ClientSecret, RefreshToken);
|
||||
EndFunction
|
||||
|
||||
Function GetAuthorizationHeader(Val Token) Export
|
||||
Return ПолучитьЗаголовокАвторизации(Token);
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
895
src/ru/OInt/core/Modules/OPI_YandexMarket.os
vendored
895
src/ru/OInt/core/Modules/OPI_YandexMarket.os
vendored
@@ -1,466 +1,429 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_YandexMarket.os
|
||||
// Lib: Yandex Market
|
||||
// CLI: yamarket
|
||||
|
||||
// MIT License
|
||||
|
||||
// Copyright (c) 2023-2025 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:Typo-off
|
||||
// BSLLS:LatinAndCyrillicSymbolInWord-off
|
||||
// BSLLS:IncorrectLineBreak-off
|
||||
// BSLLS:NumberOfOptionalParams-off
|
||||
// BSLLS:UsingServiceTag-off
|
||||
// BSLLS:LineLength-off
|
||||
|
||||
//@skip-check module-structure-top-region
|
||||
//@skip-check module-structure-method-in-regions
|
||||
//@skip-check wrong-string-literal-content
|
||||
//@skip-check method-too-many-params
|
||||
|
||||
// Раскомментировать, если выполняется OneScript
|
||||
#Использовать "../../tools"
|
||||
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
#Область КабинетыИМагазины
|
||||
|
||||
// Получить список магазинов
|
||||
// Получает список магазинов в кабинете по токену
|
||||
//
|
||||
// Примечание:
|
||||
// Метод в документации API: [Список магазинов пользователя](@yandex.ru/dev/market/partner-api/doc/ru/reference/campaigns/getCampaigns)
|
||||
//
|
||||
// Параметры:
|
||||
// Токен - Строка - Токен авторизации (Api-Key) - token
|
||||
// Страница - Число - Номер страницы выдачи списка - page
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex Market
|
||||
Функция ПолучитьСписокМагазинов(Знач Токен, Знач Страница = 1) Экспорт
|
||||
|
||||
URL = "https://api.partner.market.yandex.ru/campaigns";
|
||||
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
|
||||
|
||||
РазмерСтраницы = 100;
|
||||
|
||||
Параметры = Новый Структура;
|
||||
OPI_Инструменты.ДобавитьПоле("page" , Страница , "Число", Параметры);
|
||||
OPI_Инструменты.ДобавитьПоле("pageSize", РазмерСтраницы, "Число", Параметры);
|
||||
|
||||
Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры, Заголовки);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Получить магазин
|
||||
// Получает информацию о магазине (кампании) по ID
|
||||
//
|
||||
// Примечание:
|
||||
// Метод в документации API: [Информация о магазине](@yandex.ru/dev/market/partner-api/doc/ru/reference/campaigns/getCampaign)
|
||||
//
|
||||
// Параметры:
|
||||
// Токен - Строка - Токен авторизации (Api-Key) - token
|
||||
// IDМагазина - Строка, Число - ID магазина (кампании) - campaign
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex Market
|
||||
Функция ПолучитьМагазин(Знач Токен, Знач IDМагазина) Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDМагазина);
|
||||
|
||||
URL = "https://api.partner.market.yandex.ru/campaigns/" + IDМагазина;
|
||||
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
|
||||
|
||||
Ответ = OPI_ЗапросыHTTP.Get(URL, , Заголовки);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Получить настройки кабинета
|
||||
// Получает значения настроек кабинета по ID
|
||||
//
|
||||
// Примечание:
|
||||
// Метод в документации API: [Настройки кабинета](@yandex.ru/dev/market/partner-api/doc/ru/reference/businesses/getBusinessSettings)
|
||||
//
|
||||
// Параметры:
|
||||
// Токен - Строка - Токен авторизации (Api-Key) - token
|
||||
// IDКабинета - Строка, Число - ID кабинета - business
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex Market
|
||||
Функция ПолучитьНастройкиКабинета(Знач Токен, Знач IDКабинета) Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDКабинета);
|
||||
|
||||
URL = "https://api.partner.market.yandex.ru/businesses/%1/settings";
|
||||
URL = СтрШаблон(URL, IDКабинета);
|
||||
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
|
||||
|
||||
Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, , Заголовки);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Получить настройки магазина
|
||||
// Получает настройки магазина по ID
|
||||
//
|
||||
// Примечание:
|
||||
// Метод в документации API: [Настройки магазина](@yandex.ru/dev/market/partner-api/doc/ru/reference/campaigns/getCampaignSettings)
|
||||
//
|
||||
// Параметры:
|
||||
// Токен - Строка - Токен авторизации (Api-Key) - token
|
||||
// IDМагазина - Строка, Число - ID магазина (кампании) - campaign
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex Market
|
||||
Функция ПолучитьНастройкиМагазина(Знач Токен, Знач IDМагазина) Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDМагазина);
|
||||
|
||||
URL = "https://api.partner.market.yandex.ru/campaigns/%1/settings";
|
||||
URL = СтрШаблон(URL, IDМагазина);
|
||||
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
|
||||
|
||||
Ответ = OPI_ЗапросыHTTP.Get(URL, , Заголовки);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область РаботаСТоварами
|
||||
|
||||
// Добавить обновить товары
|
||||
// Добавляет или обновляет информацию о товарах в каталоге
|
||||
//
|
||||
// Примечание:
|
||||
// Метод в документации API: [Добавление товаров в каталог и изменение информации о них](@yandex.ru/dev/market/partner-api/doc/ru/reference/business-assortment/updateOfferMappings)
|
||||
//
|
||||
// Параметры:
|
||||
// Токен - Строка - Токен авторизации (Api-Key) - token
|
||||
// IDКабинета - Строка, Число - ID кабинета - business
|
||||
// МассивТоваров - Структура, Массив Из Структура - Массив описаний товаров - offers
|
||||
// СвоиИзображения - Булево - Признак использования только своих изображений товаров - pmedia
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex Market
|
||||
Функция ДобавитьОбновитьТовары(Знач Токен, Знач IDКабинета, Знач МассивТоваров, Знач СвоиИзображения = Ложь) Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDКабинета);
|
||||
|
||||
URL = "https://api.partner.market.yandex.ru/businesses/%1/offer-mappings/update";
|
||||
URL = СтрШаблон(URL, IDКабинета);
|
||||
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
|
||||
|
||||
Параметры = Новый Структура;
|
||||
OPI_Инструменты.ДобавитьПоле("offerMappings" , МассивТоваров , "Массив", Параметры);
|
||||
OPI_Инструменты.ДобавитьПоле("onlyPartnerMediaContent", СвоиИзображения, "Булево", Параметры);
|
||||
|
||||
Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Получить товары магазина
|
||||
// Получает список товаров выбранного магазина
|
||||
//
|
||||
// Примечание:
|
||||
// Метод в документации API: [Информация о товарах, которые размещены в заданном магазине](@https://yandex.ru/dev/market/partner-api/doc/ru/reference/assortment/getCampaignOffers)
|
||||
//
|
||||
// Параметры:
|
||||
// Токен - Строка - Токен авторизации (Api-Key) - token
|
||||
// IDМагазина - Строка, Число - ID магазина - business
|
||||
// Фильтры - Структура Из КлючИЗначение - Фильтры для отбора товаров - filters
|
||||
// ТокенСтраницы - Строка - Токен следующей страницы при большой выборке - page
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex Market
|
||||
Функция ПолучитьТоварыМагазина(Знач Токен, Знач IDМагазина, Знач Фильтры = "", Знач ТокенСтраницы = "") Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDМагазина);
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(ТокенСтраницы);
|
||||
|
||||
URL = "https://api.partner.market.yandex.ru/campaigns/%1/offers";
|
||||
URL = СтрШаблон(URL, IDМагазина);
|
||||
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
|
||||
|
||||
Если ЗначениеЗаполнено(ТокенСтраницы) Тогда
|
||||
URL = URL + "?page_token=" + ТокенСтраницы;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(Фильтры) Тогда
|
||||
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Фильтры);
|
||||
Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Фильтры, Заголовки);
|
||||
Иначе
|
||||
Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, , Заголовки);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Получить товары кабинета
|
||||
// Получает список товаров выбранного кабинета
|
||||
//
|
||||
// Параметры:
|
||||
// Токен - Строка - Токен авторизации (Api-Key) - token
|
||||
// IDКабинета - Строка, Число - ID кабинета - business
|
||||
// Фильтры - Структура Из КлючИЗначение - Фильтры для отбора товаров - filters
|
||||
// ТокенСтраницы - Строка - Токен следующей страницы при большой выборке - page
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex Market
|
||||
Функция ПолучитьТоварыКабинета(Знач Токен, Знач IDКабинета, Знач Фильтры = "", Знач ТокенСтраницы = "") Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDКабинета);
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(ТокенСтраницы);
|
||||
|
||||
URL = "https://api.partner.market.yandex.ru/businesses/%1/offer-mappings";
|
||||
URL = СтрШаблон(URL, IDКабинета);
|
||||
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
|
||||
|
||||
Если ЗначениеЗаполнено(ТокенСтраницы) Тогда
|
||||
URL = URL + "?page_token=" + ТокенСтраницы;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(Фильтры) Тогда
|
||||
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Фильтры);
|
||||
Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Фильтры, Заголовки);
|
||||
Иначе
|
||||
Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, , Заголовки);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Получить структуру товара
|
||||
// Получает структуру стандартных полей товара
|
||||
//
|
||||
// Примечание:
|
||||
// Описание в документации API: [UpdateOfferDTO](@https://yandex.ru/dev/market/partner-api/doc/ru/reference/business-assortment/updateOfferMappings#updateofferdto)
|
||||
//
|
||||
// Параметры:
|
||||
// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура Из КлючИЗначение - Структура полей товара
|
||||
Функция ПолучитьСтруктуруТовара(Знач Пустая = Ложь) Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
|
||||
|
||||
// BSLLS:DuplicateStringLiteral-off
|
||||
|
||||
СтруктураТовара = Новый Структура;
|
||||
СтруктураТовара.Вставить("offerId", "<идентификатор товара в вашей системе>");
|
||||
|
||||
СтруктураРасходов = Новый Структура;
|
||||
СтруктураРасходов.Вставить("currencyId" , "<код валюты>");
|
||||
СтруктураРасходов.Вставить("value" , "<доп. расходы>");
|
||||
|
||||
СтруктураТовара.Вставить("additionalExpenses", СтруктураРасходов);
|
||||
СтруктураТовара.Вставить("adult" , "<параметр включает для товара пометку 18+>");
|
||||
|
||||
СтруктураВозраста = Новый Структура;
|
||||
СтруктураВозраста.Вставить("ageUnit", "<единица измерения: YEAR, MONTH>");
|
||||
СтруктураВозраста.Вставить("value" , "<возрастное ограничение>");
|
||||
|
||||
СтруктураТовара.Вставить("age", СтруктураВозраста);
|
||||
|
||||
МассивШтрихкодов = Новый Массив;
|
||||
МассивШтрихкодов.Добавить("<штрихкод>");
|
||||
|
||||
СтруктураТовара.Вставить("barcodes", МассивШтрихкодов);
|
||||
|
||||
СтруктураБазовойЦены = Новый Структура;
|
||||
СтруктураБазовойЦены.Вставить("currencyId" , "<код валюты>");
|
||||
СтруктураБазовойЦены.Вставить("value" , "<цена>");
|
||||
СтруктураБазовойЦены.Вставить("discountBase", "<цена до скидки>");
|
||||
|
||||
СтруктураТовара.Вставить("basicPrice", СтруктураБазовойЦены);
|
||||
СтруктураТовара.Вставить("boxCount" , "<количество грузовых мест>");
|
||||
СтруктураТовара.Вставить("category" , "<категория товара в вашем магазине>");
|
||||
|
||||
МассивСертификатов = Новый Массив;
|
||||
МассивСертификатов.Добавить("<номер документа на товар>");
|
||||
|
||||
СтруктураТовара.Вставить("certificates", МассивСертификатов);
|
||||
|
||||
СтруктураЦеныДляСкидок = Новый Структура;
|
||||
СтруктураЦеныДляСкидок.Вставить("currencyId" , "<код валюты>");
|
||||
СтруктураЦеныДляСкидок.Вставить("value" , "<цена>");
|
||||
|
||||
СтруктураТовара.Вставить("cofinancePrice", СтруктураЦеныДляСкидок);
|
||||
|
||||
СтруктураСостояния = Новый Структура;
|
||||
СтруктураСостояния.Вставить("quality", "<внешний вид товара>");
|
||||
СтруктураСостояния.Вставить("reason" , "<описание дефектов>");
|
||||
СтруктураСостояния.Вставить("type" , "<тип уценки>");
|
||||
|
||||
СтруктураТовара.Вставить("condition", СтруктураСостояния);
|
||||
|
||||
СтруктураТовара.Вставить("customsCommodityCode", "<код товара ТН ВЭД>");
|
||||
СтруктураТовара.Вставить("description" , "<подробное описание товара>");
|
||||
СтруктураТовара.Вставить("downloadable" , "<признак цифрового товара>");
|
||||
|
||||
СтруктураПериода = Новый Структура;
|
||||
СтруктураПериода.Вставить("timePeriod", "<значение продолжительности>");
|
||||
СтруктураПериода.Вставить("timeUnit" , "<единица измерения>");
|
||||
СтруктураПериода.Вставить("comment" , "<комментарий>");
|
||||
|
||||
СтруктураТовара.Вставить("guaranteePeriod", СтруктураПериода);
|
||||
СтруктураТовара.Вставить("lifeTime" , СтруктураПериода);
|
||||
|
||||
МассивРуководств = Новый Массив;
|
||||
|
||||
СтруктураРуководства = Новый Структура;
|
||||
СтруктураРуководства.Вставить("url" , "<сслыка на руководство>");
|
||||
СтруктураРуководства.Вставить("title", "<заголовок руководства>");
|
||||
|
||||
МассивРуководств.Добавить(СтруктураРуководства);
|
||||
|
||||
СтруктураТовара.Вставить("manuals", МассивРуководств);
|
||||
|
||||
МассивСтран = Новый Массив;
|
||||
МассивСтран.Добавить("<страна производства>");
|
||||
|
||||
СтруктураТовара.Вставить("manufacturerCountries", МассивСтран);
|
||||
СтруктураТовара.Вставить("marketCategoryId" , "<идентификатор категории на Маркете>");
|
||||
СтруктураТовара.Вставить("name" , "<имя товара>");
|
||||
|
||||
МассивХарактеристик = Новый Массив;
|
||||
|
||||
СтруктураХарактеристики = Новый Структура;
|
||||
СтруктураХарактеристики.Вставить("parameterId", "<идентификатор характеристики>");
|
||||
СтруктураХарактеристики.Вставить("unitId" , "<идентификатор единицы измерения>");
|
||||
СтруктураХарактеристики.Вставить("value" , "<значение>");
|
||||
СтруктураХарактеристики.Вставить("valueId" , "<идентификатор значения для перечислений>");
|
||||
|
||||
МассивХарактеристик.Добавить(СтруктураХарактеристики);
|
||||
|
||||
СтруктураТовара.Вставить("parameterValues", МассивХарактеристик);
|
||||
|
||||
МассивКартинок = Новый Массив;
|
||||
МассивКартинок.Добавить("<ссылка на картинку товара>");
|
||||
|
||||
СтруктураТовара.Вставить("pictures" , МассивКартинок);
|
||||
|
||||
СтруктураЦеныЗакупки = Новый Структура;
|
||||
СтруктураЦеныЗакупки.Вставить("currencyId" , "<код валюты>");
|
||||
СтруктураЦеныЗакупки.Вставить("value" , "<цена>");
|
||||
|
||||
СтруктураТовара.Вставить("purchasePrice", СтруктураЦеныЗакупки);
|
||||
СтруктураТовара.Вставить("shelfLife" , СтруктураПериода);
|
||||
|
||||
МассивТэгов = Новый Массив;
|
||||
МассивТэгов.Добавить("<метка>");
|
||||
|
||||
СтруктураТовара.Вставить("tags" , МассивТэгов);
|
||||
СтруктураТовара.Вставить("type" , "<особый тип товара>");
|
||||
СтруктураТовара.Вставить("vendor" , "<название бренда или производителя>");
|
||||
СтруктураТовара.Вставить("vendorCode", "<артикул товара от производителя>");
|
||||
|
||||
МассивВидео = Новый Массив;
|
||||
МассивВидео.Добавить("<ссылка на видео>");
|
||||
|
||||
СтруктураТовара.Вставить("videos" , МассивВидео);
|
||||
|
||||
СтруктураРазмеров = Новый Структура;
|
||||
СтруктураРазмеров.Вставить("height", "<высота в см.>");
|
||||
СтруктураРазмеров.Вставить("length", "<длина в см.>");
|
||||
СтруктураРазмеров.Вставить("weight", "<вес в кг. (брутто)>");
|
||||
СтруктураРазмеров.Вставить("width" , "<ширина в см.>");
|
||||
|
||||
СтруктураТовара.Вставить("weightDimensions", "<габариты и вес товара>");
|
||||
|
||||
// BSLLS:DuplicateStringLiteral-on
|
||||
|
||||
Если Пустая Тогда
|
||||
СтруктураТовара = OPI_Инструменты.ОчиститьКоллекциюРекурсивно(СтруктураТовара);
|
||||
КонецЕсли;
|
||||
|
||||
//@skip-check constructor-function-return-section
|
||||
Возврат СтруктураТовара;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Функция СоздатьЗаголовкиЗапроса(Знач Токен)
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
|
||||
|
||||
Заголовки = Новый Соответствие;
|
||||
Заголовки.Вставить("Api-Key", Токен);
|
||||
Возврат Заголовки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
|
||||
#Region Alternate
|
||||
|
||||
Function GetMarketsList(Val Token, Val Page = 1) Export
|
||||
Return ПолучитьСписокМагазинов(Token, Page);
|
||||
EndFunction
|
||||
|
||||
Function GetMarket(Val Token, Val CampaignID) Export
|
||||
Return ПолучитьМагазин(Token, CampaignID);
|
||||
EndFunction
|
||||
|
||||
Function GetBusinessSettings(Val Token, Val AccountID) Export
|
||||
Return ПолучитьНастройкиКабинета(Token, AccountID);
|
||||
EndFunction
|
||||
|
||||
Function GetCampaignSettings(Val Token, Val CampaignID) Export
|
||||
Return ПолучитьНастройкиМагазина(Token, CampaignID);
|
||||
EndFunction
|
||||
|
||||
Function AddUpdateProducts(Val Token, Val AccountID, Val ProductsArray, Val OwnImages = False) Export
|
||||
Return ДобавитьОбновитьТовары(Token, AccountID, ProductsArray, OwnImages);
|
||||
EndFunction
|
||||
|
||||
Function GetCampaignProducts(Val Token, Val CampaignID, Val Filters = "", Val PageToken = "") Export
|
||||
Return ПолучитьТоварыМагазина(Token, CampaignID, Filters, PageToken);
|
||||
EndFunction
|
||||
|
||||
Function GetBusinessProducts(Val Token, Val AccountID, Val Filters = "", Val PageToken = "") Export
|
||||
Return ПолучитьТоварыКабинета(Token, AccountID, Filters, PageToken);
|
||||
EndFunction
|
||||
|
||||
Function GetProductStructure(Val Clear = False) Export
|
||||
Return ПолучитьСтруктуруТовара(Clear);
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
// OneScript: ./OInt/core/Modules/OPI_YandexMarket.os
|
||||
// Lib: Yandex Market
|
||||
// CLI: yamarket
|
||||
|
||||
// MIT License
|
||||
|
||||
// Copyright (c) 2023-2025 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:Typo-off
|
||||
// BSLLS:LatinAndCyrillicSymbolInWord-off
|
||||
// BSLLS:IncorrectLineBreak-off
|
||||
// BSLLS:NumberOfOptionalParams-off
|
||||
// BSLLS:UsingServiceTag-off
|
||||
// BSLLS:LineLength-off
|
||||
|
||||
//@skip-check module-structure-top-region
|
||||
//@skip-check module-structure-method-in-regions
|
||||
//@skip-check wrong-string-literal-content
|
||||
//@skip-check method-too-many-params
|
||||
|
||||
// Раскомментировать, если выполняется OneScript
|
||||
#Использовать "../../tools"
|
||||
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
#Область КабинетыИМагазины
|
||||
|
||||
// Получить список магазинов
|
||||
// Получает список магазинов в кабинете по токену
|
||||
//
|
||||
// Примечание:
|
||||
// Метод в документации API: [Список магазинов пользователя](@yandex.ru/dev/market/partner-api/doc/ru/reference/campaigns/getCampaigns)
|
||||
//
|
||||
// Параметры:
|
||||
// Токен - Строка - Токен авторизации (Api-Key) - token
|
||||
// Страница - Число - Номер страницы выдачи списка - page
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex Market
|
||||
Функция ПолучитьСписокМагазинов(Знач Токен, Знач Страница = 1) Экспорт
|
||||
|
||||
URL = "https://api.partner.market.yandex.ru/campaigns";
|
||||
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
|
||||
|
||||
РазмерСтраницы = 100;
|
||||
|
||||
Параметры = Новый Структура;
|
||||
OPI_Инструменты.ДобавитьПоле("page" , Страница , "Число", Параметры);
|
||||
OPI_Инструменты.ДобавитьПоле("pageSize", РазмерСтраницы, "Число", Параметры);
|
||||
|
||||
Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры, Заголовки);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Получить магазин
|
||||
// Получает информацию о магазине (кампании) по ID
|
||||
//
|
||||
// Примечание:
|
||||
// Метод в документации API: [Информация о магазине](@yandex.ru/dev/market/partner-api/doc/ru/reference/campaigns/getCampaign)
|
||||
//
|
||||
// Параметры:
|
||||
// Токен - Строка - Токен авторизации (Api-Key) - token
|
||||
// IDМагазина - Строка, Число - ID магазина (кампании) - campaign
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex Market
|
||||
Функция ПолучитьМагазин(Знач Токен, Знач IDМагазина) Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDМагазина);
|
||||
|
||||
URL = "https://api.partner.market.yandex.ru/campaigns/" + IDМагазина;
|
||||
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
|
||||
|
||||
Ответ = OPI_ЗапросыHTTP.Get(URL, , Заголовки);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Получить настройки кабинета
|
||||
// Получает значения настроек кабинета по ID
|
||||
//
|
||||
// Примечание:
|
||||
// Метод в документации API: [Настройки кабинета](@yandex.ru/dev/market/partner-api/doc/ru/reference/businesses/getBusinessSettings)
|
||||
//
|
||||
// Параметры:
|
||||
// Токен - Строка - Токен авторизации (Api-Key) - token
|
||||
// IDКабинета - Строка, Число - ID кабинета - business
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex Market
|
||||
Функция ПолучитьНастройкиКабинета(Знач Токен, Знач IDКабинета) Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDКабинета);
|
||||
|
||||
URL = "https://api.partner.market.yandex.ru/businesses/%1/settings";
|
||||
URL = СтрШаблон(URL, IDКабинета);
|
||||
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
|
||||
|
||||
Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, , Заголовки);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Получить настройки магазина
|
||||
// Получает настройки магазина по ID
|
||||
//
|
||||
// Примечание:
|
||||
// Метод в документации API: [Настройки магазина](@yandex.ru/dev/market/partner-api/doc/ru/reference/campaigns/getCampaignSettings)
|
||||
//
|
||||
// Параметры:
|
||||
// Токен - Строка - Токен авторизации (Api-Key) - token
|
||||
// IDМагазина - Строка, Число - ID магазина (кампании) - campaign
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex Market
|
||||
Функция ПолучитьНастройкиМагазина(Знач Токен, Знач IDМагазина) Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDМагазина);
|
||||
|
||||
URL = "https://api.partner.market.yandex.ru/campaigns/%1/settings";
|
||||
URL = СтрШаблон(URL, IDМагазина);
|
||||
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
|
||||
|
||||
Ответ = OPI_ЗапросыHTTP.Get(URL, , Заголовки);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область РаботаСТоварами
|
||||
|
||||
// Добавить обновить товары
|
||||
// Добавляет или обновляет информацию о товарах в каталоге
|
||||
//
|
||||
// Примечание:
|
||||
// Метод в документации API: [Добавление товаров в каталог и изменение информации о них](@yandex.ru/dev/market/partner-api/doc/ru/reference/business-assortment/updateOfferMappings)
|
||||
//
|
||||
// Параметры:
|
||||
// Токен - Строка - Токен авторизации (Api-Key) - token
|
||||
// IDКабинета - Строка, Число - ID кабинета - business
|
||||
// МассивТоваров - Структура, Массив Из Структура - Массив описаний товаров - offers
|
||||
// СвоиИзображения - Булево - Признак использования только своих изображений товаров - pmedia
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex Market
|
||||
Функция ДобавитьОбновитьТовары(Знач Токен, Знач IDКабинета, Знач МассивТоваров, Знач СвоиИзображения = Ложь) Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDКабинета);
|
||||
|
||||
URL = "https://api.partner.market.yandex.ru/businesses/%1/offer-mappings/update";
|
||||
URL = СтрШаблон(URL, IDКабинета);
|
||||
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
|
||||
|
||||
Параметры = Новый Структура;
|
||||
OPI_Инструменты.ДобавитьПоле("offerMappings" , МассивТоваров , "Массив", Параметры);
|
||||
OPI_Инструменты.ДобавитьПоле("onlyPartnerMediaContent", СвоиИзображения, "Булево", Параметры);
|
||||
|
||||
Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Получить товары магазина
|
||||
// Получает список товаров выбранного магазина
|
||||
//
|
||||
// Примечание:
|
||||
// Метод в документации API: [Информация о товарах, которые размещены в заданном магазине](@https://yandex.ru/dev/market/partner-api/doc/ru/reference/assortment/getCampaignOffers)
|
||||
//
|
||||
// Параметры:
|
||||
// Токен - Строка - Токен авторизации (Api-Key) - token
|
||||
// IDМагазина - Строка, Число - ID магазина - business
|
||||
// Фильтры - Структура Из КлючИЗначение - Фильтры для отбора товаров - filters
|
||||
// ТокенСтраницы - Строка - Токен следующей страницы при большой выборке - page
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex Market
|
||||
Функция ПолучитьТоварыМагазина(Знач Токен, Знач IDМагазина, Знач Фильтры = "", Знач ТокенСтраницы = "") Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDМагазина);
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(ТокенСтраницы);
|
||||
|
||||
URL = "https://api.partner.market.yandex.ru/campaigns/%1/offers";
|
||||
URL = СтрШаблон(URL, IDМагазина);
|
||||
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
|
||||
|
||||
Если ЗначениеЗаполнено(ТокенСтраницы) Тогда
|
||||
URL = URL + "?page_token=" + ТокенСтраницы;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(Фильтры) Тогда
|
||||
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Фильтры);
|
||||
Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Фильтры, Заголовки);
|
||||
Иначе
|
||||
Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, , Заголовки);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Получить товары кабинета
|
||||
// Получает список товаров выбранного кабинета
|
||||
//
|
||||
// Параметры:
|
||||
// Токен - Строка - Токен авторизации (Api-Key) - token
|
||||
// IDКабинета - Строка, Число - ID кабинета - business
|
||||
// Фильтры - Структура Из КлючИЗначение - Фильтры для отбора товаров - filters
|
||||
// ТокенСтраницы - Строка - Токен следующей страницы при большой выборке - page
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex Market
|
||||
Функция ПолучитьТоварыКабинета(Знач Токен, Знач IDКабинета, Знач Фильтры = "", Знач ТокенСтраницы = "") Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDКабинета);
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(ТокенСтраницы);
|
||||
|
||||
URL = "https://api.partner.market.yandex.ru/businesses/%1/offer-mappings";
|
||||
URL = СтрШаблон(URL, IDКабинета);
|
||||
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
|
||||
|
||||
Если ЗначениеЗаполнено(ТокенСтраницы) Тогда
|
||||
URL = URL + "?page_token=" + ТокенСтраницы;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(Фильтры) Тогда
|
||||
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Фильтры);
|
||||
Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Фильтры, Заголовки);
|
||||
Иначе
|
||||
Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, , Заголовки);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Получить структуру товара
|
||||
// Получает структуру стандартных полей товара
|
||||
//
|
||||
// Примечание:
|
||||
// Описание в документации API: [UpdateOfferDTO](@https://yandex.ru/dev/market/partner-api/doc/ru/reference/business-assortment/updateOfferMappings#updateofferdto)
|
||||
//
|
||||
// Параметры:
|
||||
// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура Из КлючИЗначение - Структура полей товара
|
||||
Функция ПолучитьСтруктуруТовара(Знач Пустая = Ложь) Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
|
||||
|
||||
// BSLLS:DuplicateStringLiteral-off
|
||||
|
||||
СтруктураТовара = Новый Структура;
|
||||
СтруктураТовара.Вставить("offerId", "<идентификатор товара в вашей системе>");
|
||||
|
||||
СтруктураРасходов = Новый Структура;
|
||||
СтруктураРасходов.Вставить("currencyId" , "<код валюты>");
|
||||
СтруктураРасходов.Вставить("value" , "<доп. расходы>");
|
||||
|
||||
СтруктураТовара.Вставить("additionalExpenses", СтруктураРасходов);
|
||||
СтруктураТовара.Вставить("adult" , "<параметр включает для товара пометку 18+>");
|
||||
|
||||
СтруктураВозраста = Новый Структура;
|
||||
СтруктураВозраста.Вставить("ageUnit", "<единица измерения: YEAR, MONTH>");
|
||||
СтруктураВозраста.Вставить("value" , "<возрастное ограничение>");
|
||||
|
||||
СтруктураТовара.Вставить("age", СтруктураВозраста);
|
||||
|
||||
МассивШтрихкодов = Новый Массив;
|
||||
МассивШтрихкодов.Добавить("<штрихкод>");
|
||||
|
||||
СтруктураТовара.Вставить("barcodes", МассивШтрихкодов);
|
||||
|
||||
СтруктураБазовойЦены = Новый Структура;
|
||||
СтруктураБазовойЦены.Вставить("currencyId" , "<код валюты>");
|
||||
СтруктураБазовойЦены.Вставить("value" , "<цена>");
|
||||
СтруктураБазовойЦены.Вставить("discountBase", "<цена до скидки>");
|
||||
|
||||
СтруктураТовара.Вставить("basicPrice", СтруктураБазовойЦены);
|
||||
СтруктураТовара.Вставить("boxCount" , "<количество грузовых мест>");
|
||||
СтруктураТовара.Вставить("category" , "<категория товара в вашем магазине>");
|
||||
|
||||
МассивСертификатов = Новый Массив;
|
||||
МассивСертификатов.Добавить("<номер документа на товар>");
|
||||
|
||||
СтруктураТовара.Вставить("certificates", МассивСертификатов);
|
||||
|
||||
СтруктураЦеныДляСкидок = Новый Структура;
|
||||
СтруктураЦеныДляСкидок.Вставить("currencyId" , "<код валюты>");
|
||||
СтруктураЦеныДляСкидок.Вставить("value" , "<цена>");
|
||||
|
||||
СтруктураТовара.Вставить("cofinancePrice", СтруктураЦеныДляСкидок);
|
||||
|
||||
СтруктураСостояния = Новый Структура;
|
||||
СтруктураСостояния.Вставить("quality", "<внешний вид товара>");
|
||||
СтруктураСостояния.Вставить("reason" , "<описание дефектов>");
|
||||
СтруктураСостояния.Вставить("type" , "<тип уценки>");
|
||||
|
||||
СтруктураТовара.Вставить("condition", СтруктураСостояния);
|
||||
|
||||
СтруктураТовара.Вставить("customsCommodityCode", "<код товара ТН ВЭД>");
|
||||
СтруктураТовара.Вставить("description" , "<подробное описание товара>");
|
||||
СтруктураТовара.Вставить("downloadable" , "<признак цифрового товара>");
|
||||
|
||||
СтруктураПериода = Новый Структура;
|
||||
СтруктураПериода.Вставить("timePeriod", "<значение продолжительности>");
|
||||
СтруктураПериода.Вставить("timeUnit" , "<единица измерения>");
|
||||
СтруктураПериода.Вставить("comment" , "<комментарий>");
|
||||
|
||||
СтруктураТовара.Вставить("guaranteePeriod", СтруктураПериода);
|
||||
СтруктураТовара.Вставить("lifeTime" , СтруктураПериода);
|
||||
|
||||
МассивРуководств = Новый Массив;
|
||||
|
||||
СтруктураРуководства = Новый Структура;
|
||||
СтруктураРуководства.Вставить("url" , "<сслыка на руководство>");
|
||||
СтруктураРуководства.Вставить("title", "<заголовок руководства>");
|
||||
|
||||
МассивРуководств.Добавить(СтруктураРуководства);
|
||||
|
||||
СтруктураТовара.Вставить("manuals", МассивРуководств);
|
||||
|
||||
МассивСтран = Новый Массив;
|
||||
МассивСтран.Добавить("<страна производства>");
|
||||
|
||||
СтруктураТовара.Вставить("manufacturerCountries", МассивСтран);
|
||||
СтруктураТовара.Вставить("marketCategoryId" , "<идентификатор категории на Маркете>");
|
||||
СтруктураТовара.Вставить("name" , "<имя товара>");
|
||||
|
||||
МассивХарактеристик = Новый Массив;
|
||||
|
||||
СтруктураХарактеристики = Новый Структура;
|
||||
СтруктураХарактеристики.Вставить("parameterId", "<идентификатор характеристики>");
|
||||
СтруктураХарактеристики.Вставить("unitId" , "<идентификатор единицы измерения>");
|
||||
СтруктураХарактеристики.Вставить("value" , "<значение>");
|
||||
СтруктураХарактеристики.Вставить("valueId" , "<идентификатор значения для перечислений>");
|
||||
|
||||
МассивХарактеристик.Добавить(СтруктураХарактеристики);
|
||||
|
||||
СтруктураТовара.Вставить("parameterValues", МассивХарактеристик);
|
||||
|
||||
МассивКартинок = Новый Массив;
|
||||
МассивКартинок.Добавить("<ссылка на картинку товара>");
|
||||
|
||||
СтруктураТовара.Вставить("pictures" , МассивКартинок);
|
||||
|
||||
СтруктураЦеныЗакупки = Новый Структура;
|
||||
СтруктураЦеныЗакупки.Вставить("currencyId" , "<код валюты>");
|
||||
СтруктураЦеныЗакупки.Вставить("value" , "<цена>");
|
||||
|
||||
СтруктураТовара.Вставить("purchasePrice", СтруктураЦеныЗакупки);
|
||||
СтруктураТовара.Вставить("shelfLife" , СтруктураПериода);
|
||||
|
||||
МассивТэгов = Новый Массив;
|
||||
МассивТэгов.Добавить("<метка>");
|
||||
|
||||
СтруктураТовара.Вставить("tags" , МассивТэгов);
|
||||
СтруктураТовара.Вставить("type" , "<особый тип товара>");
|
||||
СтруктураТовара.Вставить("vendor" , "<название бренда или производителя>");
|
||||
СтруктураТовара.Вставить("vendorCode", "<артикул товара от производителя>");
|
||||
|
||||
МассивВидео = Новый Массив;
|
||||
МассивВидео.Добавить("<ссылка на видео>");
|
||||
|
||||
СтруктураТовара.Вставить("videos" , МассивВидео);
|
||||
|
||||
СтруктураРазмеров = Новый Структура;
|
||||
СтруктураРазмеров.Вставить("height", "<высота в см.>");
|
||||
СтруктураРазмеров.Вставить("length", "<длина в см.>");
|
||||
СтруктураРазмеров.Вставить("weight", "<вес в кг. (брутто)>");
|
||||
СтруктураРазмеров.Вставить("width" , "<ширина в см.>");
|
||||
|
||||
СтруктураТовара.Вставить("weightDimensions", "<габариты и вес товара>");
|
||||
|
||||
// BSLLS:DuplicateStringLiteral-on
|
||||
|
||||
Если Пустая Тогда
|
||||
СтруктураТовара = OPI_Инструменты.ОчиститьКоллекциюРекурсивно(СтруктураТовара);
|
||||
КонецЕсли;
|
||||
|
||||
//@skip-check constructor-function-return-section
|
||||
Возврат СтруктураТовара;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Функция СоздатьЗаголовкиЗапроса(Знач Токен)
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
|
||||
|
||||
Заголовки = Новый Соответствие;
|
||||
Заголовки.Вставить("Api-Key", Токен);
|
||||
Возврат Заголовки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
1239
src/ru/OInt/core/Modules/OPI_YandexMetrika.os
vendored
1239
src/ru/OInt/core/Modules/OPI_YandexMetrika.os
vendored
File diff suppressed because it is too large
Load Diff
1
src/ru/OInt/lib.config
vendored
1
src/ru/OInt/lib.config
vendored
@@ -12,6 +12,7 @@
|
||||
<module name="OPI_Neocities" file="core/Modules/OPI_Neocities.os"/>
|
||||
<module name="OPI_Notion" file="core/Modules/OPI_Notion.os"/>
|
||||
<module name="OPI_Ollama" file="core/Modules/OPI_Ollama.os"/>
|
||||
<module name="OPI_OpenAI" file="core/Modules/OPI_OpenAI.os"/>
|
||||
<module name="OPI_Ozon" file="core/Modules/OPI_Ozon.os"/>
|
||||
<module name="OPI_PostgreSQL" file="core/Modules/OPI_PostgreSQL.os"/>
|
||||
<module name="OPI_RCON" file="core/Modules/OPI_RCON.os"/>
|
||||
|
||||
57
src/ru/OInt/tests/Modules/internal/OPI_Тесты.os
vendored
57
src/ru/OInt/tests/Modules/internal/OPI_Тесты.os
vendored
@@ -2728,6 +2728,21 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область OpenAI
|
||||
|
||||
Процедура OAI_ОбработкаЗапросов() Экспорт
|
||||
|
||||
ПараметрыТеста = Новый Структура;
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("OpenAI_Token" , ПараметрыТеста);
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("OpenAI_URL" , ПараметрыТеста);
|
||||
|
||||
OpenAI_ПолучитьОтвет(ПараметрыТеста);
|
||||
OpenAI_ПолучитьПредставления(ПараметрыТеста);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
@@ -22770,6 +22785,48 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область OpenAI
|
||||
|
||||
Процедура OpenAI_ПолучитьОтвет(ПараметрыФункции)
|
||||
|
||||
URL = ПараметрыФункции["OpenAI_URL"];
|
||||
Токен = ПараметрыФункции["OpenAI_Token"];
|
||||
|
||||
Сообщения = Новый Массив;
|
||||
Сообщения.Добавить(OPI_OpenAI.ПолучитьСтруктуруСообщения("user" , "What is 1C:Enterprise?"));
|
||||
Сообщения.Добавить(OPI_OpenAI.ПолучитьСтруктуруСообщения("assistant", "1C:Enterprise is a full-stack, low-code platform"));
|
||||
Сообщения.Добавить(OPI_OpenAI.ПолучитьСтруктуруСообщения("user" , "When the first version was released?"));
|
||||
|
||||
Модель = "openai/gpt-4o-mini";
|
||||
|
||||
Результат = OPI_OpenAI.ПолучитьОтвет(URL, Токен, Модель, Сообщения);
|
||||
|
||||
// END
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьОтвет", "OpenAI");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_OpenAIОтвет(Результат);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура OpenAI_ПолучитьПредставления(ПараметрыФункции)
|
||||
|
||||
URL = ПараметрыФункции["OpenAI_URL"];
|
||||
Токен = ПараметрыФункции["OpenAI_Token"];
|
||||
|
||||
Текст = "What is 1C:Enterprise?";
|
||||
Модель = "text-embedding-ada-002";
|
||||
|
||||
Результат = OPI_OpenAI.ПолучитьПредставления(URL, Токен, Модель, Текст);
|
||||
|
||||
// END
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьПредставления", "OpenAI");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_OpenAIПредставления(Результат);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
47384
src/ru/OInt/tests/Modules/internal/OPI_ТестыCLI.os
vendored
47384
src/ru/OInt/tests/Modules/internal/OPI_ТестыCLI.os
vendored
File diff suppressed because it is too large
Load Diff
707
src/ru/OInt/tools/Modules/OPI_ЗапросыHTTP.os
vendored
707
src/ru/OInt/tools/Modules/OPI_ЗапросыHTTP.os
vendored
@@ -1,366 +1,341 @@
|
||||
// OneScript: ./OInt/tools/Modules/OPI_ЗапросыHTTP.os
|
||||
|
||||
// MIT License
|
||||
|
||||
// Copyright (c) 2023-2025 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:Typo-off
|
||||
// BSLLS:LatinAndCyrillicSymbolInWord-off
|
||||
// BSLLS:IncorrectLineBreak-off
|
||||
// BSLLS:UnusedLocalVariable-off
|
||||
// BSLLS:UsingServiceTag-off
|
||||
// BSLLS:NumberOfOptionalParams-off
|
||||
|
||||
//@skip-check module-unused-local-variable
|
||||
//@skip-check method-too-many-params
|
||||
//@skip-check module-structure-top-region
|
||||
//@skip-check module-structure-method-in-regions
|
||||
//@skip-check wrong-string-literal-content
|
||||
//@skip-check use-non-recommended-method
|
||||
|
||||
// Раскомментировать, если выполняется OneScript
|
||||
#Использовать "./internal"
|
||||
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
// Новый запрос
|
||||
// Создает новый объект для работы с HTTP
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ОбработкаОбъект.OPI_HTTPКлиент - Объект обработки
|
||||
Функция НовыйЗапрос() Экспорт
|
||||
|
||||
Если OPI_Инструменты.ЭтоOneScript() Тогда
|
||||
//@skip-check property-not-writable
|
||||
Обработки = Неопределено;
|
||||
HTTPКлиент = Новый("OPI_HTTPКлиент");
|
||||
Иначе
|
||||
HTTPКлиент = Обработки.OPI_HTTPКлиент.Создать();
|
||||
КонецЕсли;
|
||||
|
||||
Возврат HTTPКлиент;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
#Область ЗапросыБезТела
|
||||
|
||||
Функция Get(Знач URL
|
||||
, Знач Параметры = ""
|
||||
, Знач ДопЗаголовки = ""
|
||||
, Знач ФайлОтвета = Неопределено
|
||||
, Знач ПолныйОтвет = Ложь) Экспорт
|
||||
|
||||
Возврат ВыполнитьЗапросБезТела(URL, "GET", Параметры, ДопЗаголовки, ФайлОтвета, ПолныйОтвет);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция Head(Знач URL
|
||||
, Знач Параметры = ""
|
||||
, Знач ДопЗаголовки = ""
|
||||
, Знач ФайлОтвета = Неопределено
|
||||
, Знач ПолныйОтвет = Ложь) Экспорт
|
||||
|
||||
Возврат ВыполнитьЗапросБезТела(URL, "HEAD", Параметры, ДопЗаголовки, ФайлОтвета, ПолныйОтвет);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция Delete(Знач URL
|
||||
, Знач Параметры = ""
|
||||
, Знач ДопЗаголовки = ""
|
||||
, Знач ФайлОтвета = Неопределено
|
||||
, Знач ПолныйОтвет = Ложь) Экспорт
|
||||
|
||||
Возврат ВыполнитьЗапросБезТела(URL, "DELETE", Параметры, ДопЗаголовки, ФайлОтвета, ПолныйОтвет);
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ЗапросыСТелом
|
||||
|
||||
Функция PostСТелом(Знач URL
|
||||
, Знач Параметры = ""
|
||||
, Знач ДопЗаголовки = ""
|
||||
, Знач JSON = Истина
|
||||
, Знач ПолныйОтвет = Ложь
|
||||
, Знач ФайлОтвета = Неопределено) Экспорт
|
||||
|
||||
Возврат ВыполнитьЗапросСТелом(URL, "POST", Параметры, ДопЗаголовки, JSON, ПолныйОтвет, ФайлОтвета);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция PatchСТелом(Знач URL
|
||||
, Знач Параметры = ""
|
||||
, Знач ДопЗаголовки = ""
|
||||
, Знач JSON = Истина
|
||||
, Знач ПолныйОтвет = Ложь
|
||||
, Знач ФайлОтвета = Неопределено) Экспорт
|
||||
|
||||
Возврат ВыполнитьЗапросСТелом(URL, "PATCH", Параметры, ДопЗаголовки, JSON, ПолныйОтвет, ФайлОтвета);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция PutСТелом(Знач URL
|
||||
, Знач Параметры = ""
|
||||
, Знач ДопЗаголовки = ""
|
||||
, Знач JSON = Истина
|
||||
, Знач ПолныйОтвет = Ложь
|
||||
, Знач ФайлОтвета = Неопределено) Экспорт
|
||||
|
||||
Возврат ВыполнитьЗапросСТелом(URL, "PUT", Параметры, ДопЗаголовки, JSON, ПолныйОтвет, ФайлОтвета);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция DeleteСТелом(Знач URL
|
||||
, Знач Параметры = ""
|
||||
, Знач ДопЗаголовки = ""
|
||||
, Знач JSON = Истина
|
||||
, Знач ПолныйОтвет = Ложь
|
||||
, Знач ФайлОтвета = Неопределено) Экспорт
|
||||
|
||||
Возврат ВыполнитьЗапросСТелом(URL, "DELETE", Параметры, ДопЗаголовки, JSON, ПолныйОтвет, ФайлОтвета);
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ЗапросыMultipart
|
||||
|
||||
Функция PostMultipart(Знач URL
|
||||
, Знач Параметры = ""
|
||||
, Знач Файлы = ""
|
||||
, Знач ТипКонтента = "image/jpeg"
|
||||
, Знач ДопЗаголовки = ""
|
||||
, Знач ФайлОтвета = Неопределено) Экспорт
|
||||
|
||||
HttpКлиент = НовыйЗапрос()
|
||||
.Инициализировать(URL)
|
||||
.УстановитьЗаголовки(ДопЗаголовки)
|
||||
.УстановитьФайлОтвета(ФайлОтвета)
|
||||
.НачатьЗаписьТелаMultipart();
|
||||
|
||||
Если ЗначениеЗаполнено(Файлы) Тогда
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(Файлы);
|
||||
|
||||
Для Каждого Файл Из Файлы Цикл
|
||||
|
||||
СтруктураИнформации = РазобратьКлючФайла(Файл.Ключ, ТипКонтента);
|
||||
|
||||
ИмяПоля = СтруктураИнформации["ИмяПоля"];
|
||||
ИмяФайла = СтруктураИнформации["ИмяФайла"];
|
||||
|
||||
HttpКлиент.ДобавитьФайлMultipartFormData(ИмяПоля, ИмяФайла, Файл.Значение, ТипКонтента);
|
||||
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(Параметры) Тогда
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(Параметры);
|
||||
|
||||
Для Каждого Параметр Из Параметры Цикл
|
||||
HttpКлиент.ДобавитьПолеMultipartFormData(Параметр.Ключ, Параметр.Значение);
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
HttpКлиент.ОбработатьЗапрос("POST");
|
||||
|
||||
Результат = HttpКлиент.ВернутьОтветКакJSONКоллекцию(Истина, Истина);
|
||||
|
||||
Если HttpКлиент.Ошибка Тогда
|
||||
ВызватьИсключение HttpКлиент.ПолучитьЛог(Истина);
|
||||
Иначе
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция PutMultipart(Знач URL
|
||||
, Знач Параметры = ""
|
||||
, Знач Файлы = ""
|
||||
, Знач ТипКонтента = "image/jpeg"
|
||||
, Знач ДопЗаголовки = ""
|
||||
, Знач ФайлОтвета = Неопределено) Экспорт
|
||||
|
||||
Возврат ВыполнитьЗапросМультипарт(URL, "PUT", Параметры, Файлы, ТипКонтента, ДопЗаголовки, ФайлОтвета);
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Функция ВыполнитьЗапросСТелом(Знач URL
|
||||
, Знач Вид
|
||||
, Знач Параметры = ""
|
||||
, Знач ДопЗаголовки = ""
|
||||
, Знач JSON = Истина
|
||||
, Знач ПолныйОтвет = Ложь
|
||||
, Знач ФайлОтвета = Неопределено)
|
||||
|
||||
HttpКлиент = НовыйЗапрос()
|
||||
.Инициализировать(URL)
|
||||
.УстановитьЗаголовки(ДопЗаголовки)
|
||||
.УстановитьФайлОтвета(ФайлОтвета);
|
||||
|
||||
Если JSON Тогда
|
||||
HttpКлиент.УстановитьJsonТело(Параметры);
|
||||
Иначе
|
||||
HttpКлиент.УстановитьFormТело(Параметры);
|
||||
КонецЕсли;
|
||||
|
||||
HttpКлиент.ОбработатьЗапрос(Вид);
|
||||
|
||||
Если ПолныйОтвет Тогда
|
||||
Результат = HttpКлиент.ВернутьОтвет(Ложь, Истина);
|
||||
Иначе
|
||||
Результат = HttpКлиент.ВернутьОтветКакJSONКоллекцию(Истина, Истина);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ВыполнитьЗапросБезТела(Знач URL
|
||||
, Знач Вид
|
||||
, Знач Параметры = ""
|
||||
, Знач ДопЗаголовки = ""
|
||||
, Знач ФайлОтвета = Неопределено
|
||||
, Знач ПолныйОтвет = Ложь)
|
||||
|
||||
HttpКлиент = НовыйЗапрос()
|
||||
.Инициализировать(URL)
|
||||
.УстановитьПараметрыURL(Параметры)
|
||||
.УстановитьЗаголовки(ДопЗаголовки)
|
||||
.УстановитьФайлОтвета(ФайлОтвета)
|
||||
.ОбработатьЗапрос(Вид);
|
||||
|
||||
Если ПолныйОтвет Тогда
|
||||
Результат = HttpКлиент.ВернутьОтвет(Ложь, Истина);
|
||||
Иначе
|
||||
Результат = HttpКлиент.ВернутьОтветКакJSONКоллекцию(Истина, Истина);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ВыполнитьЗапросМультипарт(Знач URL
|
||||
, Знач Вид
|
||||
, Знач Параметры = ""
|
||||
, Знач Файлы = ""
|
||||
, Знач ТипКонтента = "image/jpeg"
|
||||
, Знач ДопЗаголовки = ""
|
||||
, Знач ФайлОтвета = Неопределено)
|
||||
|
||||
HttpКлиент = НовыйЗапрос()
|
||||
.Инициализировать(URL)
|
||||
.УстановитьЗаголовки(ДопЗаголовки)
|
||||
.УстановитьФайлОтвета(ФайлОтвета)
|
||||
.НачатьЗаписьТелаMultipart();
|
||||
|
||||
Для Каждого Файл Из Файлы Цикл
|
||||
|
||||
СтруктураИнформации = РазобратьКлючФайла(Файл.Ключ, ТипКонтента);
|
||||
|
||||
ИмяПоля = СтруктураИнформации["ИмяПоля"];
|
||||
ИмяФайла = СтруктураИнформации["ИмяФайла"];
|
||||
|
||||
HttpКлиент.ДобавитьФайлMultipartFormData(ИмяПоля, ИмяФайла, Файл.Значение, ТипКонтента);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Для Каждого Параметр Из Параметры Цикл
|
||||
HttpКлиент.ДобавитьПолеMultipartFormData(Параметр.Ключ, Параметр.Значение);
|
||||
КонецЦикла;
|
||||
|
||||
Результат = HttpКлиент.ОбработатьЗапрос("POST").ВернутьОтветКакJSONКоллекцию(Истина, Истина);
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция РазобратьКлючФайла(Знач ДанныеФайла, Знач ТипКонтента)
|
||||
|
||||
ЗаменаТочки = "___";
|
||||
ИмяФайла = СтрЗаменить(ДанныеФайла, ЗаменаТочки, ".");
|
||||
МассивИмени = СтрРазделить(ИмяФайла, "|", Ложь);
|
||||
ЧастейИмени = 2;
|
||||
|
||||
Если МассивИмени.Количество() = ЧастейИмени Тогда
|
||||
ИмяПоля = МассивИмени[0];
|
||||
ИмяФайла = МассивИмени[1];
|
||||
Иначе
|
||||
|
||||
Если ТипКонтента = "image/jpeg" Тогда
|
||||
|
||||
ИмяПоля = "photo";
|
||||
|
||||
Иначе
|
||||
|
||||
ИмяПоля = Лев(ИмяФайла, СтрНайти(ИмяФайла, ".") - 1);
|
||||
ИмяПоля = ?(ЗначениеЗаполнено(ИмяПоля), ИмяПоля, СтрЗаменить(ДанныеФайла, ЗаменаТочки, "."));
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
СтруктураВозврата = Новый Структура("ИмяПоля,ИмяФайла", ИмяПоля, ИмяФайла);
|
||||
|
||||
Возврат СтруктураВозврата;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
|
||||
#Region Alternate
|
||||
|
||||
Function NewRequest() Export
|
||||
Return НовыйЗапрос();
|
||||
EndFunction
|
||||
|
||||
Function PostWithBody(Val URL, Val Parameters = "", Val AdditionalHeaders = "", Val JSON = True, Val FullResponse = False, Val ResponseFile = Undefined) Export
|
||||
Return PostСТелом(URL, Parameters, AdditionalHeaders, JSON, FullResponse, ResponseFile);
|
||||
EndFunction
|
||||
|
||||
Function PatchWithBody(Val URL, Val Parameters = "", Val AdditionalHeaders = "", Val JSON = True, Val FullResponse = False, Val ResponseFile = Undefined) Export
|
||||
Return PatchСТелом(URL, Parameters, AdditionalHeaders, JSON, FullResponse, ResponseFile);
|
||||
EndFunction
|
||||
|
||||
Function PutWithBody(Val URL, Val Parameters = "", Val AdditionalHeaders = "", Val JSON = True, Val FullResponse = False, Val ResponseFile = Undefined) Export
|
||||
Return PutСТелом(URL, Parameters, AdditionalHeaders, JSON, FullResponse, ResponseFile);
|
||||
EndFunction
|
||||
|
||||
Function DeleteWithBody(Val URL, Val Parameters = "", Val AdditionalHeaders = "", Val JSON = True, Val FullResponse = False, Val ResponseFile = Undefined) Export
|
||||
Return DeleteСТелом(URL, Parameters, AdditionalHeaders, JSON, FullResponse, ResponseFile);
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
// OneScript: ./OInt/tools/Modules/OPI_ЗапросыHTTP.os
|
||||
|
||||
// MIT License
|
||||
|
||||
// Copyright (c) 2023-2025 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:Typo-off
|
||||
// BSLLS:LatinAndCyrillicSymbolInWord-off
|
||||
// BSLLS:IncorrectLineBreak-off
|
||||
// BSLLS:UnusedLocalVariable-off
|
||||
// BSLLS:UsingServiceTag-off
|
||||
// BSLLS:NumberOfOptionalParams-off
|
||||
|
||||
//@skip-check module-unused-local-variable
|
||||
//@skip-check method-too-many-params
|
||||
//@skip-check module-structure-top-region
|
||||
//@skip-check module-structure-method-in-regions
|
||||
//@skip-check wrong-string-literal-content
|
||||
//@skip-check use-non-recommended-method
|
||||
|
||||
// Раскомментировать, если выполняется OneScript
|
||||
#Использовать "./internal"
|
||||
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
// Новый запрос
|
||||
// Создает новый объект для работы с HTTP
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ОбработкаОбъект.OPI_HTTPКлиент - Объект обработки
|
||||
Функция НовыйЗапрос() Экспорт
|
||||
|
||||
Если OPI_Инструменты.ЭтоOneScript() Тогда
|
||||
//@skip-check property-not-writable
|
||||
Обработки = Неопределено;
|
||||
HTTPКлиент = Новый("OPI_HTTPКлиент");
|
||||
Иначе
|
||||
HTTPКлиент = Обработки.OPI_HTTPКлиент.Создать();
|
||||
КонецЕсли;
|
||||
|
||||
Возврат HTTPКлиент;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
#Область ЗапросыБезТела
|
||||
|
||||
Функция Get(Знач URL
|
||||
, Знач Параметры = ""
|
||||
, Знач ДопЗаголовки = ""
|
||||
, Знач ФайлОтвета = Неопределено
|
||||
, Знач ПолныйОтвет = Ложь) Экспорт
|
||||
|
||||
Возврат ВыполнитьЗапросБезТела(URL, "GET", Параметры, ДопЗаголовки, ФайлОтвета, ПолныйОтвет);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция Head(Знач URL
|
||||
, Знач Параметры = ""
|
||||
, Знач ДопЗаголовки = ""
|
||||
, Знач ФайлОтвета = Неопределено
|
||||
, Знач ПолныйОтвет = Ложь) Экспорт
|
||||
|
||||
Возврат ВыполнитьЗапросБезТела(URL, "HEAD", Параметры, ДопЗаголовки, ФайлОтвета, ПолныйОтвет);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция Delete(Знач URL
|
||||
, Знач Параметры = ""
|
||||
, Знач ДопЗаголовки = ""
|
||||
, Знач ФайлОтвета = Неопределено
|
||||
, Знач ПолныйОтвет = Ложь) Экспорт
|
||||
|
||||
Возврат ВыполнитьЗапросБезТела(URL, "DELETE", Параметры, ДопЗаголовки, ФайлОтвета, ПолныйОтвет);
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ЗапросыСТелом
|
||||
|
||||
Функция PostСТелом(Знач URL
|
||||
, Знач Параметры = ""
|
||||
, Знач ДопЗаголовки = ""
|
||||
, Знач JSON = Истина
|
||||
, Знач ПолныйОтвет = Ложь
|
||||
, Знач ФайлОтвета = Неопределено) Экспорт
|
||||
|
||||
Возврат ВыполнитьЗапросСТелом(URL, "POST", Параметры, ДопЗаголовки, JSON, ПолныйОтвет, ФайлОтвета);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция PatchСТелом(Знач URL
|
||||
, Знач Параметры = ""
|
||||
, Знач ДопЗаголовки = ""
|
||||
, Знач JSON = Истина
|
||||
, Знач ПолныйОтвет = Ложь
|
||||
, Знач ФайлОтвета = Неопределено) Экспорт
|
||||
|
||||
Возврат ВыполнитьЗапросСТелом(URL, "PATCH", Параметры, ДопЗаголовки, JSON, ПолныйОтвет, ФайлОтвета);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция PutСТелом(Знач URL
|
||||
, Знач Параметры = ""
|
||||
, Знач ДопЗаголовки = ""
|
||||
, Знач JSON = Истина
|
||||
, Знач ПолныйОтвет = Ложь
|
||||
, Знач ФайлОтвета = Неопределено) Экспорт
|
||||
|
||||
Возврат ВыполнитьЗапросСТелом(URL, "PUT", Параметры, ДопЗаголовки, JSON, ПолныйОтвет, ФайлОтвета);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция DeleteСТелом(Знач URL
|
||||
, Знач Параметры = ""
|
||||
, Знач ДопЗаголовки = ""
|
||||
, Знач JSON = Истина
|
||||
, Знач ПолныйОтвет = Ложь
|
||||
, Знач ФайлОтвета = Неопределено) Экспорт
|
||||
|
||||
Возврат ВыполнитьЗапросСТелом(URL, "DELETE", Параметры, ДопЗаголовки, JSON, ПолныйОтвет, ФайлОтвета);
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ЗапросыMultipart
|
||||
|
||||
Функция PostMultipart(Знач URL
|
||||
, Знач Параметры = ""
|
||||
, Знач Файлы = ""
|
||||
, Знач ТипКонтента = "image/jpeg"
|
||||
, Знач ДопЗаголовки = ""
|
||||
, Знач ФайлОтвета = Неопределено) Экспорт
|
||||
|
||||
HttpКлиент = НовыйЗапрос()
|
||||
.Инициализировать(URL)
|
||||
.УстановитьЗаголовки(ДопЗаголовки)
|
||||
.УстановитьФайлОтвета(ФайлОтвета)
|
||||
.НачатьЗаписьТелаMultipart();
|
||||
|
||||
Если ЗначениеЗаполнено(Файлы) Тогда
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(Файлы);
|
||||
|
||||
Для Каждого Файл Из Файлы Цикл
|
||||
|
||||
СтруктураИнформации = РазобратьКлючФайла(Файл.Ключ, ТипКонтента);
|
||||
|
||||
ИмяПоля = СтруктураИнформации["ИмяПоля"];
|
||||
ИмяФайла = СтруктураИнформации["ИмяФайла"];
|
||||
|
||||
HttpКлиент.ДобавитьФайлMultipartFormData(ИмяПоля, ИмяФайла, Файл.Значение, ТипКонтента);
|
||||
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(Параметры) Тогда
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(Параметры);
|
||||
|
||||
Для Каждого Параметр Из Параметры Цикл
|
||||
HttpКлиент.ДобавитьПолеMultipartFormData(Параметр.Ключ, Параметр.Значение);
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
HttpКлиент.ОбработатьЗапрос("POST");
|
||||
|
||||
Результат = HttpКлиент.ВернутьОтветКакJSONКоллекцию(Истина, Истина);
|
||||
|
||||
Если HttpКлиент.Ошибка Тогда
|
||||
ВызватьИсключение HttpКлиент.ПолучитьЛог(Истина);
|
||||
Иначе
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция PutMultipart(Знач URL
|
||||
, Знач Параметры = ""
|
||||
, Знач Файлы = ""
|
||||
, Знач ТипКонтента = "image/jpeg"
|
||||
, Знач ДопЗаголовки = ""
|
||||
, Знач ФайлОтвета = Неопределено) Экспорт
|
||||
|
||||
Возврат ВыполнитьЗапросМультипарт(URL, "PUT", Параметры, Файлы, ТипКонтента, ДопЗаголовки, ФайлОтвета);
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Функция ВыполнитьЗапросСТелом(Знач URL
|
||||
, Знач Вид
|
||||
, Знач Параметры = ""
|
||||
, Знач ДопЗаголовки = ""
|
||||
, Знач JSON = Истина
|
||||
, Знач ПолныйОтвет = Ложь
|
||||
, Знач ФайлОтвета = Неопределено)
|
||||
|
||||
HttpКлиент = НовыйЗапрос()
|
||||
.Инициализировать(URL)
|
||||
.УстановитьЗаголовки(ДопЗаголовки)
|
||||
.УстановитьФайлОтвета(ФайлОтвета);
|
||||
|
||||
Если JSON Тогда
|
||||
HttpКлиент.УстановитьJsonТело(Параметры);
|
||||
Иначе
|
||||
HttpКлиент.УстановитьFormТело(Параметры);
|
||||
КонецЕсли;
|
||||
|
||||
HttpКлиент.ОбработатьЗапрос(Вид);
|
||||
|
||||
Если ПолныйОтвет Тогда
|
||||
Результат = HttpКлиент.ВернутьОтвет(Ложь, Истина);
|
||||
Иначе
|
||||
Результат = HttpКлиент.ВернутьОтветКакJSONКоллекцию(Истина, Истина);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ВыполнитьЗапросБезТела(Знач URL
|
||||
, Знач Вид
|
||||
, Знач Параметры = ""
|
||||
, Знач ДопЗаголовки = ""
|
||||
, Знач ФайлОтвета = Неопределено
|
||||
, Знач ПолныйОтвет = Ложь)
|
||||
|
||||
HttpКлиент = НовыйЗапрос()
|
||||
.Инициализировать(URL)
|
||||
.УстановитьПараметрыURL(Параметры)
|
||||
.УстановитьЗаголовки(ДопЗаголовки)
|
||||
.УстановитьФайлОтвета(ФайлОтвета)
|
||||
.ОбработатьЗапрос(Вид);
|
||||
|
||||
Если ПолныйОтвет Тогда
|
||||
Результат = HttpКлиент.ВернутьОтвет(Ложь, Истина);
|
||||
Иначе
|
||||
Результат = HttpКлиент.ВернутьОтветКакJSONКоллекцию(Истина, Истина);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ВыполнитьЗапросМультипарт(Знач URL
|
||||
, Знач Вид
|
||||
, Знач Параметры = ""
|
||||
, Знач Файлы = ""
|
||||
, Знач ТипКонтента = "image/jpeg"
|
||||
, Знач ДопЗаголовки = ""
|
||||
, Знач ФайлОтвета = Неопределено)
|
||||
|
||||
HttpКлиент = НовыйЗапрос()
|
||||
.Инициализировать(URL)
|
||||
.УстановитьЗаголовки(ДопЗаголовки)
|
||||
.УстановитьФайлОтвета(ФайлОтвета)
|
||||
.НачатьЗаписьТелаMultipart();
|
||||
|
||||
Для Каждого Файл Из Файлы Цикл
|
||||
|
||||
СтруктураИнформации = РазобратьКлючФайла(Файл.Ключ, ТипКонтента);
|
||||
|
||||
ИмяПоля = СтруктураИнформации["ИмяПоля"];
|
||||
ИмяФайла = СтруктураИнформации["ИмяФайла"];
|
||||
|
||||
HttpКлиент.ДобавитьФайлMultipartFormData(ИмяПоля, ИмяФайла, Файл.Значение, ТипКонтента);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Для Каждого Параметр Из Параметры Цикл
|
||||
HttpКлиент.ДобавитьПолеMultipartFormData(Параметр.Ключ, Параметр.Значение);
|
||||
КонецЦикла;
|
||||
|
||||
Результат = HttpКлиент.ОбработатьЗапрос("POST").ВернутьОтветКакJSONКоллекцию(Истина, Истина);
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция РазобратьКлючФайла(Знач ДанныеФайла, Знач ТипКонтента)
|
||||
|
||||
ЗаменаТочки = "___";
|
||||
ИмяФайла = СтрЗаменить(ДанныеФайла, ЗаменаТочки, ".");
|
||||
МассивИмени = СтрРазделить(ИмяФайла, "|", Ложь);
|
||||
ЧастейИмени = 2;
|
||||
|
||||
Если МассивИмени.Количество() = ЧастейИмени Тогда
|
||||
ИмяПоля = МассивИмени[0];
|
||||
ИмяФайла = МассивИмени[1];
|
||||
Иначе
|
||||
|
||||
Если ТипКонтента = "image/jpeg" Тогда
|
||||
|
||||
ИмяПоля = "photo";
|
||||
|
||||
Иначе
|
||||
|
||||
ИмяПоля = Лев(ИмяФайла, СтрНайти(ИмяФайла, ".") - 1);
|
||||
ИмяПоля = ?(ЗначениеЗаполнено(ИмяПоля), ИмяПоля, СтрЗаменить(ДанныеФайла, ЗаменаТочки, "."));
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
СтруктураВозврата = Новый Структура("ИмяПоля,ИмяФайла", ИмяПоля, ИмяФайла);
|
||||
|
||||
Возврат СтруктураВозврата;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
2375
src/ru/OInt/tools/Modules/OPI_ЗапросыSQL.os
vendored
2375
src/ru/OInt/tools/Modules/OPI_ЗапросыSQL.os
vendored
File diff suppressed because it is too large
Load Diff
407
src/ru/OInt/tools/Modules/OPI_Компоненты.os
vendored
407
src/ru/OInt/tools/Modules/OPI_Компоненты.os
vendored
@@ -1,216 +1,191 @@
|
||||
// OneScript: ./OInt/tools/Modules/OPI_Компоненты.os
|
||||
|
||||
// MIT License
|
||||
|
||||
// Copyright (c) 2023-2025 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:UsingHardcodePath-off
|
||||
// BSLLS:Typo-off
|
||||
// BSLLS:DeprecatedMessage-off
|
||||
// BSLLS:UsingServiceTag-off
|
||||
// BSLLS:ExecuteExternalCodeInCommonModule-off
|
||||
// BSLLS:DuplicateStringLiteral-off
|
||||
// BSLLS:MagicNumber-off
|
||||
// BSLLS:UsingHardcodeNetworkAddress-off
|
||||
|
||||
//@skip-check use-non-recommended-method
|
||||
//@skip-check module-structure-top-region
|
||||
//@skip-check module-structure-method-in-regions
|
||||
//@skip-check undefined-function-or-procedure
|
||||
//@skip-check wrong-string-literal-content
|
||||
|
||||
// Раскомментировать, если выполняется OneScript
|
||||
#Использовать "./internal"
|
||||
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
Функция ПолучитьКомпоненту(Знач ИмяКомпоненты, Знач Класс = "Main") Экспорт
|
||||
|
||||
Компонента = Неопределено;
|
||||
Ошибка = "";
|
||||
ИмяКомпоненты = "OPI_" + ИмяКомпоненты;
|
||||
|
||||
Если Не ИнициализироватьВнешнююКомпоненту(ИмяКомпоненты, Класс, Компонента) Тогда
|
||||
|
||||
Ошибка = Неопределено;
|
||||
Компонента = ПодключитьКомпонентуНаСервере(ИмяКомпоненты, Класс, Ошибка);
|
||||
|
||||
Если ЗначениеЗаполнено(Ошибка) Тогда
|
||||
СформироватьИсключениеКомпоненты();
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Компонента;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ЭтоКомпонента(Знач Значение) Экспорт
|
||||
|
||||
ТипЗначения = Строка(ТипЗнч(Значение));
|
||||
Возврат СтрНачинаетсяС(ТипЗначения, "AddIn.");
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция УстановитьTls(Знач Компонета, Знач Tls) Экспорт
|
||||
|
||||
Результат = Новый Структура("result", Истина);
|
||||
|
||||
Если ЗначениеЗаполнено(Tls) Тогда
|
||||
|
||||
СообщениеОшибки = "Переданы некорректные настройки Tls!";
|
||||
OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(Tls, СообщениеОшибки);
|
||||
|
||||
ИспользоватьTls = OPI_Инструменты.ПолучитьИли(Tls, "use_tls", Ложь);
|
||||
ОтключитьВалидацию = OPI_Инструменты.ПолучитьИли(Tls, "accept_invalid_certs", Ложь);
|
||||
ПутьКСертификату = OPI_Инструменты.ПолучитьИли(Tls, "ca_cert_path", "");
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьБулево(ИспользоватьTls);
|
||||
OPI_ПреобразованиеТипов.ПолучитьБулево(ОтключитьВалидацию);
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(ПутьКСертификату);
|
||||
|
||||
Результат = Компонета.SetTLS(ИспользоватьTls, ОтключитьВалидацию, ПутьКСертификату);
|
||||
Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьНастройкиTls(Знач ОтключитьПроверкуСертификатов, Знач ПутьКСертификату = "") Экспорт
|
||||
|
||||
СтруктураСертификата = Новый Структура;
|
||||
OPI_Инструменты.ДобавитьПоле("use_tls" , Истина , "Булево", СтруктураСертификата);
|
||||
OPI_Инструменты.ДобавитьПоле("accept_invalid_certs", ОтключитьПроверкуСертификатов, "Булево", СтруктураСертификата);
|
||||
OPI_Инструменты.ДобавитьПоле("ca_cert_path" , ПутьКСертификату , "Строка", СтруктураСертификата);
|
||||
|
||||
Возврат СтруктураСертификата;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Функция ИнициализироватьВнешнююКомпоненту(Знач ИмяКомпоненты, Знач Класс, Компонента)
|
||||
|
||||
Попытка
|
||||
Компонента = Новый("AddIn." + ИмяКомпоненты + "." + Класс);
|
||||
Возврат Истина;
|
||||
Исключение
|
||||
Возврат Ложь;
|
||||
КонецПопытки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПодключитьКомпонентуНаСервере(Знач ИмяКомпоненты, Знач Класс, Ошибка)
|
||||
|
||||
Если OPI_Инструменты.ЭтоOneScript() Тогда
|
||||
ИмяМакета = КаталогКомпонентOS() + ИмяКомпоненты + ".zip";
|
||||
Иначе
|
||||
ИмяМакета = "ОбщийМакет." + ИмяКомпоненты;
|
||||
КонецЕсли;
|
||||
|
||||
Попытка
|
||||
ПодключитьВнешнююКомпоненту(ИмяМакета, ИмяКомпоненты, ТипВнешнейКомпоненты.Native);
|
||||
Компонента = Новый("AddIn." + ИмяКомпоненты + "." + Класс);
|
||||
Ошибка = Неопределено;
|
||||
Возврат Компонента;
|
||||
Исключение
|
||||
Ошибка = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
|
||||
Возврат Неопределено;
|
||||
КонецПопытки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция КаталогКомпонентOS() Экспорт
|
||||
|
||||
КаталогПрограммы = СтрЗаменить(КаталогПрограммы(), "\", "/");
|
||||
|
||||
ЭлементыПути = СтрРазделить(КаталогПрограммы, "/");
|
||||
ЭлементыПути.Удалить(ЭлементыПути.ВГраница());
|
||||
|
||||
// BSLLS:UsingHardcodePath-off
|
||||
|
||||
КаталогКомпонент = СтрСоединить(ЭлементыПути, "/") + "/lib/oint/addins/";
|
||||
|
||||
// BSLLS:UsingHardcodePath-on
|
||||
|
||||
Возврат КаталогКомпонент;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура СформироватьИсключениеКомпоненты()
|
||||
|
||||
Текст = "Не удалось инициализировать внешнюю компоненту. Возможно, она несовместима с вашей операционной системой.";
|
||||
|
||||
Если Не OPI_Инструменты.ЭтоWindows() Тогда
|
||||
|
||||
Текст = Текст
|
||||
+ Символы.ПС
|
||||
+ Символы.ПС
|
||||
+ "Важно: Для работы компоненты требуется GLIBC >=2.18"
|
||||
+ " и OpenSSL версии 3.x"
|
||||
+ Символы.ПС
|
||||
+ "Проверьте, что данные зависимости удоволетворены в вашей системе!";
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Текст = Текст
|
||||
+ Символы.ПС
|
||||
+ Символы.ПС
|
||||
+ "Подробнее: https://openintegrations.dev/docs/Start/Component-requirements";
|
||||
|
||||
ВызватьИсключение Текст;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
|
||||
#Region Alternate
|
||||
|
||||
Function GetAddIn(Val AddInName, Val Class = "Main") Export
|
||||
Return ПолучитьКомпоненту(AddInName, Class);
|
||||
EndFunction
|
||||
|
||||
Function IsAddIn(Val Value) Export
|
||||
Return ЭтоКомпонента(Value);
|
||||
EndFunction
|
||||
|
||||
Function SetTls(Val AddIn, Val Tls) Export
|
||||
Return УстановитьTls(AddIn, Tls);
|
||||
EndFunction
|
||||
|
||||
Function GetTlsSettings(Val DisableCertVerification, Val CertFilepath = "") Export
|
||||
Return ПолучитьНастройкиTls(DisableCertVerification, CertFilepath);
|
||||
EndFunction
|
||||
|
||||
Function AddInsFolderOS() Export
|
||||
Return КаталогКомпонентOS();
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
// OneScript: ./OInt/tools/Modules/OPI_Компоненты.os
|
||||
|
||||
// MIT License
|
||||
|
||||
// Copyright (c) 2023-2025 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:UsingHardcodePath-off
|
||||
// BSLLS:Typo-off
|
||||
// BSLLS:DeprecatedMessage-off
|
||||
// BSLLS:UsingServiceTag-off
|
||||
// BSLLS:ExecuteExternalCodeInCommonModule-off
|
||||
// BSLLS:DuplicateStringLiteral-off
|
||||
// BSLLS:MagicNumber-off
|
||||
// BSLLS:UsingHardcodeNetworkAddress-off
|
||||
|
||||
//@skip-check use-non-recommended-method
|
||||
//@skip-check module-structure-top-region
|
||||
//@skip-check module-structure-method-in-regions
|
||||
//@skip-check undefined-function-or-procedure
|
||||
//@skip-check wrong-string-literal-content
|
||||
|
||||
// Раскомментировать, если выполняется OneScript
|
||||
#Использовать "./internal"
|
||||
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
Функция ПолучитьКомпоненту(Знач ИмяКомпоненты, Знач Класс = "Main") Экспорт
|
||||
|
||||
Компонента = Неопределено;
|
||||
Ошибка = "";
|
||||
ИмяКомпоненты = "OPI_" + ИмяКомпоненты;
|
||||
|
||||
Если Не ИнициализироватьВнешнююКомпоненту(ИмяКомпоненты, Класс, Компонента) Тогда
|
||||
|
||||
Ошибка = Неопределено;
|
||||
Компонента = ПодключитьКомпонентуНаСервере(ИмяКомпоненты, Класс, Ошибка);
|
||||
|
||||
Если ЗначениеЗаполнено(Ошибка) Тогда
|
||||
СформироватьИсключениеКомпоненты();
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Компонента;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ЭтоКомпонента(Знач Значение) Экспорт
|
||||
|
||||
ТипЗначения = Строка(ТипЗнч(Значение));
|
||||
Возврат СтрНачинаетсяС(ТипЗначения, "AddIn.");
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция УстановитьTls(Знач Компонета, Знач Tls) Экспорт
|
||||
|
||||
Результат = Новый Структура("result", Истина);
|
||||
|
||||
Если ЗначениеЗаполнено(Tls) Тогда
|
||||
|
||||
СообщениеОшибки = "Переданы некорректные настройки Tls!";
|
||||
OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(Tls, СообщениеОшибки);
|
||||
|
||||
ИспользоватьTls = OPI_Инструменты.ПолучитьИли(Tls, "use_tls", Ложь);
|
||||
ОтключитьВалидацию = OPI_Инструменты.ПолучитьИли(Tls, "accept_invalid_certs", Ложь);
|
||||
ПутьКСертификату = OPI_Инструменты.ПолучитьИли(Tls, "ca_cert_path", "");
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьБулево(ИспользоватьTls);
|
||||
OPI_ПреобразованиеТипов.ПолучитьБулево(ОтключитьВалидацию);
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(ПутьКСертификату);
|
||||
|
||||
Результат = Компонета.SetTLS(ИспользоватьTls, ОтключитьВалидацию, ПутьКСертификату);
|
||||
Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьНастройкиTls(Знач ОтключитьПроверкуСертификатов, Знач ПутьКСертификату = "") Экспорт
|
||||
|
||||
СтруктураСертификата = Новый Структура;
|
||||
OPI_Инструменты.ДобавитьПоле("use_tls" , Истина , "Булево", СтруктураСертификата);
|
||||
OPI_Инструменты.ДобавитьПоле("accept_invalid_certs", ОтключитьПроверкуСертификатов, "Булево", СтруктураСертификата);
|
||||
OPI_Инструменты.ДобавитьПоле("ca_cert_path" , ПутьКСертификату , "Строка", СтруктураСертификата);
|
||||
|
||||
Возврат СтруктураСертификата;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Функция ИнициализироватьВнешнююКомпоненту(Знач ИмяКомпоненты, Знач Класс, Компонента)
|
||||
|
||||
Попытка
|
||||
Компонента = Новый("AddIn." + ИмяКомпоненты + "." + Класс);
|
||||
Возврат Истина;
|
||||
Исключение
|
||||
Возврат Ложь;
|
||||
КонецПопытки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПодключитьКомпонентуНаСервере(Знач ИмяКомпоненты, Знач Класс, Ошибка)
|
||||
|
||||
Если OPI_Инструменты.ЭтоOneScript() Тогда
|
||||
ИмяМакета = КаталогКомпонентOS() + ИмяКомпоненты + ".zip";
|
||||
Иначе
|
||||
ИмяМакета = "ОбщийМакет." + ИмяКомпоненты;
|
||||
КонецЕсли;
|
||||
|
||||
Попытка
|
||||
ПодключитьВнешнююКомпоненту(ИмяМакета, ИмяКомпоненты, ТипВнешнейКомпоненты.Native);
|
||||
Компонента = Новый("AddIn." + ИмяКомпоненты + "." + Класс);
|
||||
Ошибка = Неопределено;
|
||||
Возврат Компонента;
|
||||
Исключение
|
||||
Ошибка = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
|
||||
Возврат Неопределено;
|
||||
КонецПопытки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция КаталогКомпонентOS() Экспорт
|
||||
|
||||
КаталогПрограммы = СтрЗаменить(КаталогПрограммы(), "\", "/");
|
||||
|
||||
ЭлементыПути = СтрРазделить(КаталогПрограммы, "/");
|
||||
ЭлементыПути.Удалить(ЭлементыПути.ВГраница());
|
||||
|
||||
// BSLLS:UsingHardcodePath-off
|
||||
|
||||
КаталогКомпонент = СтрСоединить(ЭлементыПути, "/") + "/lib/oint/addins/";
|
||||
|
||||
// BSLLS:UsingHardcodePath-on
|
||||
|
||||
Возврат КаталогКомпонент;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура СформироватьИсключениеКомпоненты()
|
||||
|
||||
Текст = "Не удалось инициализировать внешнюю компоненту. Возможно, она несовместима с вашей операционной системой.";
|
||||
|
||||
Если Не OPI_Инструменты.ЭтоWindows() Тогда
|
||||
|
||||
Текст = Текст
|
||||
+ Символы.ПС
|
||||
+ Символы.ПС
|
||||
+ "Важно: Для работы компоненты требуется GLIBC >=2.18"
|
||||
+ " и OpenSSL версии 3.x"
|
||||
+ Символы.ПС
|
||||
+ "Проверьте, что данные зависимости удоволетворены в вашей системе!";
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Текст = Текст
|
||||
+ Символы.ПС
|
||||
+ Символы.ПС
|
||||
+ "Подробнее: https://openintegrations.dev/docs/Start/Component-requirements";
|
||||
|
||||
ВызватьИсключение Текст;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
1103
src/ru/OInt/tools/Modules/OPI_ПолучениеДанныхТестов.os
vendored
1103
src/ru/OInt/tools/Modules/OPI_ПолучениеДанныхТестов.os
vendored
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/tools/Modules/OPI_ПреобразованиеТипов.os
|
||||
// OneScript: ./OInt/tools/Modules/OPI_ПреобразованиеТипов.os
|
||||
|
||||
// MIT License
|
||||
|
||||
@@ -434,48 +434,3 @@
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
|
||||
#Region Alternate
|
||||
|
||||
Procedure GetBinaryData(Value, Val Force = False, Val TryB64 = True) Export
|
||||
ПолучитьДвоичныеДанные(Value, Force, TryB64);
|
||||
EndProcedure
|
||||
|
||||
Procedure GetBinaryOrStream(Value) Export
|
||||
ПолучитьДвоичныеИлиПоток(Value);
|
||||
EndProcedure
|
||||
|
||||
Procedure GetCollection(Value) Export
|
||||
ПолучитьКоллекцию(Value);
|
||||
EndProcedure
|
||||
|
||||
Procedure GetKeyValueCollection(Value, Val ErrorText = "The specified value is not a valid collection!") Export
|
||||
ПолучитьКоллекциюКлючИЗначение(Value, ErrorText);
|
||||
EndProcedure
|
||||
|
||||
Procedure GetArray(Value) Export
|
||||
ПолучитьМассив(Value);
|
||||
EndProcedure
|
||||
|
||||
Procedure GetBoolean(Value) Export
|
||||
ПолучитьБулево(Value);
|
||||
EndProcedure
|
||||
|
||||
Procedure GetLine(Value, Val FromSource = False) Export
|
||||
ПолучитьСтроку(Value, FromSource);
|
||||
EndProcedure
|
||||
|
||||
Procedure GetDate(Value) Export
|
||||
ПолучитьДату(Value);
|
||||
EndProcedure
|
||||
|
||||
Procedure GetNumber(Value) Export
|
||||
ПолучитьЧисло(Value);
|
||||
EndProcedure
|
||||
|
||||
Procedure GetFileOnDisk(Value, Val Extension = "tmp") Export
|
||||
ПолучитьФайлНаДиске(Value, Extension);
|
||||
EndProcedure
|
||||
|
||||
#EndRegion
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/tools/Modules/internal/Modules/OPI_Инструменты.os
|
||||
// OneScript: ./OInt/tools/Modules/internal/Modules/OPI_Инструменты.os
|
||||
|
||||
// MIT License
|
||||
|
||||
@@ -727,9 +727,9 @@
|
||||
|
||||
Попытка
|
||||
|
||||
ЭтоОтладка = Неопределено;
|
||||
ЭтоОтладка = Неопределено;
|
||||
ЭтоОтладка = ПолучитьПеременнуюСреды("OINT_DEBUG");
|
||||
ЭтоОтладка = ?(ЗначениеЗаполнено(ЭтоОтладка), ЭтоОтладка, "NO");
|
||||
ЭтоОтладка = ?(ЗначениеЗаполнено(ЭтоОтладка), ЭтоОтладка, "NO");
|
||||
|
||||
Исключение
|
||||
ЭтоОтладка = "NO";
|
||||
@@ -1144,156 +1144,3 @@
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
|
||||
#Region Alternate
|
||||
|
||||
Function RequestParametersToString(Val Parameters, Val SplitArrayParams = False, Val Start = True) Export
|
||||
Return ПараметрыЗапросаВСтроку(Parameters, SplitArrayParams, Start);
|
||||
EndFunction
|
||||
|
||||
Function RequestParametersToMap(Val ParameterString) Export
|
||||
Return ПараметрыЗапросаВСоответствие(ParameterString);
|
||||
EndFunction
|
||||
|
||||
Function SplitURL(Val URL) Export
|
||||
Return РазбитьURL(URL);
|
||||
EndFunction
|
||||
|
||||
Function GetDomain(Val ConnectionString) Export
|
||||
Return ПолучитьДомен(ConnectionString);
|
||||
EndFunction
|
||||
|
||||
Function JsonToStructure(Val Text, Val ToMap = True) Export
|
||||
Return JsonВСтруктуру(Text, ToMap);
|
||||
EndFunction
|
||||
|
||||
Function JSONString(Val Data, Val Escaping = "None", Val LineBreaks = True, Val DoubleQuotes = True) Export
|
||||
Return JSONСтрокой(Data, Escaping, LineBreaks, DoubleQuotes);
|
||||
EndFunction
|
||||
|
||||
Function ReadJSONFile(Val Path) Export
|
||||
Return ПрочитатьJSONФайл(Path);
|
||||
EndFunction
|
||||
|
||||
Function ProcessXML(XML) Export
|
||||
Return ОбработатьXML(XML);
|
||||
EndFunction
|
||||
|
||||
Function GetXML(Value, TargetNamespace = "", XMLWriter = Undefined) Export
|
||||
Return ПолучитьXML(Value, TargetNamespace, XMLWriter);
|
||||
EndFunction
|
||||
|
||||
Procedure AddField(Val Name, Val Value, Val Type, Collection) Export
|
||||
ДобавитьПоле(Name, Value, Type, Collection);
|
||||
EndProcedure
|
||||
|
||||
Procedure AddKeyValue(Table, Val Key, Val Value) Export
|
||||
ДобавитьКлючЗначение(Table, Key, Value);
|
||||
EndProcedure
|
||||
|
||||
Procedure RemoveEmptyCollectionFields(Collection) Export
|
||||
УдалитьПустыеПоляКоллекции(Collection);
|
||||
EndProcedure
|
||||
|
||||
Procedure ValueToArray(Value) Export
|
||||
ЗначениеВМассив(Value);
|
||||
EndProcedure
|
||||
|
||||
Function CollectionFieldExist(Val Collection, Val Field, FieldValue = Undefined) Export
|
||||
Return ПолеКоллекцииСуществует(Collection, Field, FieldValue);
|
||||
EndFunction
|
||||
|
||||
Function FindMissingCollectionFields(Val Collection, Val Fields) Export
|
||||
Return НайтиОтсутствующиеПоляКоллекции(Collection, Fields);
|
||||
EndFunction
|
||||
|
||||
Function ClearCollectionRecursively(Val Collection) Export
|
||||
Return ОчиститьКоллекциюРекурсивно(Collection);
|
||||
EndFunction
|
||||
|
||||
Function CopyCollection(Val Collection) Export
|
||||
Return КопироватьКоллекцию(Collection);
|
||||
EndFunction
|
||||
|
||||
Function GetOr(Val Collection, Val Field, Val DefaultValue) Export
|
||||
Return ПолучитьИли(Collection, Field, DefaultValue);
|
||||
EndFunction
|
||||
|
||||
Function IsOneScript() Export
|
||||
Return ЭтоOneScript();
|
||||
EndFunction
|
||||
|
||||
Procedure ProgressInformation(Val Current, Val Total, Val Unit, Val Divider = 1) Export
|
||||
ИнформацияОПрогрессе(Current, Total, Unit, Divider);
|
||||
EndProcedure
|
||||
|
||||
Procedure DebugInfo(Val Text) Export
|
||||
ОтладочнаяИнформация(Text);
|
||||
EndProcedure
|
||||
|
||||
Procedure ReplaceSpecialCharacters(Text, Markup = "Markdown") Export
|
||||
ЗаменитьСпецСимволы(Text, Markup);
|
||||
EndProcedure
|
||||
|
||||
Procedure Pause(Val Seconds) Export
|
||||
Пауза(Seconds);
|
||||
EndProcedure
|
||||
|
||||
Procedure ReplaceEscapeSequences(Text) Export
|
||||
ЗаменитьУправляющиеПоследовательности(Text);
|
||||
EndProcedure
|
||||
|
||||
Procedure RestoreEscapeSequences(Text) Export
|
||||
ВернутьУправляющиеПоследовательности(Text);
|
||||
EndProcedure
|
||||
|
||||
Procedure StreamToStart(CurrentStream) Export
|
||||
ПотокВНачало(CurrentStream);
|
||||
EndProcedure
|
||||
|
||||
Function NumberToString(Val Value) Export
|
||||
Return ЧислоВСтроку(Value);
|
||||
EndFunction
|
||||
|
||||
Function GetCurrentDate() Export
|
||||
Return ПолучитьТекущуюДату();
|
||||
EndFunction
|
||||
|
||||
Function DateRFC3339(Val Date, Val Offset = "Z") Export
|
||||
Return ДатаRFC3339(Date, Offset);
|
||||
EndFunction
|
||||
|
||||
Function ConvertDataWithSizeRetrieval(Data, Val MinimumStreamSize = 0) Export
|
||||
Return ПреобразоватьДанныеСПолучениемРазмера(Data, MinimumStreamSize);
|
||||
EndFunction
|
||||
|
||||
Function ISOTimestamp(Val Date) Export
|
||||
Return ВременнаяМеткаISO(Date);
|
||||
EndFunction
|
||||
|
||||
Function CreateStream(Val FilePath = Undefined) Export
|
||||
Return СоздатьПоток(FilePath);
|
||||
EndFunction
|
||||
|
||||
Function IsWindows() Export
|
||||
Return ЭтоWindows();
|
||||
EndFunction
|
||||
|
||||
Function MergeData(Val Data, Val Addition) Export
|
||||
Return СклеитьДанные(Data, Addition);
|
||||
EndFunction
|
||||
|
||||
Function IsPrimitiveType(Val Value) Export
|
||||
Return ЭтоПримитивныйТип(Value);
|
||||
EndFunction
|
||||
|
||||
Function ThisIsCollection(Val Value, Val KeyValue = False) Export
|
||||
Return ЭтоКоллекция(Value, KeyValue);
|
||||
EndFunction
|
||||
|
||||
Procedure WriteOnCurrentLine(Val Text, Val Color = "", Val ToStart = False) Export
|
||||
ВывестиТекстВТекущуюСтроку(Text, Color, ToStart);
|
||||
EndProcedure
|
||||
|
||||
#EndRegion
|
||||
@@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/tools/Modules/internal/Modules/OPI_Криптография.os
|
||||
// OneScript: ./OInt/tools/Modules/internal/Modules/OPI_Криптография.os
|
||||
|
||||
// MIT License
|
||||
|
||||
@@ -240,24 +240,3 @@
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
|
||||
#Region Alternate
|
||||
|
||||
Function CreateSignature(Val SignKey, Val SignatureData, Val Algorithm, Val HashFunc) Export
|
||||
Return СоздатьПодпись(SignKey, SignatureData, Algorithm, HashFunc);
|
||||
EndFunction
|
||||
|
||||
Function Hash(BinaryData, Type) Export
|
||||
Return Хеш(BinaryData, Type);
|
||||
EndFunction
|
||||
|
||||
Function UniteBinaryData(BinaryData1, BinaryData2) Export
|
||||
Return СклеитьДвоичныеДанные(BinaryData1, BinaryData2);
|
||||
EndFunction
|
||||
|
||||
Function RepeatString(String, Count) Export
|
||||
Return ПовторитьСтроку(String, Count);
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
Reference in New Issue
Block a user