From b7005995dc00ccc0a05845c37186187552eb966e Mon Sep 17 00:00:00 2001 From: Ivanov Egor <80944823+Segate-ekb@users.noreply.github.com> Date: Fri, 13 Sep 2024 07:38:32 +0300 Subject: [PATCH 1/3] =?UTF-8?q?=D0=A1=D0=BA=D0=B0=D1=87=D0=B8=D0=B2=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20"=D0=BD=D0=BE=D0=B2=D0=BE=D0=B3=D0=BE=20?= =?UTF-8?q?=D0=B2=20=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D0=B8"=20(#56)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Имплементация по скачиванию "мусора" * Исправил ридми --- README.md | 1 + ...0\270\320\267\320\276\320\2621\320\241.os" | 30 +++++++++++++++++++ ...0\260\320\271\321\202\320\2601\320\241.os" | 27 +++++++++++++++-- ...\266\320\265\320\275\320\270\321\217.json" | 1 + ...20\266\320\265\320\275\320\270\321\217.os" | 11 +++++++ 5 files changed, 68 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 13b82a4..d618f33 100644 --- a/README.md +++ b/README.md @@ -95,6 +95,7 @@ yard releases --user "user" --pwd "pwd" list --app-filter "Библиотека - _--download-existing_ - флаг принудительной загрузки ранее загруженных версий в каталоге для загрузки (проверяются файлы `description.json`) - _--download-limit_ - ограничение количества загружаемых версий за 1 запуск - _--download-only_ - только скачать дистрибутив с сайта и не выполнять дальнейшую обработку + - _--download-changelog_ - Скачать "Новое в веерсии" в файл changelog.htm - _--extract_ - флаг распаковки загруженного архива - _--extract-path_ - каталог для распаковки загруженного архива - _--extract-dir_ - регулярное выражение, отбора каталогов в архиве EFD для распаковки diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\240\320\265\320\273\320\270\320\267\320\276\320\2621\320\241.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\240\320\265\320\273\320\270\320\267\320\276\320\2621\320\241.os" index 83d68a9..54e1c5d 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\240\320\265\320\273\320\270\320\267\320\276\320\2621\320\241.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\240\320\265\320\273\320\270\320\267\320\276\320\2621\320\241.os" @@ -46,6 +46,7 @@ // (проверяются файлы description.json) Перем ОграничениеКоличества; // Число - ограничение количества загружаемых за 1 раз версий Перем ТолькоСкачать; // Булево - только скачать дистрибутив с сайта +Перем СкачиватьНовоеВВерсии; // Булево - скачивать "Новое в версии" с сайта Перем РаспаковыватьEFD; // Булево - Истина - если загруженный архив содержит упакованный // шаблон конфигурации (содержит файл 1cv8.efd), @@ -215,6 +216,13 @@ Ложь, Ложь, "Истина - только скачать дистрибутив с сайта"); + + ДобавитьОписаниеПараметра(Параметры, + "СкачиватьНовоеВВерсии", + "Булево", + Ложь, + Ложь, + "Истина - Скачать ""Новое в версии"" с сайта"); ДобавитьОписаниеПараметра(Параметры, "РаспаковыватьEFD", @@ -355,6 +363,7 @@ УстановитьПараметрОбработкиДанныхИзСтруктуры("ЗагружатьСуществующие" , ПараметрыОбработки, Ложь); УстановитьПараметрОбработкиДанныхИзСтруктуры("ОграничениеКоличества" , ПараметрыОбработки, 0); УстановитьПараметрОбработкиДанныхИзСтруктуры("ТолькоСкачать" , ПараметрыОбработки, Ложь); + УстановитьПараметрОбработкиДанныхИзСтруктуры("СкачиватьНовоеВВерсии" , ПараметрыОбработки, Ложь); УстановитьПараметрОбработкиДанныхИзСтруктуры("РаспаковыватьEFD" , ПараметрыОбработки, Ложь); УстановитьПараметрОбработкиДанныхИзСтруктуры("КаталогДляРаспаковкиEFD" , ПараметрыОбработки); УстановитьПараметрОбработкиДанныхИзСтруктуры("КаталогВАрхивеДляРаспаковкиEFD" , ПараметрыОбработки); @@ -654,6 +663,9 @@ Команда.Опция("do download-only", Ложь, "только скачать дистрибутив с сайта") .Флаг(); + + Команда.Опция("dc download-changelog", Ложь, "скачивать ""Новое в версии""") + .Флаг(); Команда.Опция("e extract", Ложь, "флаг распаковки загруженного архива") .Флаг(); @@ -723,6 +735,7 @@ УстановитьПараметрОбработкиДанных("ЗагружатьСуществующие" , Команда.ЗначениеОпции("download-existing")); УстановитьПараметрОбработкиДанных("ОграничениеКоличества" , Команда.ЗначениеОпции("download-limit")); УстановитьПараметрОбработкиДанных("ТолькоСкачать" , Команда.ЗначениеОпции("download-only")); + УстановитьПараметрОбработкиДанных("СкачиватьНовоеВВерсии" , Команда.ЗначениеОпции("download-changelog")); УстановитьПараметрОбработкиДанных("РаспаковыватьEFD" , Команда.ЗначениеОпции("extract")); УстановитьПараметрОбработкиДанных("КаталогДляРаспаковкиEFD" , Команда.ЗначениеОпции("extract-path")); УстановитьПараметрОбработкиДанных("УдалитьПослеРаспаковкиEFD" , Команда.ЗначениеОпции("delete")); @@ -899,6 +912,23 @@ Возврат Ложь; КонецЕсли; + Если СкачиватьНовоеВВерсии Тогда + Лог.Отладка("Начинаю получение информации о новом в версии."); + НовоеВВерсииСтрока = Обозреватель.ПолучитьНовоеВверсии(ОписаниеВерсии.Путь); + Если ЗначениеЗаполнено(НовоеВВерсииСтрока) Тогда + ИмяФайлаНовоеВВерсии = ОбъединитьПути(КаталогДляСохранения, + ОписаниеВерсии.Идентификатор, + ОписаниеВерсии.Версия, + "changelog.htm"); + + Распаковщик.ОбеспечитьКаталог(ИмяФайлаНовоеВВерсии, Истина); + + НовоеВВерсии = Новый ТекстовыйДокумент; + НовоеВВерсии.УстановитьТекст(НовоеВВерсииСтрока); + НовоеВВерсии.Записать(ИмяФайлаНовоеВВерсии, "utf-8"); + КонецЕсли; + КонецЕсли; + СписокСсылок = Обозреватель.ПолучитьСсылкиДляЗагрузки(ОписаниеВерсии.Путь, ШаблонСсылки); Если СписокСсылок.Количество() = 0 Тогда diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\261\320\276\320\267\321\200\320\265\320\262\320\260\321\202\320\265\320\273\321\214\320\241\320\260\320\271\321\202\320\2601\320\241.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\261\320\276\320\267\321\200\320\265\320\262\320\260\321\202\320\265\320\273\321\214\320\241\320\260\320\271\321\202\320\2601\320\241.os" index dd80e59..04aa69e 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\261\320\276\320\267\321\200\320\265\320\262\320\260\321\202\320\265\320\273\321\214\320\241\320\260\320\271\321\202\320\2601\320\241.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\261\320\276\320\267\321\200\320\265\320\262\320\260\321\202\320\265\320\273\321\214\320\241\320\260\320\271\321\202\320\2601\320\241.os" @@ -335,7 +335,7 @@ ШаблонПоискаАдресаСтраницыЗагрузки = ПараметрыПриложения.ШаблонПоискаАдресаСтраницыЗагрузки(); ШаблонПоискаСсылкиДляЗагрузки = ПараметрыПриложения.ШаблонПоискаСсылкиДляЗагрузки(); - + Совпадения = Служебный.НайтиСовпаденияВТексте(СтраницаВерсии, ШаблонПоискаАдресаСтраницыЗагрузки); СписокСсылок = Новый Массив(); @@ -371,7 +371,7 @@ Продолжить; КонецЕсли; - ТекВерсия = Новый Структура("Имя, Путь, ПутьДляЗагрузки, ИмяФайла"); + ТекВерсия = Новый Структура("Имя, Путь, ПутьДляЗагрузки, ИмяФайла, СсылкаНаНовоеВВерсии"); ТекВерсия.Имя = ТекИмя; ТекВерсия.Путь = ТекСсылка; ТекВерсия.ПутьДляЗагрузки = СовпаденияДляЗагрузки[0].Группы[2].Значение; @@ -387,6 +387,29 @@ КонецФункции // ПолучитьСсылкиДляЗагрузки() +// Процедура +Функция ПолучитьНовоеВверсии(Знач АдресРесурса = "") Экспорт + + СтраницаВерсии = ПолучитьСтраницуСайта(ПараметрыПриложения.СервисРелизов(), АдресРесурса); + + ШаблонПоискаНовогоВВерсии = ПараметрыПриложения.ШаблонПоискаСсылкиНаНовоеВВерсии(); + Совпадения = Служебный.НайтиСовпаденияВТексте(СтраницаВерсии, ШаблонПоискаНовогоВВерсии); + + СсылкаНаНовоеВВерсии = ""; + Если Совпадения.Количество() = 0 Тогда + Лог.Отладка("По адресу ""%1"" не найдено совпадений с шаблоном ""%2"" поиска страницы с информацией о новом в версии.", + АдресРесурса, + ШаблонПоискаНовогоВВерсии); + Возврат ""; + КонецЕсли; + + Совпадение = Совпадения[0]; + + СсылкаНаНовоеВВерсии = Совпадение.Группы[1].Значение; + + Возврат ПолучитьСтраницуСайта(ПараметрыПриложения.СервисРелизов(), СсылкаНаНовоеВВерсии); +КонецФункции + // Процедура - загружает указанный файл с сайта 1С // // Параметры: diff --git "a/src/\320\234\320\260\320\272\320\265\321\202\321\213/\320\240\320\265\321\201\321\203\321\200\321\201\321\213\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.json" "b/src/\320\234\320\260\320\272\320\265\321\202\321\213/\320\240\320\265\321\201\321\203\321\200\321\201\321\213\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.json" index 95be27b..8380ecf 100644 --- "a/src/\320\234\320\260\320\272\320\265\321\202\321\213/\320\240\320\265\321\201\321\203\321\200\321\201\321\213\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.json" +++ "b/src/\320\234\320\260\320\272\320\265\321\202\321\213/\320\240\320\265\321\201\321\203\321\200\321\201\321\213\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.json" @@ -13,6 +13,7 @@ "ШаблонПоискаДатБетаВерсий" : "(\\d\\d\\.\\d\\d\\.\\d\\d)+", "ШаблонПоискаВерсий" : "