1
0
mirror of https://github.com/DoublesunRUS/devscripts.git synced 2026-06-11 22:46:51 +02:00

Скрипт Опубликованные платформы 8.3

This commit is contained in:
Капралов Александр
2020-06-23 19:07:56 +03:00
parent 8ae37c97c1
commit 3e00b2a74b
2 changed files with 69 additions and 0 deletions
+6
View File
@@ -7,6 +7,12 @@
Скрипт проверяет список последний версий платформы на сайте, смотрит список баз компьютера, список установленных платформ. После чего определяет, какие версии платформ нужно установить, а какие - удалить.
### Библиотеки
#### ОпубликованныеПлатформы83.sdbl
В РАЗРАБОТКЕ<br>
Cкрипт для получения опубликованных на сайте релизов платформы 8.3<br>
- метод ВсеРелизы() - возвращает список всех релизов<br>
- метод ПоследниеРелизы() - возвращает список последних сборок каждого релиза платформы<br>
#### СписокИнформационныхБаз.sdbl
Cкрипт для получения списка информационных баз компьютера<br>
- метод ДоступныеБазы() - возвращает описание всех баз<br>
@@ -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
;