NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name Forum Tool
// @namespace Anubys
// @version 0.0.7
// @description Divers outils pour la modération du forum.
// @author Anubys
// @copyright 2022, Anubys (https://openuserjs.org/users/Anubys)
// @license MIT
// @updateURL https://openuserjs.org/meta/Anubys/Forum_Tool.meta.js
// @downloadURL https://openuserjs.org/install/Anubys/Forum_Tool.user.js
// @match https://board.fr.ogame.gameforge.com/index.php?thread/*
// @match https://board.fr.ogame.gameforge.com/wcf/index.php?conversation/*
// @match https://board.fr.ogame.gameforge.com/wcf/index.php?conversation-add/&userID=*
// @match https://board.fr.ogame.gameforge.com/wcf/index.php?conversation/*/&messageID=*
// @match https://board.fr.ogame.gameforge.com/index.php?thread-add/*
// @match https://board.fr.ogame.gameforge.com/wcf/index.php?conversation-add/
// @grant none
// ==/UserScript==
(function () {
var NumberRank,
TeamPage;
function parseFunction(data) {
let DOMparser = new DOMParser();
TeamPage = DOMparser.parseFromString(data, "text/html");
NumberRank = TeamPage.querySelectorAll('.section.sectionContainerList');
// Si des rangs existent.
if (NumberRank) {
Anubys();
}
// On créé le bouton.
function Anubys() {
let button = document.createElement('select'),
doc = document.querySelector('.messageTabMenuNavigation.jsOnly > ul'),
k = 0;
button.style.background = '#708090';
button.style.height = '30px';
button.style.marginTop = '5px';
button.style.marginLeft = '15px';
doc.appendChild(button);
addOption("0", "Selectionnez le rang", button);
while (k < NumberRank.length) {
let Ranks = TeamPage.querySelectorAll('.section.sectionContainerList > .sectionHeader > .sectionTitle')[k].firstChild.textContent;
addOption(k + 1, Ranks, button);
k = k + 1;
}
// Evènement sur selection du bouton.
button.addEventListener("change", function () {
let selected = button.options[button.selectedIndex].value;
pseudo(selected - 1);
});
}
// Fonction pour création d'option sur un bouton select.
function addOption(optionName, optionText, selectElement) {
let newOption = document.createElement("option");
newOption.value = optionName;
newOption.innerText = optionText;
selectElement.appendChild(newOption);
}
function pseudo(Rank) {
let Board = document.querySelector('#redactor-uuid-0'),
NumberPseudo = TeamPage.querySelectorAll('.containerList.userList')[Rank].querySelectorAll('.username.userLink'),
Insert = Board.querySelectorAll('p'),
a = 0;
while (a < NumberPseudo.length) {
let pseudo = NumberPseudo[a].textContent,
Textbalise = document.createTextNode('@' + pseudo + ' ');
Insert[Insert.length - 1].appendChild(Textbalise);
a = a + 1;
};
}
}
// Réception de la page Team.
fetch('https://board.fr.ogame.gameforge.com/wcf/index.php?team/')
.then(response => response.text())
.then(data => parseFunction(data))
.catch(e => console.log('GOT ERROR : ' + e.message));
})();
// Vérification de l'URL.
var preview = document.querySelectorAll('.formSubmit'),
url = window.location.href,
WordUrl = String(url),
TestUrl = /thread-add/.test(WordUrl);
// Mise en place du bouton si le preview est présent et si la possibilité de lock l'est également.
if (document.querySelector('#buttonMessagePreview')) {
if (document.querySelector('[name=closeThread]')){
let button = document.createElement('button');
button.innerHTML ='Lock';
button.type ='button'; // Permet de ne pas activer le subit des autres bouttons du formulaire avec celui-ci
button.style.background ='#FF0000';
button.addEventListener('click', lock);
preview[preview.length - 1].append(button);
}
};
function lock() {
document.querySelector('[name=closeThread]').checked = true;
AutoSubmit();
}
function AutoSubmit(){
if (TestUrl){
if (document.querySelector('#buttonBeautify')){
let Beautify = document.querySelector('#buttonBeautify');
Beautify.click();
} else {
let submit = document.querySelector('.formSubmit').getElementsByTagName('input')[0];
submit.click();
}
} else if (document.querySelector('#buttonBeautify')){
let Beautify = document.querySelector('#buttonBeautify');
Beautify.click();
} else {
let submit = document.querySelectorAll('.buttonPrimary');
submit[1].click();
}
}