NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name ValidationNouveauxBouton // @namespace http://tampermonkey.net/ // @version 0.1 // @description Permettre de valider des nouveaux avec un seul bouton sur Xooit (Premier script) // @author Alexray // @match https://www.creepypastafromthecrypt.com/* // @grant none // @license MIT // @copyright 2019, Hyorvenn (https://openuserjs.org/users/Hyorvenn) // @noframes // ==/UserScript== (function () { 'use strict'; /** * Indique si la page courante est une présentation */ function est_page_de_presentation() { let regex = /<!-- google_ad_section_start -->Présentation/; return regex.test(document.documentElement.innerHTML); } /** * Ajoute le bouton sous le titre du topic. * @param {input} bouton le bouton à ajouter */ function ajoute_bouton_a_la_page(bouton) { document.getElementsByClassName("maintitle")[0].parentNode.appendChild(bouton); } /** * Retourne le nom de l'auteur du topic courant. */ function get_pseudo_OP() { return document.getElementsByClassName("name")[0].textContent; } /** * Change la localisation pour la page de gestion des groupes. */ function ouvrir_page_de_groupe() { return window.open("https://www.creepypastafromthecrypt.com/groupcp.php?g=5"); } /** * Crée un bouton de validation de membre. */ function creer_bouton_de_validation() { var bouton = document.createElement("input"); bouton.setAttribute("class", "valide_compte_button"); bouton.setAttribute("type", "button"); bouton.setAttribute("value", "Valider le compte"); bouton.setAttribute("name", "bouton_validation_nouveau"); // button CSS bouton.style = "color: white; background-color: #222222; padding: 1em; border-color: #333333; border-radius: 1em;"; var css = '.valide_compte_button:hover{ cursor: pointer; }'; var style = document.createElement('style'); if (style.styleSheet) { style.styleSheet.cssText = css; } else { style.appendChild(document.createTextNode(css)); } document.getElementsByTagName('head')[0].appendChild(style); bouton.addEventListener("click", function () { pseudo = get_pseudo_OP(); popup = ouvrir_page_de_groupe(); }); return bouton; } function est_page_de_groupes() { return /https:\/\/www.creepypastafromthecrypt.com\/groupcp.php/.test(window.location); } /** * Ecrit le pseudo dans le formulaire d'ajout de membre à un groupe * @param {string} pseudo */ function rentrer_pseudo_dans_formulaire(pseudo) { let input_pseudo = document.querySelector("input.post"); input_pseudo.value = pseudo; } /** * Valide le formulaire d'ajout de membre à un groupe */ function valider_formulaire_ajout_membre() { let ajouter_membre_input = document.querySelectorAll("input[value='Ajouter le Membre']")[0]; ajouter_membre_input.click(); } /** * Valide le membre dont le pseudo est passé en argument. * @param {string} pseudo_nouveau Le pseudo du membre à valider. */ async function valider_nouveau(pseudo_nouveau) { rentrer_pseudo_dans_formulaire(pseudo_nouveau); valider_formulaire_ajout_membre(); window.opener.postMessage("finished"); } var popup = null; var pseudo = ""; var done = false; var message function receiveMessage(event) { message = event.data; if (!done && message == "loaded") { popup.postMessage(pseudo); done = true; } if (done && message == "finished") { window.location.reload(); } if (est_page_de_groupes() && window.opener != window) { valider_nouveau(message); } } if (est_page_de_presentation()) { let bouton = creer_bouton_de_validation(); ajoute_bouton_a_la_page(bouton); } window.addEventListener("message", receiveMessage, false); window.opener.postMessage("loaded"); })();