Ceci est une archive de l'ancien forum de Numerama. Il n'est plus accessible. Vous êtes probablement arrivés ici par erreur. Cliquez ici pour revenir sur la page d'accueil.

Pimp my Numerama avec des userscripts :dizzy:

liolfil le 22/06/2016 à 13:06

Aujourd’hui c’est la sortie de beta de deux scripts que j’ai faits il y a bien quelques mois maintenant pour rendre bien plus fonctionnel ce magnifique site :

Numerama Purity

S’exécute sur la partie Wordpress du site (les articles), il tire son nom de F.B. Purity et dispose de fonctions bien pratiques, paramétrables via le menu de Greasemonkey :

  • Accès direct aux commentaires sur Discourse
  • Désactivation du défilement infini (inifinite scroll)
  • Suppression des articles inclus
  • Suppression des articles liés en pied d’article
  • Suppression des Who’s who en fin d’article
  • Suppression du formulaire d’inscription à la lettre d’information
  • Suppression des boutons de partage sur les réseaux sociaux
  • Autocomplétion email dans le formulaire de signalement d’erreurs

Numerama Discourse Vanilla

Comme son nom l’indique, s’exécute sur la partie Discourse de Numerama.

Il rend le forum enfin utilisable en forçant l’affichage du skin par défaut de Discourse sans les personnalisations de Numerama.


Pour les réfractaires à l’installation d’un userscript, voici un bookmarklet (manuel donc) :

javascript:(function()%7Bvar%20append%20%3D%20%22preview-style%3Dbe6b9932-2358-4de7-b7ed-974e57df4cd4%22%3Bif(location.toString().indexOf(append)%20%3C%200)%7Bif(location.toString().indexOf(%22%3F%22)%20%3E%20-1)%7Bappend%20%3D%20%22%26%22%2Bappend%3B%7Delse%7Bappend%20%3D%20%22%3F%22%2Bappend%3B%7Dlocation.replace(location%2Bappend)%3B%7D%7D)()

Changelog

  • 22/06/2016 : sortie de beta, Purity v1.3, Discourse Vanilla v1.1.
  • 23/06/2016 : Purity v1.4, avec suppression des articles inclus et des articles liés en pied d’article. Les options cosmétiques sont maintenant désactivées par défaut (à éventuellement ré-activer lors d’une mise-à-jour)
  • 26/06/2016 : Purity v1.5, autocomplétion email dans formulaire de signalement d’erreurs
  • 10/07/2016 : Purity v1.6, suppression section Who’s who en fin de certains articles
  • 27/08/2016 : ajout d’un bookmarklet en alternative au userscript Discourse Vanilla
  • 30/08/2016 : Purity v1.7, option d’ouverture des liens externes dans l’onglet courant
  • 02/09/2016 : Purity v1.8, suppression boutons de partage sur réseaux sociaux, du formulaire d’abonnement à la lettre d’information, nettoyage de code

Installation

Nécessite Greasemonkey pour Firefox et Tampermonkey pour Chrome/ium.
Une fois l’extension rajoutée, il vous suffit d’un clic sur le .user.js qui vous intéresse et de cliquer sur “Installer”. Il est nécessaire de recharger les pages de Numerama concernées pour que le(s) script(s) s’y exécute(nt). Ces deux scripts se mettent automatiquement à jour.

Retours et demandes de fonctionnalités

N’hésitez pas à demander de nouvelles fonctions et des améliorations dans ce sujet. :thumbsup:
Les demandes de support et rapports de bugs peuvent se faire ici aussi.

BigBisous le 22/06/2016 à 14:31

Sympa les scripts :slight_smile:

BigBisous le 22/06/2016 à 15:13

Tu fais dans le phishing toi ?
https://code.numeramhack.fr/phishingkits/

liolfil le 22/06/2016 à 15:26

Non, mais je trouve ça intéressant : https://code.numeramhack.fr/phishingkits/README.txt

BigBisous le 22/06/2016 à 15:32

OK, j'avais pas vu le readme :wink:

johndo1 le 22/06/2016 à 15:44

