E621/926 API Parser

Images direct links ripper for pages with search results

As of 2019-08-23. See the latest version.

// ==UserScript==
// @name			E621/926 API Parser
// @version			2019.08.23
// @description		Images direct links ripper for pages with search results
// @description:ru	Рипалка ссылок в результатах поиска, для менеджеров закачки
// @include			http*://e621.net/*
// @include			http*://e926.net/*
// @author			Rainbow-Spike
// @namespace		https://greasyfork.org/users/7568
// @homepage		https://greasyfork.org/ru/users/7568-dr-yukon
// @icon			https://www.google.com/s2/favicons?domain=e621.net
// @grant			none
// @run-at			document-end
// ==/UserScript==

var skript = document.getElementById ( "blacklisted-images" ).innerHTML, // жабаем текст скрипта в конце страницы
    regulyarka = /\"file_url\":\"([^\"]+)\"/g, // с чем сравниваем
    poisk, // заранее готовим исполнитель поиска
    tekst = '', // текстуха для сборки итогов
    spanka = document.createElement ( 'span' ), // вставка
    mesto = document.getElementById ( "subnav" ); // куда класть вставку

// SELECT
function selectblock ( name ) {
	var rng = document.createRange ( );
	rng.selectNode (name);
	var sel = window.getSelection ( );
	sel.removeAllRanges ( );
	sel.addRange ( rng );
}

while ( ( poisk = regulyarka.exec ( skript ) ) !== null ) { // пока в скрипте есть годные строки
	if ( window.location.href.indexOf ( 'e926' ) !== -1 ) poisk[1] = 'http:' + poisk[1]; // поправочка для e926.net - дописать протокол http: в ссылки
	tekst += '<a href="' + poisk[1] + '">' + poisk[1] + '</a> '; // выдрать адреса из строк и соорудить ссылки
	tekst += '<br />';
}
spanka.innerHTML = tekst; // втыкнуть всё это во вставку
mesto.appendChild ( spanka ); // спойлер прицепить в текст
// раскомментировать, если ссылки торчат некрасиво
// spanka.style = 'display: none;' // скрытие окружения

selectblock ( spanka );