Bon, je sais pas ou mettre mon truc donc je le mets la.

Alors comme j'en avais marre des icones (les bouquins ouverts / fermés) qui ne disent qu'un topic a été mis a jour que toutes les 3 heures au mieux, je me suis fait mon script JavaScript qui fait la vérification tout seul, a chaque chargement de page.

D'un naturel particulièrement généreux (en plus d'enjoué, intelligent, beau, et bien d'autre ...) je le mets a disposition des ceusses qui le veulent (avec l'autorisation du grand chef Grafikart ;) ).

Pour faire tourner le script:
Il vous faut le plugin Tampermonkey (chrome) ou Greasemonkey (Firefox). Vous vous débrouillerez ensuite pour le mettre en place, c'est pas compliqué. Notez que je le donne tel quel (par exemple je n'ai pas fait de tests sous firefox), mais que vous êtes entièrement, complètement et parfaitement libre d'en faire ce que vous voulez, et d'y apporter toutes les modifs que vous imaginez ...

Ce que le script fait en interne:
Il construit un objet JS (intelligemment ... brillamment, même, appelé GrafikartForum) et le stock en local storage. A chaque fois que vous visitez une page de topic, l'objet met a jour (ou créé) un attribut dont le nom est le numéro du topic, et la valeur est le timestamp actuel. Puis, lorsque vous êtes sur la page d'accueil du fofo, le script passe en revue les topics les plus récent, calcul le timestamp de leur dernier update, et le compare avec ce qu'il a en mémoire. Lorsque le dernier update est plus récent que la dernière visite, il vous le signal immédiatement.
Je rentre pas dans les détails plus que ça, ceux qui sont plus geek que les autres iront décortiquer le script (que je ne me suis pas trop embêter a annoter, d'ailleurs ...).
Attention: cela veut dire que la mémoire reste sur un seul ordinateur (c'est pas comme un script coté serveur). Il n'y a pas de synchro entre plusieurs PC, évidemment.

Ce qui change pour vous:

Lorsqu'un topic a été mis a jour:
  • La catégorie du topic en question est indiquée. Violemment. En rouge. Histoire que ça se voit bien.
  • La favicon et le titre changent (l'une devient rouge, l'autre se retrouve avec un piti losange devant)
  • Il y a une icone de commentaire rouge qui apparaît a droite (avec tout ca si vous manquez le nouveau topic ... je peux plus rien pour vous!)
En outre, lorsque le script tourne (que vous ayez des notifications ou pas) vous verrez aussi:
  • Un bouton 'Lu' qui apparait près du bouton 'ajouter un sujet' dans les pages catégories du fofo. Tous les topics de la page courante sont marqués comme lu si on le clique.
  • Un + qui apparaît a droite dans la page d'accueil du fofo. On peut lui cliquer dessus
  • Si qu'on lui clique dessus: le panneau des options apparaît (oui parce qu'il y a des options, aussi)

Les options:

  • [Vérifier toutes les 5 minutes]
    Si vous le voulez (c'est off par défaut), vous pouvez faire envoyer une requête en ajax toutes les 5 min pour vérifier les updates sans avoir a recharger la page. Vous pouvez ainsi épingler l'onglet au navigateur et laisser tourner l'ajax, vous verrez du coin de l'oeil la favicon devenir rouge s'il y a du nouveau. Ceux qui ne consultent le site que de temps en temps: laissez sur off.

  • [Garder l'affichage des icones]
    Par défaut: ne change pas les icones. Si vous décochez, alors tous les livres ouverts deviendront des livres fermés (ca me déconcentrait ces bouquins ouverts alors que j'avais déja lu les topics ... du coup vous pouvez tout fermer).

  • [Marquer tous les posts comme lu]
    Lui, on le clique si on veut marquer tous les posts comme lu ...

  • [Détruire le localStorage]
    Détruit l'objet GrafikartForum. Si dans 1 an vous avez accumulé 10 000 attributs dans cet objet, peut-être que ça sera une bonne idée de la régénérer grâce a ce lien ... mais en dehors de ca c'est pas forcément nécessaire d'y toucher.

Recommandations:
Comme je le disais, vous faites ce que vous voulez du script. MAIS: ne réduisez pas l'intervalle entre les requêtes ajax, sous peine de saturer le serveur (chaque vérification correspond a 35 requêtes http en quelques secondes), voire de vous faire black-lister par le pare-feu. C'est Graf' qui le dit ^^

Le script:
Grafikart Forum Enhancer : Ze link

Je ne cherche pas particulièrement a récolter vos avis (souvenez-vous: je ne suis motivé que par mes élans mécéniques), mais si vous avez des critiques, suggestions, ou éloges a me faire, ne vous privez pas non plus. Je ne garantie absolument pas d'y faire suite (SAV non inclu avec ce script), mais je ne suis pas obtus, et toujours curieux des avis des uns et des autres.

11 réponses


Je test sous chrome. Je te dirais si j'ai vu des bug ou pas. Merci pour le partage.

Tiens je croyais qu'on pouvait ajouter des script directement sous chrome, sans tempermonkey...

Sinon, super pratique car j'ai jamais compris les bouquins et je me fiais à la date du dernier post pour savoir s'il y avait du nouveau!
Jvais surement faire quelque retouche css pour qu'il soit à mon gout :D

Merci beaucoup, ça déchire!

EDIT : Voilou, ça ressemble à ça chez moi maintenant: http://i.imgur.com/dRsKRDB.png, encore merci!

J'ai l'impression que quand on décoche ne pas gardes les icones et qu'on fait machine arrière, il y a tout le style de la age qui pète. :) Je supprime le local storage et ça repart.

Vallyan
Auteur

@ull: Si tu parles des snippets (F12 > sources > snippets), il faut les lancer a la main pour qu'ils tournent. Tampermonkey lance mon script en auto sur les url qui correspondent a la regex que je lui donne. Par contre si tu ne parle pas de ca je suis curieux de connaitre ! Cool de partager tes modifs, sinon :), content que ce te soit utile.

@coloo: Pas réussi a reproduire ça en particulier, mais c'est vrai qu'il m'ai arrivé une ou deux foie de péter le css, bizarrement.Par contre simplement en rechargeant la page c'est bon, j'ai jamais eu a delete le localStorage ...

Sinon à part ça c'est super, dommage que ça arrive juste avant la refonte :'). Depuis octobre, je fais chier grafikart pour avoir une meilleure visibilité au niveau du forum. il manque juste l'alerte quand quelqu'un poste dans un topic ou on a participé :'). Mais bon j'y connais rien en js, j'ai juste changé un chouya le css qui me semble un peu agressif =)

Sinon à part ça c'est super, dommage que ça arrive juste avant la refonte

Mais de ce que j'ai compris dans le live de mercredi dernier, çava sortir dans un petit moment quand même, ça à le temps d'être utile ^^

Ma version modifiée du script: (en fait ya vraiment pas grand chose qui change, juste que j'ai ajouter une classe sur l'ensemble d'une row et non plus seulement sur le titre du sujet, puis je joue sur l'opacité)
https://dl.dropboxusercontent.com/u/17205493/GrafikartForumEnhancer.tamper.js

Waow.

Je suis bluffé par le boulot abbatu.
C'est vraiment super comme petit script, depuis le temps que j'attendais quelque chose de fiable pour me signaler les posts non lus (autre que de regarder l'heure lol)

Je l'ai installé, il ne me reste plus qu'à attendre des nouveaux posts pour voir le résultat :)
Merci pour le partage, la découverte du plugin Tampermonkey et ton envie de faire avancer ce forum !

Bravo pour ce script je viens de l'installer ainsi que le plugin Tampermonkey que je connaissais pas ;)

Merci

Vallyan
Auteur

Pour les alertes sur les topics ou on a participé, j'y avais pensé ... mais comme je regarde de toute façon tous les nouveaux posts, je n'ai pas tellement pris le temps de le faire (pas spécialement utile en ce qui me concerne).
Pour ceux que ca branche de le faire, il suffit de récupérer les numéro de topics de la page /forum/mes-participations, et lorsqu'il y a une update quelque part dans le forum, vérifier si le topic updaté est dans la liste des participations. Par contre il faut voir aussi que ca fait au moins une requête http en plus par checking (voire plus si vous voulez parcourir toutes les pages de vos participations), et que Grafikart va finir par nous jeter des pierres si on continue a flooder son serveur ;) ...

... et puis je vois pas quel type d'alerte supplémentaire je pourrais mettre dans le cas d'un update sur un topic auquel on a participé ... parce que a moins de mettre tout le background du body en rouge et de lancer une série d'alertes sonores façon cri du nazgul dans LOTR, c'est difficile d’être plus voyant que ce qui est déja fait :D !

Vallyan
Auteur

Pour ceux d'entre vous qui l'utilisent:

Suite au déterrage d'un vieux topic, le plugin a cessé de fonctionner. En effet comme vous pouvez le voir dans la barre d'url ci-dessus, les topic sont identifiés par leurs numéro (11529 pour celui-ci, par exemple). C'est ce numéro que j'utilise comme ID pour stocker les topic lus ou updatés. Or je faisais une regex de type \d{3,}, qui ne detecte donc que 3 chiffres. Le topic "POO et le coté performence", section PHP, est très vieux (topic #32) et vient de remonter, et fait planter le script vu que son ID n'a que 2 digits.

Vous pouvez remédier au problème en remplacant les occurences de

match(/\d{3,}/)[0]

par

match(/\d+/)[0]

Elles sont aux lignes suivantes du script (pour ceux qui n'y ont pas touché):
99, 120, 212, 275

J'ai aussi modifié le fichier mis a disposition depuis dropbox, et appelé la nouvelle version 0.2. Il est possible que TamperMokey fasse alors la mise a jour tout seul (?).
Sinon en vous rendant dans le dashboard, simplement cliquez sur la date de "Last Updated", il fera la mise a jour comme un grand :).

J'en ai profité pour corriger une faute d'orthographe (Marqué tous les forums comme lu -> Marquer tous les forums comme lu) :/ ...

Vallyan
Auteur

Bon, comme je suis d'humeur joyeuse, je suis resté sur ma lancé et j'ai encore ajouté deux autres trucs dans une version que j'ai remarquablement nommée la version 0.3 ...

  • Vous pouvez maintenant directement cliquer sur la bulle rouge (qui vous signale des sujets mis a jours) pour marquer tous les sujets comme lus. Cela a exactement le meme effet que le bouton "Marquer tous les sujets comme lu", mais ca vous évite d'avoir a ouvrir le volet des options.

  • J'ai aussi mis en place des notifications de bureau (comme le truc gmail qui vous dit que vous avez un mail). L'option est 'off' par défaut, lorsque vous la mettez sur 'on' la première fois, chrome vous demande si vous acceptez les notifs.
    Donc comme pour gmail: vous avez besoin d'avoir la page ouverte pour avoir la notification, mais elle marche meme si le navigateur est réduit (elle s'affiche sur le desktop, pas dans la fenetre). Elle disparait après 30 secondes, et revient a chaque verification ajax si vous avez coché cette option (cad: vérifier toutes les 5 min).
    De facon intéressante, l'icone dans la notif, elle, n'apparait qu'après quelques secondes ... si quelqu'un sait pourquoi et/ou comment y remédier, je suis prenneur !

Attention : il est necessaire de détruire la variable stockée en local storage après avoir chargé cette nouvelle version. Cela se fait a partir du lien présent dans le panneau des options.