|
// ==UserScript== |
|
// @name WR short inflections FR |
|
// @namespace |
|
// @version 0.3.1 |
|
// @description Shorten inflection descriptions on WordReference French. |
|
// @author William Andrea (wjandrea) |
|
// @match https://www.wordreference.com/fren/* |
|
// @icon https://www.google.com/s2/favicons?sz=64&domain=wordreference.com |
|
// @grant none |
|
// ==/UserScript== |
|
|
|
(function() { |
|
'use strict'; |
|
|
|
const person_pattern = new RegExp( |
|
[ |
|
/(?<person>1|2|3)<sup>e<\/sup> personne/, |
|
// FIXME: Replacing "sg/pl" is kinda janky here. |
|
/ du (?:(?<s0>s)in(?<s1>g)ulier|(?<pl>pl)uriel)/, |
|
].map(r => r.source).join(''), |
|
); |
|
const person_replacement = "$<person>$<s0>$<s1>$<pl>"; |
|
|
|
const conj_patterns = [ |
|
/du (?<_tense>présent) de l'(?<mood>indicatif)/, |
|
/de l'(?<tense>imparfait) de l'(?<_mood>indicatif)/, |
|
/du (?<tense>passé simple) de l'(?<_mood>indicatif)/, |
|
/du (?<tense>futur) de l'(?<_mood>indicatif)/, |
|
/du (?<_tense>présent) du (?<mood>subjonctif)/, |
|
/de l'(?<tense>imparfait) du (?<mood>subjonctif)/, |
|
/du (?<_tense>présent) de l'(?<mood>impératif)/, |
|
|
|
/du (?<mood>conditionnel) (?<_tense>présent)/, |
|
]; |
|
const conj_replacement = "$<tense> $<mood>"; |
|
|
|
let inflections = document.querySelectorAll(".inflectionsSection dd"); |
|
for (let infl of inflections) { |
|
let ih = infl.innerHTML; |
|
let ih_person = ih.replace(person_pattern, person_replacement); |
|
infl.innerHTML = ih_person; |
|
|
|
for (let conj_p of conj_patterns) { |
|
console.debug(`Trying regex: ${conj_p}`); |
|
if (ih_person.match(conj_p)) { |
|
let ih_conj = ih_person.replace(conj_p, conj_replacement); |
|
console.log(`New inflection notation: ${ih_conj}. Was: ${ih}`) |
|
infl.innerHTML = ih_conj; |
|
break |
|
} |
|
} |
|
} |
|
})(); |