You've already forked devscripts
mirror of
https://github.com/DoublesunRUS/devscripts.git
synced 2026-06-11 22:46:51 +02:00
Скрипт Опубликованные платформы 8.3
This commit is contained in:
@@ -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
|
||||
;
|
||||
Reference in New Issue
Block a user