From 3e00b2a74b93f43cbce84e6124f9eb76fd1c5b20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9A=D0=B0=D0=BF=D1=80=D0=B0=D0=BB=D0=BE=D0=B2=20=D0=90?= =?UTF-8?q?=D0=BB=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4=D1=80?= Date: Tue, 23 Jun 2020 19:07:56 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A1=D0=BA=D1=80=D0=B8=D0=BF=D1=82=20=D0=9E?= =?UTF-8?q?=D0=BF=D1=83=D0=B1=D0=BB=D0=B8=D0=BA=D0=BE=D0=B2=D0=B0=D0=BD?= =?UTF-8?q?=D0=BD=D1=8B=D0=B5=20=D0=BF=D0=BB=D0=B0=D1=82=D1=84=D0=BE=D1=80?= =?UTF-8?q?=D0=BC=D1=8B=208.3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 6 +++ Библиотеки/ОпубликованныеПлатформы83.sbsl | 63 +++++++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 Библиотеки/ОпубликованныеПлатформы83.sbsl diff --git a/README.md b/README.md index 4b63e2b..e257b10 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,12 @@ Скрипт проверяет список последний версий платформы на сайте, смотрит список баз компьютера, список установленных платформ. После чего определяет, какие версии платформ нужно установить, а какие - удалить. ### Библиотеки +#### ОпубликованныеПлатформы83.sdbl +В РАЗРАБОТКЕ
+Cкрипт для получения опубликованных на сайте релизов платформы 8.3
+- метод ВсеРелизы() - возвращает список всех релизов
+- метод ПоследниеРелизы() - возвращает список последних сборок каждого релиза платформы
+ #### СписокИнформационныхБаз.sdbl Cкрипт для получения списка информационных баз компьютера
- метод ДоступныеБазы() - возвращает описание всех баз
diff --git a/Библиотеки/ОпубликованныеПлатформы83.sbsl b/Библиотеки/ОпубликованныеПлатформы83.sbsl new file mode 100644 index 0000000..9cf58ad --- /dev/null +++ b/Библиотеки/ОпубликованныеПлатформы83.sbsl @@ -0,0 +1,63 @@ +/******************************************************************************* + * Copyright (c) 2020 Alexander Kapralov and Contributors + * This program and the accompanying materials are made available under + * the terms of the BSD 3-Clause License which is available at + * https://spdx.org/licenses/BSD-3-Clause.html#licenseText + * + * SPDX-License-Identifier: BSD-3-Clause + * + * Contributors: + * + * + ******************************************************************************/ + +конст URL_ПЛАТФОРМЫ = "https://releases.1c.ru/project/Platform83" +конст URL_СЕРВЕРА_АВТОРИЗАЦИИ = "https://login.1c.ru" + + +метод ВсеРелизы(имяПользователя: Строка, парольПользователя: Строка) + знч аутентификация = Авторизация(имяПользователя, парольПользователя) + + знч запрос = КлиентHttp.ЗапросGet(URL_ПЛАТФОРМЫ) + + исп ответ = запрос.УстановитьCookies(аутентификация).Выполнить() + + знч текстСтраницы = ответ.Тело.ПрочитатьКакТекст() + + знч списокСтрок = текстСтраницы.Разделить("\н", Ложь) +; + +метод ИзвлечьТекстПоШаблонам(текст: Строка, шаблонНачала: Строка, шаблонОкончания: Строка): Строка + знч начало = текст.Найти(шаблонНачала) + знч окончание = текст.Найти(шаблонОкончания, начало + шаблонНачала.Длина()) + возврат текст.Подстрока(начало + шаблонНачала.Длина(), окончание) +; + +метод Авторизация(имяПользователя: Строка, парольПользователя: Строка): Строка + исп ответ1 = КлиентHttp.ЗапросGet(URL_ПЛАТФОРМЫ).Выполнить() + знч куки1 = ответ1.Заголовки.ПолучитьПервый("Set-Cookie") + знч телоЛогина = ответ1.Тело.ПрочитатьКакТекст() + ответ1.Закрыть() + + знч action = ИзвлечьТекстПоШаблонам(телоЛогина, "form method=\"post\" id=\"loginForm\" action=\"", "\"") + знч execution = ИзвлечьТекстПоШаблонам(телоЛогина, "input type=\"hidden\" name=\"execution\" value=\"", "\"") + + знч телоАвторизации = "inviteCode=" + "&" + "inviteType=" + "&" + "username=%имяПользователя" + "&" + + "password=%парольПользователя" + "&" + "rememberMe=on" + "&" + "execution=" + execution.Заменить("=", "\%3D") + "&" + + "_eventId=submit" + "&" + "geolocation=" + "&" + "submit=\%D0\%92\%D0\%BE\%D0\%B9\%D1\%82\%D0\%B8" + + исп ответ2 = КлиентHttp.ЗапросPost(URL_СЕРВЕРА_АВТОРИЗАЦИИ + action) + .УстановитьТипСодержимого("application/x-www-form-urlencoded") + .УстановитьCookies(куки1) + .УстановитьТело(телоАвторизации) + .Выполнить() + + знч куки2 = ответ2.Заголовки.ПолучитьПервый("Set-Cookie") + ответ2.Закрыть() + + если не (куки2 это Строка и куки2.Найти("TGC=") > -1) + выбросить новый ИсключениеНедопустимоеСостояние("Авторизация не удалась") + ; + + возврат куки2 +; \ No newline at end of file