NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name JVPFavoris // @version 1.0 // @description Favoris pour JVP // @author Dieu // @require http://code.jquery.com/jquery-1.12.4.min.js // @match http://www.jeuxvideo.com/forums/* // @grant none // @updateURL https://openuserjs.org/src/scripts/Gilfoyle/JVPFavoris.user.js // @downloadURL https://openuserjs.org/src/scripts/Gilfoyle/JVPFavoris.user.js // @license MIT // ==/UserScript== var btnFav, topicId, titre; var favs = {}; // le script n'est pas intégré à jvp, on attend qu'il soit chargé $(window).on('load', function() { main(); }); function main(){ try{ topicId = window.location.href.split("-")[11]; titre = document.getElementById("bloc-title-forum").innerText; } catch(err){ topicId = undefined; titre = undefined; } ajouterBouton(); ajouterFavPage(); } function ajouterBouton(){ // on utilise cette fonction car le script n'est pas intégré à JVP, on peut pas accéder à la réponse de la reqûete au server jvp if ($(".conteneur-message-n4")[0]){ var crumb = document.createElement("div"); crumb.className = "options-crumb"; document.getElementsByClassName("fil-ariane-crumb")[0].appendChild(crumb); btnFav = document.createElement("span"); btnFav.className = "picto-favoris"; crumb.appendChild(btnFav); btnFav.addEventListener('click',ajouterFav); } checkTopicFav(); } function checkTopicFav(){ if (!localStorage.getItem("jvpfav")){ // on verif si il y a déjà des favoris return; } var favsJson = localStorage.getItem("jvpfav"); favs = JSON.parse(favsJson); if(favs.hasOwnProperty(topicId)){ btnFav.className = "picto-favoris-full"; btnFav.removeEventListener("click",ajouterFav); btnFav.addEventListener("click",supprimerFav); } } function ajouterFav(){ btnFav.className = "picto-favoris-full"; btnFav.removeEventListener("click",ajouterFav); btnFav.addEventListener("click",supprimerFav); favs[topicId] = titre; var favsJson = JSON.stringify(favs); localStorage.removeItem("jvpfav"); localStorage.setItem("jvpfav",favsJson); //liste favoris } function supprimerFav(){ btnFav.className = "picto-favoris"; btnFav.removeEventListener("click",supprimerFav); btnFav.addEventListener("click",ajouterFav); delete favs[topicId]; var favsJson = JSON.stringify(favs); localStorage.removeItem("jvpfav"); localStorage.setItem("jvpfav",favsJson); } function ajouterFavPage(){ var h4 = document.createElement("h4"); h4.className = "titre-info-fofo"; h4.innerHTML = "Sujets favoris JVP"; var sujetsfav = document.getElementsByClassName("liste-forums-preferes")[1] sujetsfav.parentNode.insertBefore(h4,sujetsfav.nextSibling); var ul = document.createElement("ul"); ul.className = "liste-forums-preferes"; ul.id = "liste-sujet-prefere"; h4.parentNode.insertBefore(ul,h4.nextSibling); for (var id in favs){ var li = document.createElement("li"); li.className = "line-ellipsis"; li.setAttribute("data-id", id); ul.appendChild(li); var a = document.createElement("a"); a.href = "//www.jeuxvideo.com/forums/0-51-0-1-0-1-0-blabla-18-25-ans.htm#jvp-" + id + "-1"; a.className = "lien-jv"; a.innerHTML = favs[id]; li.appendChild(a); } }