Guest User

Untitled

a guest
Sep 6th, 2023
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name         Brouillon AVN
  3. // @namespace    http://tampermonkey.net/
  4. // @version      0.1
  5. // @description  try to take over the world!
  6. // @author       TVN
  7. // @match        https://avenoel.org/forum
  8. // @icon         data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
  9. // @grant        none
  10. // ==/UserScript==
  11.  
  12. (function() {
  13.     'use strict';
  14.  
  15.     const nb_brouillons_max = 10
  16.  
  17.     let brouillons
  18.     if (localStorage.getItem('brouillons') != null) {
  19.         brouillons = JSON.parse(localStorage.getItem('brouillons'));
  20.     }
  21.     else {
  22.         brouillons = {}
  23.     }
  24.     if (localStorage.getItem('brouillon_temp') != null) {
  25.         brouillons[Object.keys(JSON.parse(localStorage.getItem('brouillon_temp')))[0]] = Object.values(JSON.parse(localStorage.getItem('brouillon_temp')))[0]
  26.         localStorage.removeItem('brouillon_temp')
  27.         localStorage.brouillons = JSON.stringify(brouillons)
  28.     }
  29.  
  30.     let bool_autokill = false
  31.  
  32.     const link_brouillon = document.createElement("a")
  33.     link_brouillon.innerHTML = "Brouillon";
  34.     link_brouillon.setAttribute("class", "btn btn-danger")
  35.  
  36.     const state = document.createElement("span")
  37.  
  38.     document.querySelector('.preview-btn').after(link_brouillon)
  39.     link_brouillon.after(state)
  40.     constuct_brouillons()
  41.  
  42.     link_brouillon.addEventListener("click", brouillon);
  43.  
  44.     async function brouillon() {
  45.         if (document.querySelector('input[name="title"]').value.length < 3) {
  46.             alert('Le champ "titre" doit contenir au moins 3 caractères')
  47.         }
  48.         else if (document.querySelector('.post-content').value < 3) {
  49.             alert('Le champ "contenu" doit contenir au moins 3 caractères')
  50.         }
  51.         else {
  52.             add_brouillon()
  53.         }
  54.     }
  55.  
  56.     async function add_brouillon() {
  57.         const brouillon_temp = {};
  58.         brouillon_temp[document.querySelector('input[name="title"]').value] = document.querySelector('.post-content').value;
  59.         localStorage.brouillon_temp = JSON.stringify(brouillon_temp);
  60.         console.log(brouillon_temp);
  61.         if (state.innerHTML === "") {
  62.             state.innerHTML = "Brouillon ajouté" }
  63.         else {
  64.             state.innerHTML = "Brouillon mis à jour" }
  65.     }
  66.  
  67.     function constuct_brouillons() {
  68.         if (Object.keys(brouillons).length >= 1){
  69.             const label = document.createElement("label")
  70.             label.setAttribute("id", "label_brouillons")
  71.             const ul = document.createElement("ul")
  72.             ul.setAttribute("id", "ul_brouillons")
  73.             label.innerHTML = "Brouillons :";
  74.             document.querySelector('.preview').after(label, ul)
  75.             for (const [key, value] of Object.entries(brouillons)) {
  76.                 let li = document.createElement("li")
  77.                 let a = document.createElement("a")
  78.                 let a_supp = document.createElement("a")
  79.                 a.addEventListener("click", () => { toggle_brouillon(key, value) });
  80.                 a.setAttribute("href", "#")
  81.                 a.setAttribute("onclick", "return false")
  82.                 a.innerHTML = `${key}`
  83.                 a_supp.addEventListener("click", () => { supp_brouillon(li, key) });
  84.                 a_supp.setAttribute("href", "#")
  85.                 a_supp.setAttribute("onclick", "return false")
  86.                 a_supp.innerHTML = "Supprimer"
  87.                 li.append(a, " (", a_supp, ")")
  88.                 ul.append(li)
  89.             }
  90.         }
  91.     }
  92.  
  93.     function toggle_brouillon(key, value) {
  94.         document.querySelector('.post-content').value = value
  95.         document.querySelector('input[name="title"]').value = key
  96.     }
  97.  
  98.     function supp_brouillon(li, key) {
  99.         delete brouillons[key];
  100.         document.querySelector('#label_brouillons').remove();
  101.         document.querySelector('#ul_brouillons').remove();
  102.         constuct_brouillons()
  103.         localStorage.brouillons = JSON.stringify(brouillons);
  104.     }
  105. })();
Add Comment
Please, Sign In to add comment