InscriptionConnexion
Pour
Niveau 10
les
Niveau 10
comme
Niveau 10
Niveau 10
Niveau 12
il y a 2 heures
Niveau 20
:riritas-gene:
il y a 2 heures
Niveau 10
Niveau 10
il y a 2 heures
Niveau 10
il y a 2 heures
Pour
Niveau 10
les
Niveau 10
comme
Niveau 10
Niveau 10
Ouais mais c'est super chiant faut cliquer à chaque fois pour lire.
:pepew:
il y a 2 heures
Niveau 10
Niveau 50
il y a 2 heures
Niveau 50
Niveau 10
il y a 2 heures
Ouais mais c'est super chiant faut cliquer à chaque fois pour lire.
:pepew:
Niveau 10
il y a 2 heures
Niveau 10
Niveau 125
il y a 2 heures
// ==UserScript==
// @name Onche.org Auto Balise [niveau]
// @namespace onche-auto-niveau
// @version 1.1
// @description Entoure automatiquement le message posté sur onche.org avec un niveau 10
// @match onche.org https://onche.org/*
// @run-at document-idle
// @grant none
// ==/UserScript==

(function () {
'use strict';

// ----------------- CONFIGURATION -----------------
const NIVEAU = 10;
const OPEN_TAG = `[niveau=${NIVEAU}]`;
const CLOSE_TAG = `[/niveau]`;
// ---------------------------------------------------

function alreadyWrapped(text) {
const trimmed = text.trim();
return trimmed.startsWith(OPEN_TAG) && trimmed.endsWith(CLOSE_TAG);
}

function wrapTextarea(textarea) {
if (!textarea || !textarea.value.trim()) return;
if (alreadyWrapped(textarea.value)) return;
textarea.value = `${OPEN_TAG}${textarea.value}${CLOSE_TAG}`;
// Certains frameworks JS (Vue/React) écoutent l'event "input" pour
// synchroniser leur état interne avec le textarea : on le déclenche
// pour être sûr que la vraie valeur envoyée soit bien la version taguée.
textarea.dispatchEvent(new Event('input', { bubbles: true }));
}

function handleForm(form) {
const textarea = form.querySelector('textarea.composer__textarea, textarea[name="message"]');
wrapTextarea(textarea);
}

// Cas 1 : soumission classique du formulaire (submit)
document.addEventListener(
'submit',
function (e) {
const form = e.target;
if (!(form instanceof HTMLFormElement)) return;
if (!form.classList.contains('composer')) return;
handleForm(form);
},
true // capture : on modifie AVANT que le formulaire ne parte
);

// Cas 2 : clic sur le bouton "Envoyer" (au cas où le submit est intercepté en JS)
document.addEventListener(
'click',
function (e) {
const btn = e.target.closest('button.composer__send');
if (!btn) return;
const form = btn.closest('form.composer');
if (form) handleForm(form);
},
true
);

// Cas 3 : raccourci clavier Ctrl+Entrée (affiché dans l'UI : "Ctrl ↵")
document.addEventListener(
'keydown',
function (e) {
if (!(e.ctrlKey && e.key === 'Enter')) return;
const textarea = e.target.closest('textarea.composer__textarea');
if (!textarea) return;
const form = textarea.closest('form.composer');
if (form) handleForm(form);
},
true
);
})();


Image
Niveau 10
il y a 2 heures
Onche : je deteste le système de niveau de JVC

Onche aussi :
il y a 2 heures
Niveau 10
Je clique plus, c'est relou.
:pepew:
il y a 2 heures
Niveau 7
:Chaditas2:
il y a 2 heures
Niveau 10
Niveau 10
il y a 2 heures
J'ai l'impression d'être Blacklist
:Eussou_globuleux_:
Franchement
Niveau 50

Niveau 50
il y a 2 heures
Niveau 10
quand même
Niveau 10
, faut
Niveau 10
par
Niveau 10
:Mockva_Chien_Bourdon:
Ce post a été rédigé par mon alter, l'Oberleutnant Ehrenberg, je n'en suis pas responsable
:Ehrenberg:
il y a 2 heures-PEMT
// ==UserScript==
// @name Onche.org Auto Balise [niveau]
// @namespace onche-auto-niveau
// @version 1.1
// @description Entoure automatiquement le message posté sur onche.org avec un niveau 10
// @match onche.org https://onche.org/*
// @run-at document-idle
// @grant none
// ==/UserScript==

(function () {
'use strict';

// ----------------- CONFIGURATION -----------------
const NIVEAU = 10;
const OPEN_TAG = `[niveau=${NIVEAU}]`;
const CLOSE_TAG = `[/niveau]`;
// ---------------------------------------------------

function alreadyWrapped(text) {
const trimmed = text.trim();
return trimmed.startsWith(OPEN_TAG) && trimmed.endsWith(CLOSE_TAG);
}

function wrapTextarea(textarea) {
if (!textarea || !textarea.value.trim()) return;
if (alreadyWrapped(textarea.value)) return;
textarea.value = `${OPEN_TAG}${textarea.value}${CLOSE_TAG}`;
// Certains frameworks JS (Vue/React) écoutent l'event "input" pour
// synchroniser leur état interne avec le textarea : on le déclenche
// pour être sûr que la vraie valeur envoyée soit bien la version taguée.
textarea.dispatchEvent(new Event('input', { bubbles: true }));
}

function handleForm(form) {
const textarea = form.querySelector('textarea.composer__textarea, textarea[name="message"]');
wrapTextarea(textarea);
}

// Cas 1 : soumission classique du formulaire (submit)
document.addEventListener(
'submit',
function (e) {
const form = e.target;
if (!(form instanceof HTMLFormElement)) return;
if (!form.classList.contains('composer')) return;
handleForm(form);
},
true // capture : on modifie AVANT que le formulaire ne parte
);

// Cas 2 : clic sur le bouton "Envoyer" (au cas où le submit est intercepté en JS)
document.addEventListener(
'click',
function (e) {
const btn = e.target.closest('button.composer__send');
if (!btn) return;
const form = btn.closest('form.composer');
if (form) handleForm(form);
},
true
);

// Cas 3 : raccourci clavier Ctrl+Entrée (affiché dans l'UI : "Ctrl ↵")
document.addEventListener(
'keydown',
function (e) {
if (!(e.ctrlKey && e.key === 'Enter')) return;
const textarea = e.target.closest('textarea.composer__textarea');
if (!textarea) return;
const form = textarea.closest('form.composer');
if (form) handleForm(form);
},
true
);
})();


Image
Je comprends que dalle en code quelqu'un explique
:Immondice:
Arrêtez de vous prendre trop au sérieux
:hap:
:noel:
il y a 2 heures-PEMT
Onche : je deteste le système de niveau de JVC

Onche aussi :
C'est pas du tout la même chose
:Immondice:
Arrêtez de vous prendre trop au sérieux
:hap:
:noel:
il y a 2 heures
Niveau 50

:Phoquequifume2:
il y a 2 heures
Niveau 50

:Phoquequifume2:
Niveau 10
Ce post a été rédigé par mon alter, l'Oberleutnant Ehrenberg, je n'en suis pas responsable
:Ehrenberg:
il y a 2 heures