henry_flower (
henry_flower) wrote2019-03-21 10:51 am
Лінки до віндюка
Ти йому кажеш "так майкрософта дає охфіціїні лінки для завантаження", воно тобі "га? не знав!", а згодом все одно лізе на московитський трекер та зкачує "полегшену збірку" якогось васі.
Це не закінчеться ніколи. Країна ментальних радіориночників.
Just for fun, осьо є мейкфайла, який виколупує лінки без участі бовзера:
#!/usr/bin/make -f
edition.url := https://www.microsoft.com/en-us/software-download/windows10ISO/
session_id := $(shell uuidgen)
curl := curl -sfL
SHELL := bash -o pipefail
.PHONY: urls
urls: platforms.html
adieu -pe '$$("a.button").get().map( v => $$(v).attr("href")).join`\n`' $<
.PHONY: edition.html
edition.html:; $(curl) '$(edition.url)' > $@
edition.list: edition.html
adieu -pe '$$("option:not([value=])").get().map( v => $$(v).attr("value") + " " + $$(v.parent).attr("label")).join`\n`' < $< > $@
# dialog(1) invocation
%.answer: %.list
cut -d" " -f 2- $< | tr "\n" \\0 \
| xargs -0 dialog --keep-tite --no-items --menu "$(dialog_$*_menu)" 0 0 0 2> $@
dialog_edition_menu = Select edition
lang.html: edition.list edition.answer
adieu -pe 'v=$$("#SoftwareDownload_LanguageSelectionByProductEdition"); [`https://www.microsoft.com/en-us/api/controls/contentinclude/html?pageId=$${v.data("defaultpageid")}`, `host=$${v.data("host")}` , `segments=$${v.data("host-segments")}`, "action=getskuinformationbyproductedition", "sessionId=$(session_id)", "productEditionId=$(answer-1)", "sdVersion=2"].join`&`' edition.html | xargs $(curl) > $@
answer-1 = $(call answer,$<,$(word 2,$^),1)
answer = $(shell grep -m1 "`cat $2`" $1 | cut -d" " -f $3)
lang.list: lang.html
adieu -pe '$$("option:not([value=])").get().map( v => JSON.parse($$(v).attr("value")).id + " " + $$(v).html()).join`\n`' $< > $@
dialog_lang_menu = Select the product language
platforms.html: lang.list lang.answer
adieu -pe 'v=$$("#SoftwareDownload_DownloadLinks"); [`https://www.microsoft.com/en-us/api/controls/contentinclude/html?pageId=$${v.data("defaultpageid")}`, `host=$${v.data("host")}` , `segments=$${v.data("host-segments")}`, "action=GetProductDownloadLinksBySku", "sessionId=$(session_id)", "skuId=$(answer-1)", `language=$${encodeURIComponent("$(answer-2)")}`, "sdVersion=2"].join`&`' edition.html | xargs $(curl) > $@
answer-2 = $(call answer,$<,$(word 2,$^),2-)
.DELETE_ON_ERROR:
.INTERMEDIATE: edition.html edition.list edition.answer lang.html lang.list lang.answer platforms.html
Потребує curl, dialog(1) та npm i -g adieu.

no subject
no subject
no subject
нагадало класику:
'Я бєсєдовал с прєдставітєлєм Microsoft. Ми пріґласілі єґо в нашє лоґово. Сначала он дєлал від, что нє понімаєт нас, но позжє раскололся. Ми зналі заранєє, что коґда появілся BedOS72214-1 Microsoft нєпрєривно заходіл на наш сайт с разних машін і поддомєнов в тєчєнії 2-х суток. Єто било відно по лоґам нашєґо сайта. Прєдставітєль намєкнул нам о нарушєнії авторскіх прав і что єто можєт плохо для нас кончітся. Ми вєдь прєдложілі нє мноґо ні мало сотруднічєство с Microsoft, заодно хотєлі узнать іх рєакцію. Стало всє ясно. Оні нас нєнавідят, ми нє впісиваємся в іх аґрєссівний маркєтінґ і тотальноє закритіє кода, начінєнний разлічнимі троянамі і бєкдурамі.'
no subject
no subject
а для семёрочки?
"Mainstream support ended on January 13, 2015"
зараз воно потребує ключа для завантаження
а LTSC?
ггг
це вони так LGBT версію перейменували?
то ж тіки для інтерпрайза => треба мати логіна для volume licensing service center
зе скрипта лише бачить сторінки, які не потребують автентифікації
no subject