Génial ! Merci.

:thumbsup:

dev_tty le 22/06/2016 à 21:21

Merci.

liolfil le 23/06/2016 à 10:23

Nouvelle version 1.4 de Purity permettant de cacher les articles inclus dans le texte (exemple à la fin de celui-ci) ainsi que les articles liés en pied d’un article.

N’hésitez pas à me demander de cacher d’autres éléments sur les pages des articles (sauf la pub, il y a des extensions pour ça).

liolfil le 26/06/2016 à 19:16

Nouvelle version 1.5 de Purity permettant de compléter automatiquement l'adresse email dans le formulaire de signalement des erreurs avec celle configurée dans votre compte Discourse.

liolfil le 10/07/2016 à 19:33

Nouvelle version 1.6 de Purity permettant de cacher la section Who's who proéminente sous certains articles.

Neuro le 10/07/2016 à 22:29

Y’ a un truc que je comprends pas avec Discourse : on ne peut pas répondre dans un sujet sans mentionner une personne (répondre à un autre membre) ? Je vois pas de bouton répondre en bas des sujets. ???

liolfil le 10/07/2016 à 23:47

A priori faut répondre au premier message du sujet. C’est peut-être la seule fonctionnalité utile perdue avec Vanilla Discourse.
Je vois sur le forum de Korben qu’il y a un bouton répondre à la fin d’un sujet et sur le côté droit, sans doute parce que c’est une version plus à jour de Discourse. Ils sont en 1.6.0.beta10, on est en 1.5.1 (meta.discourse.org est en 1.6.0.beta10 aussi). Discourse 1.6 arrive en version stable fin juillet, un peu de patience le temps que Numerama soit mis à jour ensuite et on aura ça aussi je pense.

Neuro le 11/07/2016 à 11:10

Ok merci pour l' explication. :slight_smile:

Arvil2 le 17/08/2016 à 10:37

Ton sujet m’était passé sous le nez, je viens de le découvrir et ça marche du tonnerre ! Merci

T82135 le 17/08/2016 à 15:55

Peut-on modifier le css de la page directement avec greasemonkey ?

J'essaie d’obtenir un thème plus sombre un peu comme ici :

https://meta.discourse.org/t/its-a-dark-theme/15662
https://meta.discourse.org/t/really-simple-and-neat-dark-theme/46900

car je trouve le thème de base trop lumineux et pas assez contrasté.

J'ai fait quelques tests avec l'extention "Stylish" pour firefox, mais si je peux éviter de multiplier les extensions, ça m'arrange.

Arvil3 le 19/08/2016 à 14:32

Je sais que tu as dit que tu ne souhaitais pas cacher les pubs en vertu des extensions qui existent pour ça, en revanche serais-tu d’accord pour qu’on réutilise et modifie ton script, notamment pour cacher les “Articles liés” (le premier est maintenant une redirection cachée vers les autres sites d’Humanoid, et les autres sont en général des actus dépassées de plusieurs mois/années, et dont les titres sont souvent clickbait, pardon, servent à attirer l’utilisateur vers un contenu de qualité).

liolfil le 19/08/2016 à 16:46

Bonne idée je vais voir aujourd’hui @T82-135. Tu voudrais un menu (voir ci-dessous) avec un text-area pour y coller du CSS peut-être ? Tu pourrais me passer un CSS fonctionnel avec Stylish éventuellement s’il te plaît ?

C’est une option désactivée par défaut. Il faut cliquer sur le menu de Greasemonkey quand on est sur le Wordpress, puis sur Raccourcis du Script... puis Numerama Purity Config, et cocher l’option Disable links to related articles in footer. Recharger la page pour voir le changement.
Les raisons pour lesquelles j’ai rajouté cette option sont la plupart de celles dont tu parles (mais surtout parce que mon point d’entrée pour lire des articles c’est le forum et mes flux RSS).

Arvil3 le 19/08/2016 à 19:43

Owww je vois que tu as pensé à tout, merci !

T82135 le 20/08/2016 à 07:53

