Skip to content

Commit

Permalink
Merge branch 'release/v.1.9.7'
Browse files Browse the repository at this point in the history
  • Loading branch information
1c committed Nov 9, 2023
2 parents 49e12f3 + a19e87e commit 86b95b6
Show file tree
Hide file tree
Showing 5 changed files with 53 additions and 31 deletions.
2 changes: 1 addition & 1 deletion packagedef
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Описание.Имя("yard")
.Версия("1.9.6")
.Версия("1.9.7")
.ВерсияСреды("1.6")
.ЗависитОт("logos")
.ЗависитОт("asserts")
Expand Down
11 changes: 11 additions & 0 deletions src/Классы/ЗагрузчикРелизов1С.os
Original file line number Diff line number Diff line change
Expand Up @@ -888,6 +888,17 @@

СписокСсылок = Обозреватель.ПолучитьСсылкиДляЗагрузки(ОписаниеВерсии.Путь, ШаблонСсылки);

Если СписокСсылок.Количество() = 0 Тогда
Лог.Информация("[%1]: По адресу ""%2"" не найдена ссылка для загрузки
|дистрибутива ""%3"" версии %4 по шаблону ""%5"".",
СокрЛП(ЭтотОбъект),
ОписаниеВерсии.Путь,
ОписаниеВерсии.Имя,
ОписаниеВерсии.Версия,
ШаблонСсылки);
Возврат Ложь;
КонецЕсли;

Для Каждого ТекСсылка Из СписокСсылок Цикл

ИмяФайлаАрхива = ОбъединитьПути(КаталогДляСохранения,
Expand Down
67 changes: 39 additions & 28 deletions src/Классы/ОбозревательСайта1С.os
Original file line number Diff line number Diff line change
Expand Up @@ -331,44 +331,55 @@

СтраницаВерсии = ПолучитьСтраницуСайта(ПараметрыПриложения.СервисРелизов(), АдресРесурса);

Совпадения = Служебный.НайтиСовпаденияВТексте(СтраницаВерсии,
ПараметрыПриложения.ШаблонПоискаАдресаСтраницыЗагрузки());
ШаблонПоискаАдресаСтраницыЗагрузки = ПараметрыПриложения.ШаблонПоискаАдресаСтраницыЗагрузки();
ШаблонПоискаСсылкиДляЗагрузки = ПараметрыПриложения.ШаблонПоискаСсылкиДляЗагрузки();

Совпадения = Служебный.НайтиСовпаденияВТексте(СтраницаВерсии, ШаблонПоискаАдресаСтраницыЗагрузки);

СписокСсылок = Новый Массив();
Если Совпадения.Количество() > 0 Тогда
Если Совпадения.Количество() = 0 Тогда
Лог.Отладка("По адресу ""%1"" не найдено совпадений с шаблоном ""%2"" поиска страницы загрузки.",
АдресРесурса,
ШаблонПоискаАдресаСтраницыЗагрузки);
Возврат СписокСсылок;
КонецЕсли;

Для Каждого ТекСовпадение Из Совпадения Цикл
Для Каждого ТекСовпадение Из Совпадения Цикл

Если ТекСовпадение.Группы.Количество() < 3 Тогда
Продолжить;
КонецЕсли;
Если ТекСовпадение.Группы.Количество() < 3 Тогда
Продолжить;
КонецЕсли;

ТекИмя = ТекСовпадение.Группы[2].Значение;
ТекСсылка = ТекСовпадение.Группы[1].Значение;
ОписаниеФайла = ФайлИзАдреса(ТекСсылка);
ТекИмя = ТекСовпадение.Группы[2].Значение;
ТекСсылка = ТекСовпадение.Группы[1].Значение;
ОписаниеФайла = ФайлИзАдреса(ТекСсылка);

Если НЕ СоответствуетФильтру(ТекИмя, Фильтр) Тогда
Продолжить;
КонецЕсли;
Если НЕ СоответствуетФильтру(ТекИмя, Фильтр) Тогда
Продолжить;
КонецЕсли;

СтраницаЗагрузки = ПолучитьСтраницуСайта(ПараметрыПриложения.СервисРелизов(), ТекСсылка);

СовпаденияДляЗагрузки = Служебный.НайтиСовпаденияВТексте(СтраницаЗагрузки,
ПараметрыПриложения.ШаблонПоискаСсылкиДляЗагрузки());
СтраницаЗагрузки = ПолучитьСтраницуСайта(ПараметрыПриложения.СервисРелизов(), ТекСсылка);

Если СовпаденияДляЗагрузки.Количество() = 0 Тогда
Продолжить;
КонецЕсли;
СовпаденияДляЗагрузки = Служебный.НайтиСовпаденияВТексте(СтраницаЗагрузки, ШаблонПоискаСсылкиДляЗагрузки);

ТекВерсия = Новый Структура("Имя, Путь, ПутьДляЗагрузки, ИмяФайла");
ТекВерсия.Имя = ТекИмя;
ТекВерсия.Путь = ТекСсылка;
ТекВерсия.ПутьДляЗагрузки = СовпаденияДляЗагрузки[0].Группы[2].Значение;
ТекВерсия.ИмяФайла = ОписаниеФайла.Имя;
СписокСсылок.Добавить(ТекВерсия);
Если СовпаденияДляЗагрузки.Количество() = 0 Тогда
Лог.Отладка("По адресу ""%1"" не найдено совпадений с шаблоном ""%2"" ссылки для загрузки.",
ТекСсылка,
ШаблонПоискаСсылкиДляЗагрузки);
Продолжить;
КонецЕсли;

КонецЦикла;
КонецЕсли;
ТекВерсия = Новый Структура("Имя, Путь, ПутьДляЗагрузки, ИмяФайла");
ТекВерсия.Имя = ТекИмя;
ТекВерсия.Путь = ТекСсылка;
ТекВерсия.ПутьДляЗагрузки = СовпаденияДляЗагрузки[0].Группы[2].Значение;
ТекВерсия.ИмяФайла = ОписаниеФайла.Имя;
СписокСсылок.Добавить(ТекВерсия);
Лог.Отладка("По адресу ""%1"" найдена ссылка для загрузки ""%2"".",
ТекСсылка,
ТекВерсия.ПутьДляЗагрузки);

КонецЦикла;

Возврат СписокСсылок;

Expand Down
2 changes: 1 addition & 1 deletion src/Классы/СписокРелизов1С.os
Original file line number Diff line number Diff line change
Expand Up @@ -331,7 +331,7 @@
Обозреватель.ЕстьСсылкаДляЗагрузки(ТекВерсия.Путь, "Полный дистрибутив$"));
ТекВерсия.Вставить("ДистрибутивОбновления",
Обозреватель.ЕстьСсылкаДляЗагрузки(ТекВерсия.Путь, "Дистрибутив обновления$"));

