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");
})();