Je n'ai pas de CSS totalement adapté pour l'instant et vu que je ne connais rien dans le domaine, ça va me prendre un peu de temps.

Si un menu de ce type est simple a faire, oui ce serait parfait.
Ou sinon simplement intégrer le css dans le script.

Le look avec le style que j'ai récupéré sur le forum discourse :

Il faut encore corriger la couleur de certaines polices et zones du corps de page.

}
body
{
    background-color: #000000; 
    }

.topic-list {
    background: rgba(25, 25, 25, 0.9) 
}

.topic-list th {
    background: #222222;
    border-bottom: none
}

.nav-pills>li.active>a, .nav-pills>li>a.active {
    color: #dfdfdf;
    font-weight: 500;
    background-color: transparent; //matches main bg color
    border-bottom: 3px solid #9EB83B;
}
.logo-small, .logo-big {
    max-height: 60px !important;
    margin-top: -8px;
}
.topic-list>tbody>tr:first-of-type {
    border-top: 2px solid #9EB83B;
}
a.mention, a.mention-group {
    padding: 2px 4px;
    color: #000;
    background: #C0C0C0;
    border-radius: 5px;
    font-weight: bold;
    font-size: .93em;
}
#topic-closing-info {
    border-top: transparent;
    padding-top: 10px;
    height: 20px;
}

/*buttons*/

.list-controls .btn {
    float: right;
    margin-left: 8px;
    margin-bottom: 10px;
    font-size: 1.143em;
    font-weight: normal;
    background-color: #9EB83B;
}

/*Polls for dark themes*/

div.poll li[data-poll-option-id][data-poll-selected="selected"] {
    background: green !important;
}
div.poll .results .bar-back {
    background: grey;
}

/* topic post */
.topic-body {
    margin-top: 2px;
    margin-bottom: 1px;
    border: 1px solid #191919;
    background: rgba(25, 25, 25, 0.9)
}
/*Names*/
.names span.first {
    font-size: 1.02em;
}
/*admin borders*/
.admin-controls .nav.nav-pills li.active a {
    border-color: #9EB83B;
    background-color: transparent;

}
liolfil le 21/08/2016 à 17:32

Voici ce que j’ai pour l’instant, je n’en fais pas une release puisque ça risque de changer. Si tu arrives à un beau skin sombre il sera inclus dans un menu déroulant, on peut imaginer aussi une option qui change l’apparence claire/sombre en fonction de l’heure de la journée.
Tu as donc un menu accessible avec cette même manipulation mais en étant sur Discourse permettant de coller de la CSS. Cliquer sur Save recharge la page avec tes modifications.

// ==UserScript==
// @name        Numerama Discourse Vanilla
// @namespace   liolfil
// @include     http://numerama.com/discussions/*
// @exclude     http://numerama.com/discussions/*.json*
// @exclude     http://numerama.com/discussions/*.css*
// @exclude     http://numerama.com/discussions/*.js*
// @exclude     http://numerama.com/discussions/uploads/*
// @exclude     http://numerama.com/discussions/*.png*
// @include     http://www.numerama.com/discussions/*
// @exclude     http://www.numerama.com/discussions/*.json*
// @exclude     http://www.numerama.com/discussions/*.css*
// @exclude     http://www.numerama.com/discussions/*.js*
// @exclude     http://www.numerama.com/discussions/uploads/*
// @exclude     http://www.numerama.com/discussions/*.png*
// @require     https://raw.githubusercontent.com/sizzlemctwizzle/GM_config/master/gm_config.js
// @run-at      document-start
// @version     1.2preview
// @updateURL   https://code.numeramhack.fr/userscripts/numerama-discourse-vanilla.user.js
// @downloadURL https://code.numeramhack.fr/userscripts/numerama-discourse-vanilla.user.js
// @grant       GM_getValue
// @grant       GM_setValue
// @grant       GM_registerMenuCommand
// @grant       GM_log
// @grant       GM_addStyle
// ==/UserScript==

