Le 17 avril 2026 à 19:02:38 captain_cid31 a écrit :
Pour l'instant, je peux vous laisser ça https://pastecode.io/s/gpsda1ia![]()
Jusqu'a present c'est la version la plus aboutie, ca le fait

Le 17 avril 2026 à 19:13:45 :
Le 17 avril 2026 à 19:10:10 Tartine__M6U a écrit :
Le 17 avril 2026 à 19:02:38 :
Pour l'instant, je peux vous laisser ça https://pastecode.io/s/gpsda1ia![]()
marche pas ce site si ?
Si ca fonctionne
ah oui c'est mon vpn, my bad.
Sonnet :
Points à corriger / améliorer
1. Race condition dans fetchNewMessages
Si le polling se déclenche avant que le cycle précédent soit terminé (réseau lent + intervalle de 6s), deux cycles peuvent tourner en parallèle et modifier this.lastPage en même temps. Un guard simple suffit :
jsasync fetchNewMessages() {
if (this._fetching) return;
this._fetching = true;
try {
// ... code existant
} finally {
this._fetching = false;
}
}
2. setInterval plutôt que le timer manuel
Le timer actuel recalcule elapsed toutes les 50ms pour animer le loader ET déclencher le refresh. C'est un peu fragile si le fetch prend plus de refreshRate, le loader dépasse 100%. Tu pourrais séparer l'animation du déclenchement, ou simplement réinitialiser lastRefresh après le fetch et non avant.
3. Fuite mémoire sur this.messages
Le tableau this.messages grossit indéfiniment. Sur un topic très actif, après quelques heures tu peux avoir des milliers d'entrées + leurs éléments DOM. Il faudrait éventuellement un cap (ex: 200 messages max) avec suppression des plus anciens du DOM.
4. parsePage utilise document en dur à un endroit
js// ligne dans parsePage :
const liveAnchors = document.querySelectorAll('.pagination .pagination__navigation a');
C'est du code de debug (dbg(...) juste après) mais si _DBG = false ce querySelector tourne quand même à chaque cycle. Ça ne casse rien mais c'est inutile en prod.
5. deleteMessage ne gère pas les erreurs réseau
jsasync deleteMessage(message) {
const response = await fetch(url, ...); // pas de try/catch
const result = await response.json();
if (result.errors.length > 0) { ... }
}
Si le fetch échoue, ça crash silencieusement. Même pattern que createMessage avec try/catch + this.jvcClient.alert(...).
6. addMessage : le fix JvCare est fait deux fois
Le fix JvCare est appliqué dans addMessage sur le DOM réel, puis refait dans le handler du bouton "Citer" sur un clone. C'est logique mais ça veut dire que si tu cliques "Citer" sur un message déjà fixé, le getElementsByClassName("JvCare") du clone retournera zéro éléments (déjà remplacés dans le DOM original). Le clone du DOM réel n'aura donc plus de JvCare à traiter ça marche, mais c'est fragile et contre-intuitif. Un commentaire explicatif serait bienvenu.
7. Pas de nettoyage à la fermeture
setInterval, MutationObserver, event listeners sur document (visibilitychange) ne sont jamais nettoyés. Si l'utilisateur ouvre/ferme JVChat plusieurs fois dans la même session (en rechargeant via le bouton), ça accumule les listeners. Soit tu empêches l'instanciation multiple, soit tu exposes une méthode destroy().
Petite suggestion UX
Quand un message est supprimé, tu gardes les boutons Citer et Éditer visibles (commentaire "MODIF PERSO"). Éditer un message supprimé va probablement retourner une erreur API tu pourrais masquer uniquement le bouton Éditer sur les messages supprimés et garder Citer.Le 17 avril 2026 à 19:16:23 :
Le 17 avril 2026 à 19:02:38 captain_cid31 a écrit :
Pour l'instant, je peux vous laisser ça https://pastecode.io/s/gpsda1ia![]()
Jusqu'a present c'est la version la plus aboutie, ca le fait
oui, et je trouve l'intégration du bouton plus discrete
j'ai un bug avec jvchat debug, a chaque fois que je l'active, ça me désactive l'affichage des avatars. je dois les recoucher dans la roue denteller d'option en haut
edit : bon j'ai mi a jour le script et ça semble refonctionner.
Ma version jvchat marche parfaitement
Il manque juste la fonctionnalité de modifier le message
Le 17 avril 2026 à 19:39:18 :
Ma version jvchat marche parfaitementIl manque juste la fonctionnalité de modifier le message
??
Le 17 avril 2026 à 19:53:02 [Le_Magnifique] a écrit :
Le 17 avril 2026 à 19:39:18 :
Ma version jvchat marche parfaitementIl manque juste la fonctionnalité de modifier le message
??
Test citations imbriquées

Comment installer le nouveau JVChat svp les kheys ? J'ai vu le code mais je ne sais pas comment faire (désolé j'y connais rien)
Faut l'insérer dans Tapermonkey ?
Le 17 avril 2026 à 20:07:44 CelibAguerri a écrit :
Comment installer le nouveau JVChat svp les kheys ? J'ai vu le code mais je ne sais pas comment faire (désolé j'y connais rien)Faut l'insérer dans Tapermonkey ?
Oui c'est ça
Le 17 avril 2026 à 20:07:44 CelibAguerri a écrit :
Comment installer le nouveau JVChat svp les kheys ? J'ai vu le code mais je ne sais pas comment faire (désolé j'y connais rien)Faut l'insérer dans Tapermonkey ?
Oui, creer nouveau script, coller dans l'editeur (en n'oubliant pas d'effacer le texte generique), et enregistrer
Afficher uniquement les messages de l'auteur du topic