User:Macaw*/UserScript1.js

(function(){

'use strict';

function processSearchPage(url){

fetch(url)

.then(res => res.text())

.then(html => {

var parser = new DOMParser();

var doc = parser.parseFromString(html, "text/html");

var links = Array.from(doc.querySelectorAll(".mw-search-result-heading a")).map(a => a.getAttribute("href"));

function processLink(i){

if(i >= links.length){

var nextLink = doc.querySelector(".mw-search-pager-next a");

if(nextLink){

processSearchPage(location.protocol + "//" + location.host + nextLink.getAttribute("href"));

}

return;

}

var articleUrl = location.protocol + "//" + location.host + links[i];

var rawUrl = articleUrl + "?action=raw";

fetch(rawUrl)

.then(r => r.text())

.then(rawText => {

if(/{{\s*Short\s+description\s*\|/.test(rawText)){

processLink(i+1);

} else {

window.location.href = articleUrl;

}

})

.catch(() => processLink(i+1));

}

processLink(0);

})

.catch(()=>{});

}

window.addEventListener("keydown", function(e){

if(e.ctrlKey && e.shiftKey && e.key.toLowerCase() === 'r'){

e.preventDefault();

var searchUrl = location.protocol + "//" + location.host + "/w/index.php?title=Special:Search&search=-hastemplate:%22Short%20description%22";

processSearchPage(searchUrl);

}

}, false);

})();