Topic de Blaff12 :

[Script] JVChat Premium

Le 17 avril 2026 à 19:02:38 captain_cid31 a écrit :
Pour l'instant, je peux vous laisser ça https://pastecode.io/s/gpsda1ia https://image.noelshack.com/fichiers/2026/16/5/1776385304-chouflesdonzelles.png

Jusqu'a present c'est la version la plus aboutie, ca le fait

Les ingénieurs du 18-25 ont-ils trouvé une solutions pour le script TopicLive ? :(

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 https://image.noelshack.com/fichiers/2026/16/5/1776385304-chouflesdonzelles.png

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 https://image.noelshack.com/fichiers/2026/16/5/1776385304-chouflesdonzelles.png

Jusqu'a present c'est la version la plus aboutie, ca le fait

oui, et je trouve l'intégration du bouton plus discrete

La version de Delphine était mieux https://image.noelshack.com/fichiers/2026/12/1/1773651962-9311b14b4e2833c39e2d58dadaeedde8.gif

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.

La version de randomax, marche pas sur violentmonkey + les citation sont pété
La version débug marche sur violentmonkey mais peut pas virer la barre de gauche et defilement auto vers le bas de page qui fait chier https://image.noelshack.com/fichiers/2026/12/1/1773651962-9311b14b4e2833c39e2d58dadaeedde8.gif
AYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOOOOOOOOOOOOOOOOOOOOOOOOOOO
le bouton risibank est où BORDEL
Je ne comprends pas à quoi sert l'option Afficher la prévisualisation par défaut, mais merci pour le boulot. https://image.noelshack.com/fichiers/2018/33/5/1534536686-93730-full.png

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 parfaitement

Il manque juste la fonctionnalité de modifier le message

??

Toast
EDIT

EDIT2 : Par contre, le tab qui envoie en premier sur "Annuler" la modif du message, c'est traitre https://image.noelshack.com/fichiers/2018/10/1/1520256134-risitasue2.png

Le 17 avril 2026 à 19:53:02 [Le_Magnifique] a écrit :

Le 17 avril 2026 à 19:39:18 :
Ma version jvchat marche parfaitement

Il manque juste la fonctionnalité de modifier le message

??

Test citations imbriquées

Le retour de deboucled vite :peur:

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

Données du topic

Auteur
Blaff12
Date de création
20 avril 2026 à 22:46:38
Nb. messages archivés
3767
Nb. messages JVC
3785
Voir le topic sur JVC

Afficher uniquement les messages de l'auteur du topic

En ligne sur JvArchive
JvArchive compagnon
Découvrez JvArchive compagnon, l'userscript combattant la censure abusive sur le 18-25 !