Pimp my Numerama avec des userscripts đź’«

numeramhack
userscript
Tags: #<Tag:0x00007f92117f1fe8> #<Tag:0x00007f92117f1e58>

#41

Signalé depuis l’ouverture de cette version du site il y a plus d’un an…


#42

C'est ce quon doit appelé le web 2.0
Par contre, sur mon ordinateur, le site marche très bien

Un peu lent peut être, parce 12.000 lignes de code HTML pour afficher une page de texte, ça rame un peu sur un 6502 à 1 MHz, mais on y arrive.

Sans même compter les CSS et images, le pur code HTML fait 656 Ko, soit 20 fois la capacité de la RAM de ce PET.


#43

Même avec le bookmarklet en 1 je ne vois pas les premières lignes. Je n’arrive pas à savoir si c’est dû à notre version maintenant bien obsolète de plusieurs mois ou autre chose :confused:.

Le navigateur de cette capture est Firefox sous Android.

Plusieurs discussions parlent de problèmes plus ou moins similaires mais elles datent de 2015 et devraient être incluses dans notre installation Discourse (les différentes captures ne correspondent pas à ce que je vois en forçant l’apparence originale du forum).




#44

Je pensais que c'était une blague ou une exagération alors j'ai vérifié et en fait il y en avait 12 449 ^^.


#45

656 Ko de code HTML (sans compter les CSS et les images) pour afficher environ 4 Ko de texte.
Soit grosso modo 150 octets pour afficher 1 seul caractère.

Sur les mobiles, non seulement ça s'affiche mal, mais en plus ça s'affiche lentement.


#47

Nouvelle version de Discourse Vanilla v2.0, on utilise désormais Safe Mode pour ne plus subir la CSS qui mange plus de 50 % de la largeur de la page, l'astuce du ?preview-style= ne fonctionnant plus avec les mises à jour récentes. Certaines propriétés ne sont pas remises à zéro (on a perdu en largeur et le fond de la page est gris), je modifierai ça bientôt mais en tout cas c'est plus facile à faire sur des bases plus saines.

Bookmarklet correspondant :

javascript:(function()%7Bvar%20append%20%3D%20%22safe_mode%3Dno_custom%252Conly_official%22%3Bif%20(location.toString().indexOf(append)%20%3C%200)%20%7Bif%20(location.toString().indexOf(%22%3F%22)%20%3E%20-1)%20%7Bappend%20%3D%20%22%26%22%20%2B%20append%3B%7D%20else%20%7Bappend%20%3D%20%22%3F%22%20%2B%20append%3B%7Dlocation.replace(location%20%2B%20append)%3B%7D%7D)()

#48

À la demande générale de @johndo1, voici un userscript redirigeant vers les pages avec Javascript désactivé sur le Discourse de Numerama : https://code.numeramhack.fr/userscripts/numerama-discourse-no-js.user.js :partyparrot:


#49

\o/
…

(merci :slight_smile:)


#50

Follow-up du message de @T82135 : c'est cette remontée d'erreur là chez Greasemonkey, que les développeurs ne comptent pas corriger vu que ça ne pourra plus arriver avec la nouvelle version de l'addon sur laquelle ils travaillent.
Ce sera corrigé demain dans les deux scripts.


Numerama Discourse Vanilla corrigé en 2.2, Purity avait déjà le correctif fortuitement.


#51

Merci pour la mise Ă  jour !


#52

Nouvelle version de Purity v1.14.4 :

  • ajout d'un lien cliquable en bas de page intitulĂ© "Numerama Purity configuration Ă—" juste au niveau du lien vers les mentions lĂ©gales, afin de permettre aux utilisateurs de Firefox sous Android avec Tampermonkey de pouvoir accĂ©der au menu de configuration alors que GM_registerMenuCommand n'est pas fonctionnel (rĂ©solu avec Firefox 57 normalement).
  • dans l'interface pour signaler une erreur dans un article, tout le texte est cliquable maintenant, notamment les titres <h2> (merci Ă  @Guss de m'avoir rappelĂ© ce problème irritant dans ce message).

#53