ВерсииПриложения.Добавить(ТекВерсия);
КонецЦикла;
КонецЕсли;
Expand Down
2 changes: 1 addition & 1 deletion src/Макеты/РесурсыПриложения.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
"ШаблонПоискаСсылокБетаВерсий" : "<a href=\"(.*?\\?nick=(.*?)&ver=(.*?))\">.*?<\\/a><br.*?>",
"ШаблонПоискаДатБетаВерсий" : "(\\d\\d\\.\\d\\d\\.\\d\\d)+",
"ШаблонПоискаВерсий" : "<td class=\"versionColumn\">\\s*<a href=\"(.*)\">\\s*(.*)\\s*<\\/a>(\\s|.)*?<td class=\"dateColumn\">\\s*(.*)\\s*<\\/td>(\\s|.)*?(?:<td class=\"itsColumn\">\\s*(?:.*)\\s*<\\/td>(?:\\s|.)*?)?<td class=\"previousVersionsColumn\">\\s*(.*)\\s*<\\/td>",
"ШаблонПоискаАдресаСтраницыЗагрузки" : "<div class=\"formLine\">\\s*(?:<div class=\"with-file-info-tooltip\">\\s*)?<a href=\"(.*)\">\\s*(.*)\\s*<\\/a>(\\s|.)*?<\/div>",
"ШаблонПоискаАдресаСтраницыЗагрузки" : "<a href=\"(.*)\">\\s*(.*)\\s*<\\/a>(\\s|.)*?<\/div>",
"ШаблонПоискаСсылкиДляЗагрузки" : "<div class=\"downloadDist\">(\\s|.)*?<a href=\"(.*)\">\\s*Скачать дистрибутив\\s*<\\/a>(\\s|.)*?<\\/div>",
"ШаблонПоискаПутиКФайлуВАдресе" : "\\?.*path=(.+)(?:\\z|&)"
}

0 comments on commit 86b95b6

Please sign in to comment.