var append = "preview-style=be6b9932-2358-4de7-b7ed-974e57df4cd4";
if(location.toString().indexOf(append) < 0){
    if(location.toString().indexOf("?") > -1){
        append = "&"+append;
    }else{
        append = "?"+append;
    }
    location.replace(location+append);
}

GM_registerMenuCommand('Numerama Discourse Vanilla Config', function(){
    GM_config.open()
});

GM_config.init({
    'id': 'GM_config', // The id used for this instance of GM_config
    'title': 'Numerama Discourse Vanilla configuration', // Panel Title
    'fields': // Fields object
    {
        'customCSS': // This is the id of the field
        {
            'label': 'Custom CSS', // Appears next to field
            'type': 'textarea', // Makes this setting a text field
            'default': '/* Enter your custom CSS here */' // Default value if user doesn't change it
        },
    },
    'events': // Callback functions object
    {
        save: function(values) {
            document.location.reload();
        }
    },
    'css': '#GM_config_field_customCSS {height:75%;width:100%;}'
});

var css = GM_config.get('customCSS');

if (typeof GM_addStyle != "undefined") {
    GM_addStyle(css);
} else if (typeof PRO_addStyle != "undefined") {
    PRO_addStyle(css);
} else if (typeof addStyle != "undefined") {
    addStyle(css);
} else {
    var node = document.createElement("style");
    node.type = "text/css";
    node.appendChild(document.createTextNode(css));
    var heads = document.getElementsByTagName("head");
    if (heads.length > 0) {
        heads[0].appendChild(node); 
    } else {
        // no head yet, stick it whereever
        document.documentElement.appendChild(node);
    }
}
liolfil le 27/08/2016 à 13:31

J’ai cette CSS trouvée sur discuss.moe qui fonctionne.

html { background-color: #1B1B1B !important; }
  /*html broke panel fixing*/ html, .user-main > .has-background > *, #user-card > * { filter: invert(100%) hue-rotate(180deg); -webkit-filter: invert(100%) hue-rotate(180deg); }
  img, video, .ytp-thumbnail, .lazyYT-image-loaded, .user-main > .has-background, #user-card, iframe[src*="gfycat.com"], iframe[src*="soundcloud.com"], header.main-header { filter: invert(100%) hue-rotate(-180deg); -webkit-filter: invert(100%) hue-rotate(-180deg); }
  /*fix to position:fixed*/ #reply-control { position: sticky; top: 0px; z-index: 1000; }
  /*header > div, #topic-progress-wrapper, .timeline-container { position: sticky; top: 0px; z-index: 999; }*/

Elle casse le site quand on veut répondre à un message (le panneau de rédaction du message se retrouve en haut de la page au lieu d’être fixé en bas de la fenêtre, le bandeau n’est plus fixé en haut de la fenêtre) avec Firefox et est très consommatrice de ressources (elle inverse toutes les couleurs du site) par contre.


Changelog : Ajout d’un bookmarklet pour les réfractaires à l’installation d’un userscript pour Discourse.

T82135 le 27/08/2016 à 13:40

Merci, ça marche bien.
J’ai pas eu le temps de bidouiller le CSS cette dernière semaine, mais je vais continuer à essayer d’obtenur quelque chose de plus fonctionnel.

liolfil le 30/08/2016 à 08:29

Nouvelle version 1.7 de Purity permettant de forcer les liens (externes) à s'ouvrir dans le même onglet ou fenêtre (attribut target="_blank"). Option désactivée par défaut.

liolfil le 02/09/2016 à 16:32

Nouvelle version 1.8 de Purity permettant de supprimer le formulaire d’inscription à la lettre d’information et les boutons de partage sur les réseaux sociaux en bas de page d’article (options désactivées par défaut). Sauvegarder vos paramètres recharge la page courante désormais pour apprécier immédiatement et automatiquement la modification de vos préférences (même chose que ce script). Quelques améliorations dans le code du script par ailleurs.

liolfil le 16/09/2016 à 17:16

Sortie de Purity version 1.9 !
Votre email et pseudo sont désormais auto-complétés aussi sur les formulaires de contact (/contact et /a-propos) si vous avez coché l'option idoine.
Je compte par ailleurs améliorer le formulaire de signalement des erreurs dans les articles pour qu'il soit vraiment plus pratique à utiliser, à suivre. :slight_smile:

liolfil le 08/10/2016 à 21:28

Voici Purity 1.11

Au programme :

  • correction d'un bug avec l'option pour ouvrir les liens externes dans l'onglet courant cassée dans la version précédente 1.9
  • mise en jour en temps réel du nombre de notifications non lues affiché sur l'avatar en haut à droite (comme sur Discourse) via l'API Discourse
  • avatar obtenu directement depuis l'API Discourse
  • correction d'un bug avec certains utilisateurs dont le SSO ne correspond pas à leur pseudo Discourse
  • requêtes AJAX converties en asynchrone
bactisme le 10/10/2016 à 09:49

Est-ce que tu peux me détailler ce que tu reproche au formulaire de signalement d'erreur ?

anon21954664 le 10/10/2016 à 10:25

Je ne sais pas ce que va répondre Liolfil, mais voici ce que je reproche pour ma part :

  1. Tu lis un texte et tu remarques une erreur
  2. Tu dois arrêter de lire et aller à la fin de l’article (sauf que si tu descends l’ascenseur brutalement en bas de la page, il charge d’autres articles).
  3. Tu dois relire le texte dans une mise en page différente pour retrouver l’erreur
    3-bis) Si l’erreur est dans le chapô, on ne le retrouve pas dans cette fenêtre de correction
    3-ter) Si l’erreur est dans un intertitre orange, on ne les retrouve pas dans cette fenêtre de correction
  4. Cliquer sur suivant
  5. Corriger le texte en ayant le texte initial devant les yeux (ça c’est bien)
  6. Renseigner une adresse email ??? (c’est pour quoi ? pour envoyer des bons cadeaux à ceux qui corrigent le plus ?)
  7. Remplir un captcha
  8. Valider
  9. Repositionner la fenêtre là où tu avais arrêté de lire.
  10. Recommencer à l’erreur suivante.