Nouvelle version de Purity v1.15.0 pour gérer cette mise en prod’ pour avoir le lien direct vers les commentaires (sans passer par #commentaires).
Dans la foulée, une v1.15.1 pour corriger le script sur les pages de report d’erreurs dans le texte d’un article et aussi rendre sélectionnables les sous-titres <h3>.


#54

Je signale qu'avec Firefox 57 (GNU/Linux), le script Discourse Vanilla fonctionne avec Tampermonkey mais pas avec GreaseMonkey.


#55

Merci du retour, il s’agit de ce changement https://www.greasespot.net/2017/09/greasemonkey-4-for-script-authors.html

Le problème c’est que Greasemonkey a décidé de casser tous les scripts existants (sauf ceux avec // @grant none, la belle affaire), on se repose notamment sur GM_config pour avoir un menu pratique à utiliser qui lui-même utilise des // @grant GM_* de GreaseMonkey v3. Le polyfill qu’ils proposent implique quand même de modifier tous les appels à GM.* en asynchrone…

L’alternative viable c’est ViolentMonkey où les scripts fonctionnent sans modification sans dégradation de fonctionnalité.

Si tu souhaites rester avec GreaseMonkey v4 tu peux installer cette version spéciale qui ne fait que rediriger vers safe_mode=no_custom%2Conly_official et rajoute la CSS pour cacher le bloc d’avertissement vis-à-vis du “mode sans échec” de Discourse, sans aucune option personnalisable et redirection vers HTTPS. Ça écrasera la précédente version.


#56

Merci pour les précisions.
ViolentMonkey est un fork de GreaseMonkey ?

Pour ceux qui ne connaissent pas, TamperMonkey est sous une licence un peu spéciale, non libre. GreaseMonkey et ViolentMonkey sont sous licence MIT/X11.

Je passe Ă  ViolentMonkey du coup.


#57

Il ne me semble pas que ViolentMonkey ait jamais été basé sur GreaseMonkey (premier commit), mais il implémente les mêmes API que GreaseMonkey v3. Pour migrer de l’un vers l’autre il s’agit de faire un zip et de l’importer dans les préférences : https://github.com/violentmonkey/violentmonkey/issues/115


#58

Nouvelle version de Purity v15.1.2, avec différentes améliorations pour le signalement d’erreurs dans les articles :

  • meilleure gestion du clic sur le bouton PrĂ©cĂ©dent pour rendre sĂ©lectionnables plus d’élĂ©ments après avoir soumis le formulaire une première fois notamment, meilleure gestion de la dĂ©tection de changement d’étape
  • après envoi d’un message, le menu retourne Ă  l’étape 1 de sĂ©lection des paragraphes après un dĂ©lai de 5 secondes
  • quelques optimisations (minimum de requĂŞtes pour avoir l’email correspondant au compte authentifiĂ© sur Discourse)

Et puis une v15.1.3 pour corriger un vieux bug sur l’affichage du nombre de notifications depuis une mise à jour du Discourse.


#59

Nouvelle version de Discourse Vanilla v2.3 :


#60

“shittytitles” :joy:
Merci pour le boulot :+1:


#61

Nouvelle version de Discourse Vanilla v2.4 :

  • le titre d'une page avec un "Commentaires : " Ă  la con © n'est plus remis avec cet ajout de merde quand elle perd le focus (visible avec Ctrl+Tab)
  • on prend en charge le changement de titre Discourse en cas de notification (titre commençant par (1)) pour continuer Ă  supprimer les "Commentaires : ", sans perdre le (1) en dĂ©but de titre pour autant
  • on ne se base plus sur une vieille API JS de Discourse en fin de vie pour dĂ©tecter le changement de page (via le changement de titre de la page maintenant)
  • un peu de factorisation et d'optimisation du code
  • on corrige aussi dĂ©sormais le chemin d'un sujet avec "Commentaires : " Ă  la con dans l'URL
    • il n'y a pas de moyen de dĂ©tecter un changement d'URL via history.pushState (popstate n'a lieu qu'avec les boutons PrĂ©cĂ©dent/Suivant de l'historique) donc on on vĂ©rifie (et Ă©ventuellement remplace) l'URL (avec history.replaceState, afin d'Ă©craser l'entrĂ©e actuelle de l'historique) de façon agressive toutes les 100 ms. Ce serait Ă  amĂ©liorer puisque c'est un peu disgracieux (durant le scroll de sujets longs, pour reflĂ©ter l'endroit dans lequel on est dans le sujet, Discourse appelle replaceState() — lui aussi :wink: — rĂ©gulièrement pour afficher une nouvelle URL vers un message donnĂ©, avec commentaires- dans le chemin, ce qui est ensuite annulĂ© dans les 100 ms, mais ça reste visible Ă  l'Ĺ“il) et mĂŞme si j'ai fait en sorte de ne pas utiliser d'expression rĂ©gulière plus gourmande, j'ai l'impression que les performances s'en ressentent un peu. Peut-ĂŞtre que ce sera supprimĂ© dans une prochaine version donc.