您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Separe le RP du HRP dans la section 'Derniers Sujets'.
// ==UserScript== // @name Séparation sujets // @namespace Dreadcast // @match https://www.dreadcast.net/Forum // @match https://www.dreadcast.net/Forum# // @match https://www.dreadcast.net/FAQ // @match https://www.dreadcast.net/FAQ# // @match https://www.dreadcast.net/Forum/* // @match https://www.dreadcast.net/FAQ/* // @version 2.2.5 // @author Aversiste, MockingJay, Odul, Pelagia // @description Separe le RP du HRP dans la section 'Derniers Sujets'. // @license http://creativecommons.org/licenses/by-nc-nd/4.0/ // @require https://update.greasyfork.org/scripts/507382/Dreadcast%20Development%20Kit.user.js // @grant GM_setValue // @grant GM_getValue // ==/UserScript== (() => { const DATA_TAG = 'ss_data'; let data; const initPersistence = () => { // Init persistent memory if needed. DC.LocalMemory.init(DATA_TAG, { hrp: 'on', rp: 'on', ecoreb: 'on', polreb: 'on', ecoimp: 'on', polimp: 'on', annonces: 'on', }); // Load the current settings. data = DC.LocalMemory.get(DATA_TAG); }; const isOnOrOff = (node, id) => { if (data[id] === 'on') { $('span.symbol:first', node).css('display', 'inline'); $('span.symbol:last', node).css('display', 'none'); $('ul', node).css('display', 'block'); } else { $('span.symbol:first', node).css('display', 'none'); $('span.symbol:last', node).css('display', 'inline'); $('ul', node).css('display', 'none'); } }; const addClickEvent = (node, id) => { $('h3', node).bind('click', () => { data[id] = $('.symbol:first', node).css('display') === 'none' ? 'off' : 'on'; DC.LocalMemory.set(DATA_TAG, data); }); }; const sortSection = (node, filter) => { $('li', node).each((i, el) => { var category = parseInt( $('a', el).attr('class').split(' ')[0].substring(2), 10, ); //En déduit la catégorie forum if (!filter.includes(category)) { el.remove(); } }); }; const createSectionNode = (orig, id, name, filter) => { var $node = orig.clone(true); $node.attr('id', id); sortSection($node, filter); $('h3.link span:last-child', $node).text( name + ` (${$('li', $node).length})`, ); isOnOrOff($node, id); $('#menu_droite').prepend($node); addClickEvent($node, id); }; //**************** //***DEBUT MAIN*** //**************** $(document).ready(() => { initPersistence(); var origList = $('#list_derniers_sujets'); // Récupération du div des derniers sujets const sections = [ { id: 'hrp', name: 'Derniers Sujets HRP', categories: [3, 4, 7, 8, 9, 10], }, { id: 'rp', name: 'Derniers Sujets RP', categories: [12, 13, 14, 15] }, { id: 'ecoreb', name: 'Matrice Rebelle', categories: [20] }, { id: 'polreb', name: 'Politique Rebelle', categories: [19] }, { id: 'ecoimp', name: 'Matrice Impériale', categories: [18] }, { id: 'polimp', name: 'Politique Impériale', categories: [17] }, { id: 'annonces', name: 'Annonces Officielles', categories: [2, 5] }, ]; //Clonage et tri des nouvelles catégories. Dans l'ordre inversé, car utilisation de prepend. sections.forEach(($section) => { createSectionNode( origList, $section.id, $section.name, $section.categories, ); }); origList.remove(); //Enlever la liste originale une fois le tri effectué. //Ne pas afficher une catégorie si elle est vide $('#menu_droite > div > ul').each(function () { if ($(this).text().trim() === '') { $(this).parent().css('display', 'none'); } }); }); })();