NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name Actu - Sources interdites
// @namespace Actu - Sources interdites
// @version 0.2
// @description Indique les topics dont la source est interdite, et les topics ne contenant aucune source.
// @author RonPaul2016
// @match http://www.jeuxvideo.com/forums/0-69-*
// @grant none
// @require https://code.jquery.com/jquery-3.4.0.js
// @require https://use.fontawesome.com/releases/v5.8.1/js/all.js
// @copyright 2019+, RonPaul2016
// @license MIT
// ==/UserScript==
const URL_SOURCES_INTERDITES = 'http://www.jeuxvideo.com/forums/42-69-57605709-1-0-1-0-liste-des-sources-interdites.htm';
const BASE_URL = 'http://www.jeuxvideo.com';
var topics_interdits = [];
var nb_topics_courant;
(function () {
placer_bouton();
})();
function placer_bouton() {
var search_bar = $("div.bloc-rech-forum")[0];
$(search_bar).html($(search_bar).html() + '<button class="btn btn-lancer-rech" style="width: unset; padding: 3px" onclick="ouvrir_topic_sources();"><i id="icone_sources" class="fas fa-newspaper"></i> Sources interdites</span></button>');
}
window.ouvrir_topic_sources = function () {
$("#icone_sources").attr("class", "fas fa-sync-alt fa-spin");
$.get(URL_SOURCES_INTERDITES, function (data) {
var sources_interdites = lister_sources_interdites(data);
lister_topics(sources_interdites);
});
}
function lister_topics(sources_interdites) {
var liste_topics = $(".topic-list")[0];
var topics = $(liste_topics).find("li").not(".topic-head").not(".move");
nb_topics_courant = 0;
for (var i = 0; i < topics.length; i++) {
var url_topic = BASE_URL + $($(topics[i]).find(".lien-jv")[0]).attr("href");
trouver_lien_source_topic(url_topic, sources_interdites, topics[i], topics.length);
}
}
function trouver_lien_source_topic(url, sources_interdites, element_html, nb_topics) {
$.get(url, function (data) {
var sources = [];
var texte = $($(data).find(".txt-msg")[0]).html();
var topic_a_surligner = false;
var pattern = /((http)s*:\/\/\w*\.*)[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/g;
var match = texte.match(pattern);
if (match) {
sources = match;
}
else {
topic_a_surligner = true;
}
if (!topic_a_surligner) {
for (var i = 0; i < sources_interdites.length; i++) {
for (var j = 0; j < sources.length; j++) {
if (sources[j].includes(sources_interdites[i])) {
topic_a_surligner = true;
break;
}
}
if (topic_a_surligner) {
break;
}
}
}
if (topic_a_surligner) {
surligner_topic(element_html);
}
}).done(function () {
nb_topics_courant += 1;
if (nb_topics_courant === nb_topics - 1) {
$("#icone_sources").attr("class", "fas fa-newspaper");
}
});
}
function surligner_topic(element_html) {
$("li[data-id=" + $(element_html).attr("data-id") + "]").css("background", "rgba(255, 0, 0, 0.5)");
}
function lister_sources_interdites(data) {
var paragraphes = $($(data).find(".txt-msg")[0]).find("p");
var texte = "";
for (var i = 0; i < paragraphes.length; i++) {
texte += $(paragraphes[i]).html();
}
var sources = trouver_liens(texte);
return sources;
}
function trouver_liens(texte) {
var pattern = /(www\.)[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/g;
var sources = texte.match(pattern);
for (var i = 0; i < sources.length; i++) {
sources[i] = sources[i].replace("www.", "");
}
return sources;
}