YuS 2
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Egor2020 Цитата Цитата: скрипты на PowerShell, которые выкачивают все XPI-файлы данных расширений и тем с вышеуказанных страниц. Ссылки на внешние серверы realityripple.com, github.com и dephormation.org.uk должны игнорироваться. | Как-то так, в окончательном виде: Код: function get-xpi { param( [object[]]$url, $name, $folder ) $name = $name.trim() -replace '#|/|\\|:|\[|\]','_' if (!(test-path ($fold = $folder + $name))){md $fold|out-null} $url|%{ $outname ="$fold\"+$name+'.xpi' if (((iwr $_ -method head).headers["content-disposition"]| out-string).trim() -match 'filename=\"([^"]+)\"') { iwr $_ -out ($fold+'\'+$matches[1]) } else {iwr $_ -outfile $outname} } } <# массив данных для скачивания, каждый элемент состоит из массива: 0. Ссылка на сайт со списком расширений/тем 1. Фильтр для отбора ссылок из списка (индивидуальный для каждого сайта) 2. Фильтр для выбора ссылки конкретного элемента (индивидуальный) 3. Имя выходного каталога 4. Регулярное выражение для выбора имени подкаталога расширения/темы #> $arruri = @( @("https://addons.palemoon.org/extensions/?all=1",'category-addon', 'dllink_green','palemoon_ext','<strong>([^<]+)</strong'), @("https://addons.palemoon.org/themes",'category-addon', 'dllink_green','palemoon_themes','<strong>([^<]+)</strong'), @("https://addons.basilisk-browser.org/extensions",'category-addon', 'button','basilisk_ext','<strong>([^<]+)</strong') ) if($psversiontable.psversion.major -gt 5){$progresspreference = 'SilentlyContinue'} $arruri|%{ $urisrc,$filter1,$filter2,$cat,$regflt = $_[0],$_[1],$_[2],$_[3],$_[4] $fld = ".\$cat\" $uri = [uri]$urisrc $uri_new = new-object system.uribuilder -arg $uri.scheme, $uri.host $html = iwr $urisrc $links = $html.links|?{$_.class -match $filter1 -and $_.href -notmatch 'https?:'} ($cat+' ----------- '+$links.count)|out-file log.txt -app -enc utf8 $links|%{ $null = ($_.outerhtml -match $regflt) $namelink = [net.webutility]::htmldecode($matches[1]) $namelink|out-file log.txt -app -enc utf8 $wr = iwr ($uri_new.tostring()+$_.href) $wr.links|? class -eq $filter2 -ea 0|%{ get-xpi ([net.webutility]::htmldecode($uri_new.tostring()+$_.href)) $namelink $fld } } } $progresspreference = 'Continue' |
|