Il y a la possibilité de sélectionner plusieurs paragraphes pour signaler plusieurs erreurs. Pendant qu’on lit, il faut donc noter sur un morceau de papier chaque fois que l’on repère une erreur, puis à la fin de la lecture aller dans l’outil de correction, retrouver et sélectionner toutes les phrases avec erreurs, … Bref, à mon avis, une fonction pas très adaptée.

Je proposerais un truc plus simple :
Quand tu sélectionnes un texte, tu as un bouton CITER qui apparaît. Il n’y a qu’à rajouter un autre choix CORRIGER. Ca sélectionne la phrase, le lecteur met sa correction (étape 5) et il clique sur valider et basta.

BigBisous le 10/10/2016 à 11:41

T’aurais pas moyen d’enlever le ctrl-F Discourse aussi ? C’est juste de la merde leur truc.

liolfil le 10/10/2016 à 11:48

Exactement. En plus de ça je comptais dupliquer le signalement dans votre formulaire de contact pour gérer certains rédacteurs (un seul à vrai dire) qui ignorent les signalements.

@BigBisous, pas sûr non.

Finalement j'ai quelque chose de fonctionnel.

Voici donc une nouvelle version de Purity (v1.3) !

Nouveautés :

  • CSS customisable (v1.2preview)
  • option pour empêcher l'activation de la recherche Discourse par le raccourci Ctrl+F, désactivée par défaut
BigBisous le 10/10/2016 à 21:11

Merci !!!
Edit : Par contre je vois pas l'option pour le ctrl-F en fait

liolfil le 10/10/2016 à 22:50

Option accessible via le menu Greasemonkey :

BigBisous le 11/10/2016 à 05:11

Ok, merci, je cherchais dans Purity. Sachant qu'en plus purity n'est pas dispo sur le forum, j'aurais du m'en douter :boulet:
Et maintenant ça marche super bien, merci de m'avoir délivré !

liolfil le 10/01/2017 à 14:53

