5158 sujets

Le Bar du forum

Bonjour,

je voudrais savoir s'il est possible d'injecter du code Javascript ou JSON dans la partie "mes filtres" ou "Filtrage Dynamique" sur uBlock 0rigin, le bloqueur de publicités. J'ai cherché, mais n'ai pas trouvé d'exemple de filtres réalisés de cette façon. Ce qui est injecté, ce sont généralement des url et quelques lignes de code. Est-il possible d'aller plus loin et d'injecter un code complet en JS ou JSON ?
Ce qui est généralement proposé dans les filtres, c'est ça :
youtube##+js(set, yt_supportedPopupsageViewModel, false)
youtube##+js(set, Object, 0)
youtube##+js(set, ytplayer_player_responses, [])
youtube##+js(set, Object, true)

Si quelqu'un a une expérience de ce côté.
Modifié par Bongota (25 Feb 2024 - 14:34)
Modérateur
Salut,

À priori, tu te trompes d'extension :
Pour chrome : tamperscript
Pour ff : Grease Monkey

Attention, la syntaxe de l'en-tête est légèrement différente entre les 2 extensions

ps: je déplace le sujet dans le forum "bar"
Modifié par niuxe (25 Feb 2024 - 16:38)
Merci pour le déplacement, je ne savais pas trop où mettre ce post.
OK pour Grease Monkey dont j'avais entendu parler, mais je ne connaissais pas sa facilité pour injecter du code. Je me posais des questions au sujet de Ublok origin, mais apparemment, Grease Monkey est vraiment prévu pour ça.
J'attends un peu des conseils d'utilisateurs avant de mettre "résolu".
Modérateur
Que veux-tu faire exactement ? Je connais bien Grease et même Tamper. Je m'en sers régulièrement. Par exemple sur Alsacreations, j'ai 2 scripts :
- copier le code des scripts utilisateurs (ça m'évite de sélectionner et copier)
- back to top en position fixed (celui là est un peu too much puisque j'utilise gesture depuis des années)

édit : Une des utilisations que j'ai faites plusieurs fois avec Grease : J'étais sur une application en production ou de développement et pour éviter d'uploader à chaque fois les modifications apportées (parfois pas le choix), j'ai ouvert un serveur un local (python3 -m http.server 8000) avec les fichiers css et js. Avec Grease, je fais le lien entre le serveur distant et local

ps: moi-même, j'ai hésité à déplacer ton sujet. Comme ce n'est pas du développement intrinsèque, j'ai préféré déplacer.
Modifié par niuxe (25 Feb 2024 - 16:53)
Ce que je veux, c'est continuer de proposer des scripts ou modules permettant de s'affranchir de l'écriture inclusive sur les pages web que l'on reçoit. Pénible à lire, surtout pour les personnes dyslexiques, déroutante pour les lecteurs d'écran. Avec cette écriture, l'accessibilité en prend un coup. L'un de mes sites est entièrement dédié à proposer des modules ou des paramétrages pour résoudre ce problème.
J'ai installé Greasemonkey sur Firefox, mais je n'ai trouvé pour l'instant qu'un seul script se rapportant à mon projet. Il se nomme fragilite et se trouve sur ce lien :
https://openuserjs.org/?q=%C3%A9criture+inclusive
Il n'élimine que le point médian et je ne l'ai pas encore testé. J'ai par contre des scripts en JS que j'avais préparé pour aller plus loin. Il ne me restait qu'à pouvoir les lier à un navigateur et une page web. Avec Greasemonkey, le travail m'en sera facilité. Je n'en demandais pas tant Smiley biggrin
Modérateur
Grease ou Tamper sont des outils idéals pour ce que tu veux faire. Par contre, la tâche me parait fastidieuse pour réaliser un tel script.

édit: En lisant du contenu sur le web, je saigne parfois des yeux (les faux te d'or taux graf). Ce qui veut dire que tu vas devoir gérer cet aspect aussi.
Modifié par niuxe (25 Feb 2024 - 17:01)
Salut,

malgré mes capacités limitées en programmation JavaScript, je pense que ce n'est pas si difficile. J'ai déjà réalisé un petit script JS qui fonctionne avec "replace" et il est parfaitement fonctionnel. J'ai effectué des essais sur un gros fichier et tout a été corrigé impec. Son inconvénient, c'est qu'il est un peu lourd. Il faut écrire autant de fonctions "replace" qu'il y a de mots en écriture inclusive. Comme exemple que j'ai utilisé pour mes essais dans la console JS du navigateur :
var result = sentence(/Celeux/g, "Ceux")(/iels/g, 'ils'); console(sentence);

Mais il y a plus propre, tel que :
[`(?<![a-zA-Z])iels${notWord}`, "ils"],
[`(?<![a-zA-Z])celleux${notWord}`, "ceux"],

Par contre, je ne maîtrise pas encore assez ce genre de script. J'y travaille.
Ça n'empêche que là aussi, il faut entrer tous les mots en inclusif.
Un script JSON peut aussi bien faire l'affaire, mais je ne sais pas si Greasemonkey accepte le JSON.
ps: Pour les fautes, je crois que je suis assez vigilant. Je plante régulièrement l'IA sur le participe passé et autres pièges de la langue française Smiley fache
Et je n'ai pas l'intention de gérer les fautes des autres (les grands médias en sont remplis...)
Pour l'écriture inclusive, il faut aussi tenir compte du fait que beaucoup de personnes qui l'utilisent ne la maîtrisent pas. Ils ne savent même pas faire le point médian. Ils utilisent à la place le point ordinaire ou le tiret -. Il faut en tenir compte dans les filtres.
Par contre, si c'est pour la détecter dans un mail et envoyer un message de reproche à l'expéditeur, quelques mots suffiront. J'ai manipulé les filtres anti-spams de Thunderbird et ça fonctionne très bien pour détecter les mails.
Modérateur
Bongota a écrit :
... mais je ne sais pas si Greasemonkey accepte le JSON....


Ce serait étonnant que Grease ne gère pas le JSON. Pour rappel, qu'est ce que le JSON ? JavaScript Object Notation
Modifié par niuxe (25 Feb 2024 - 19:04)
Salut,
puisque tu connais bien Greasemonkey, comment ce module appelle-t-il les scripts JavaScript que l'on installe soi-même ?
Avec une fonction à insérer dans le script ? En un mot, comment je pourrais l'insérer dans la page de Greasemonkey prévue pour (scripts utilisateurs).
En attendant, voici le script replace que j'ai patiemment monté pour l'écriture inclusive. Il n'est pas complet. Tel qu'il est, c'était juste pour le tester dans la console.
var result = sentence(/iels/g, 'ils')(/iel/g, "il")(/Celeux/g,
"Ceux")(/s/g, "")(/s/g, "")(/be/g, "beaux")(/quelqu’un/g, "quelqu'un")(/prêt/g, "prêt")(/serait-il/g, "serait-il")(/instituteurice/g, "institutrice")(/directeur/g, "directeur")(/be-aux-lles/g, "beaux")(/ambassadeurs/g, "ambassadeurs")(/arrivés/g, "arrivés")(/Iels/g, "Ils")(/gentils/g, "gentils")(/chefs/g, "chefs")(/illes/g, "ils")(/Iels/g, "Ils")(/lecteurs/g, "lecteurs")(/françaiss/g, "français")(/divisés/g, "divisés")(/Chers/g, "Chers")(/jumeauxs/g, "jumeaux")(/fier !/g, "fièr !")(/copaines/g, "copains")(/directeur/g, "directeur")(/gentils/g, "gentils")(/be/g, "beaux")(/ambassadeurs/g, "ambassadeurs")(/arrivés/g, "arrivés")(/chefs/g, "chefs")(/illes/g, "ils")( lecteurs/g, "lecteurs")(/françaiss/g, "français")(/divisés/g, "divisés")(/Chers/g, "Chers")(/copaines/g, "copains")(/quelqu’un/g, "quelqu'un")(/serait-iel/g, "serait-il")(/prêt/g, "prêt")(/jume/g, "jumeaux")(/iel/g, "il")(/fier/g, "fièr !")(/chefs/g, "chefs")(/directeur/g, "directeur")(/gentilss/g, "gentils")(/be-aux-lles/g, "beaux")(/ambassadeurs/g, "ambassadeurs")(/arrivés/g, "arrivés")(/chef-fes/g, "chefs")(/lecteurs/g, "lecteurs")(/françaiss/g, "français")(/divisés/g, "divisés")(/Chers/g, "chers")(/quelqu’un-e/g, "quelqu'un")(/chefs/g, "chefs")(/lecteurs/g, "lecteurs")(/françaiss/g, "français")(/divisés/g, "divisés")(/Chers/g, "Chers")(/quelqu’un-e/g, "quelqu'un")(/serait-iel/g, "serait-il")(/prêt-e/g, "prêt")(/jume-aux-lles/g, "jumelles")(/fier-ière/g, "fièr"); 
console(sentence);

Argh ! Je pensais que le script allait se dérouler verticalement, mais ce n'est pas le cas Smiley decu
Modifié par Bongota (26 Feb 2024 - 13:48)
Modérateur
Tu crées un nouveau script et tu copies/colles le code ci-dessous. Tu vas sur le forum alsacreations et tu recharges la page. Ensuite, tu analyses ce code afin de comprendre.

Par la suite, je t'invite à aller sur la doc officielle. Dans cette dernière, tu trouveras cette video. Cette page devrait être utile aussi.


// ==UserScript==
// @name     alert (description du script)
// @include   https://forum.alsacreations.com/*
 
// @version  1
// @grant    all
// ==/UserScript==

alert('ok !!!')

Modifié par niuxe (26 Feb 2024 - 22:24)
Salut,

oui, copier un script, ça j'avais compris, je l'ai déjà fait pour un de ceux proposés dans la très longue liste.
Ce que je demandais, c'est dans le cas d'un script personnel, s'il n'y avait rien d'autre à faire que d'installer le script dans la page. Mis à part bien sûr la partie "Userscript" que l'on modifie en fonction. J'ai la confirmation, merci.