NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name Doublons Actu // @namespace Doublons Actu // @version 0.3 // @description Indique les topics doublons, et ouvre automatiquement les deux topics pour comparer. // @author RonPaul2016 // @require https://code.jquery.com/jquery-3.4.0.js // @require https://cdnjs.cloudflare.com/ajax/libs/jquery-modal/0.9.1/jquery.modal.min.js // @require https://use.fontawesome.com/releases/v5.8.1/js/all.js // @resource MODAL https://cdnjs.cloudflare.com/ajax/libs/jquery-modal/0.9.1/jquery.modal.min.css // @match http://www.jeuxvideo.com/forums/0-69-0-1-0-1-0-actualites.htm // @grant GM_addStyle // @grant GM_getResourceText // @copyright 2019+, RonPaul2016 // @license MIT // ==/UserScript== var cssTxt = GM_getResourceText("MODAL"); GM_addStyle(cssTxt); var doublons_charges = false; (function () { placer_bouton(); })(); function placer_bouton() { var search_bar = $("div.bloc-rech-forum")[0]; $(search_bar).html($(search_bar).html() + '<button id="bouton_doublons" class="btn btn-lancer-rech" style="width: unset; padding: 3px"><i id="icone_doublons" class="fas fa-copy"></i> Doublons</span></button>'); $("#bouton_doublons").click(function () { if (doublons_charges) { $("#modal_doublons").modal(); } else { rechercher(); } }); var html = '<div id="modal_doublons" class="modal" style="padding:15px"></div>'; $("body").append(html); } function rechercher() { $("#icone_doublons").attr("class", "fas fa-sync-alt fa-spin"); $.get("http://www.jeuxvideo.com/recherche/forums/0-69-0-1-0-1-0-actualites.htm?search_in_forum=doublon&type_search_in_forum=texte_message", function (text) { var html = text; var liste_topics = selectionner_topics(html); trouver_liens_topics(liste_topics); }); } function afficher_topics(topics) { var html_modal = "<ul class='topic-list topic-list-admin' style='margin-bottom: 0px'>"; for (var i = 0; i < topics.length; i++) { html_modal += "<li id='doublon_" + i + "'>" + $(topics[i].topic).html() + "</li>"; } html_modal += "</ul>"; $("#modal_doublons").append(html_modal); for (i = 0; i < topics.length; i++) { $("#doublon_" + i).find("a.topic-title").click({ topics: [ topics[i].message, $(topics[i].topic).find("span.topic-subject").find("a").attr("href") ] }, ouvrir_topics); } $("#modal_doublons").modal(); } function ouvrir_topics(event) { event.preventDefault(); for (var i = 0; i < event.data.topics.length; i++) { window.open(event.data.topics[i], '_blank'); } } function selectionner_topics(html) { html = $(html); var conteneur_topics = $(".topic-list", html); var liste_objets = $("li", conteneur_topics); var liste_topics = []; for (var i = 0; i < liste_objets.length; i++) { if ($(liste_objets[i]).attr("class") == "") { if ($(liste_objets[i]).find("img.topic-img").attr("title") !== "Topic fermé") { var pseudo = $(liste_objets[i + 1]).find("span.topic-author").text().replace(/ /g, "").replace(/\n/g, "").toLowerCase(); var id_message = $(liste_objets[i + 1]).find("span.topic-subject").find("a.topic-title").attr("href").split("#post_")[1]; var lien_message = "http://www.jeuxvideo.com/" + pseudo + "/forums/message/" + id_message; liste_topics.push({ "topic": mise_en_page_topic(liste_objets[i]), "message": lien_message }); } i++; } } return liste_topics; } function mise_en_page_topic(topic) { var new_topic = topic; $(new_topic).find("span.topic-admin, span.pointer").remove(); $(new_topic).find("span.topic-count").remove(); $(new_topic).find("span.topic-count-adm").remove(); $(new_topic).find("span.topic-date").remove(); $(new_topic).find("span.topic-select").remove(); return new_topic; } function trouver_liens_topics(topics) { var count = { "count": 0 } var i; for (i = 0; i < topics.length; i++) { charger_message(topics, i, count); } } function charger_message(topics, index, count) { $.get(topics[index].message, function (data) { count.count += 1 var lien = $(data).find("div.txt-msg").find("a"); if (lien) { lien = lien.attr("href"); if (lien) { if (lien.includes("jeuxvideo.com")) { topics[index].message = lien; } } } if (count.count === topics.length) { $("#icone_doublons").attr("class", "fas fa-copy"); doublons_charges = true; afficher_topics(topics); } }); }