Nouvelles versions des scripts utilisateur :

  • Purity v1.12 :
    • permet de cacher des nouvelles sections de page rajoutées récemment (le site ne fait plus de défilement infini d’articles mais propose “des articles du même univers”, “des articles recommandés par la rédaction”…)
  • est sensé gérer le cas où on est déconnecté sur le Discourse mais le SSO sur WordPress (/#connexion?request=sso&sso=...) n’affiche pas le formulaire de connexion. C’est notamment le cas si on se déconnecte du Discourse en étant en HTTPS (c’est comme deux sites différents pour votre navigateur)
  • le script s’exécute aussi sur la page d’accueil désormais
  • Discourse Vanilla v1.4 :
  • possibilité de forcer le HTTPS sur le Discourse : :warning: la connexion sur le site se fait toujours avec vos identifiants transmis en clair via HTTP et vos cookies sont stockés (normalement temporairement) en clair dans la base de données sqlite locale afin de les passer de la version HTTP à HTTPS du site. Dans les faits ça ne sert donc à rien mais ça me faisait marrer. Une évolution que je compte ajouter (dans Purity) c’est de faire les requêtes pour se connecter en HTTPS (parce qu’il n’y a que le WordPress qui force le HTTP, l’API Nume sur /ajax-user.php, /ajax-comment.php, /ajax-login.php fonctionne quand même en HTTPS ). Je pourrais peut-être aussi passer les cookies HTTP dans location.hash plutôt qu’en utilisant GM_setValue/GM_getValue :thinking:… à voir !

Là encore, louanges, idées, insultes, critiques sont bienvenues.

ze_katt le 10/01/2017 à 15:23

AAAAAAh je viens enfin de comprendre pourquoi je pouvais plus me connecter par moments. Merci.

Sinon une toute petite suggestion, mettre un lien vers le premier post. Meme si c’est pas grand chose de remoter l’ascenseur, c’est penible et long.

liolfil le 10/01/2017 à 15:41

Tu peux utiliser la touche Page up ou le bouton “début” de “l’ascenseur” intégré à Discourse :

Tu peux (double-)cliquer sur le titre du sujet aussi.

Defence le 10/01/2017 à 15:44

Idem.
Je n’ai toujours pas compris pourquoi, mais il y a des fois ou je ne pouvez plus me connecter.
On se sent moins seul.

ze_katt le 10/01/2017 à 17:27

Ah oui. merci.

Chitzitoune le 11/01/2017 à 11:19

Y’a pas ces possibilités de base sur mobile pour la partie discussion (ce qui rend la chose totalement inutilisable en pratique)

C’est un peu con pour un usage de plus en plus fréquent pour un site dont le domaine “professionnel” est le numérique

Defence le 11/01/2017 à 11:39

Sur mon smartphone, les 2 premières lignes de la zone de saisie des commentaires ne sont pas visibles. Il faut taper en aveugle.

T82135 le 11/01/2017 à 13:00

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

Defence le 11/01/2017 à 13:11

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.

liolfil le 11/01/2017 à 15:52

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).



OxayotlTheGreat le 11/01/2017 à 16:02

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 ^^.

Defence le 11/01/2017 à 16:09

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.

liolfil le 24/04/2017 à 22:46

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)()
liolfil le 19/05/2017 à 09:39

À 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:

johndo1 le 19/05/2017 à 10:35

\o/

(merci :slight_smile:)

liolfil le 26/08/2017 à 00:58

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.

T82135 le 29/08/2017 à 11:40

Merci pour la mise à jour !

liolfil le 20/10/2017 à 11:40

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).
liolfil le 03/11/2017 à 15:04

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>.

T82135 le 16/11/2017 à 11:31

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

liolfil le 16/11/2017 à 13:23

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.

T82135 le 16/11/2017 à 13:47

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.

liolfil le 16/11/2017 à 14:01

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

liolfil le 04/12/2017 à 00:52

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.

liolfil le 10/01/2018 à 08:50

Nouvelle version de Discourse Vanilla v2.3 :

T82135 le 10/01/2018 à 11:55

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

liolfil le 27/01/2018 à 00:20

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.