diff --git a/README.md b/README.md index e830676..48fb610 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ L'extension fonctionne avec les portails universitaires suivants : - [**Europresse Université Paris Cité**](https://ezproxy.u-paris.fr/login?url=https://nouveau.europresse.com/access/ip/default.aspx?un=UNIVPARIS) - [**Europresse Université de Franche-Comté**](http://scd1.univ-fcomte.fr/login?url=https://nouveau.europresse.com/access/ip/default.aspx?un=FCOMTET_1) - [**Europresse Université de Pau et des pays de l'Adour**](https://nouveau-europresse-com.rproxy.univ-pau.fr/access/ip/default.aspx?un=uppaT_2) - - [**Europresse Université d'Artois**] (http://ezproxy.univ-artois.fr/login?url=https://nouveau.europresse.com/access/ip/default.aspx?un=littoralT_1) + - [**Europresse Université d'Artois**](http://ezproxy.univ-artois.fr/login?url=https://nouveau.europresse.com/access/ip/default.aspx?un=littoralT_1) Ou directement via le site Europresse. @@ -45,6 +45,8 @@ L'extension fonctionne avec les portails universitaires suivants : - [L'Humanité](https://www.humanite.fr) - [La Montagne](https://www.lamontagne.fr) - [Le Point](https://www.lepoint.fr) + - [Le Soir](https://www.lesoir.be) + - [Financial Times](https://www.ft.com/) Vous pouvez proposer d'autres sites en ouvrant une [demande sur github](https://github.com/lovasoa/ophirofox/issues) diff --git a/ophirofox/content_scripts/ft.js b/ophirofox/content_scripts/ft.js new file mode 100644 index 0000000..27f4800 --- /dev/null +++ b/ophirofox/content_scripts/ft.js @@ -0,0 +1,24 @@ +async function makeEuropresseUrl() { + const keywords = extractKeywords(); + return await makeOphirofoxReadingLink(keywords); +} + +function extractKeywords() { + return document.querySelector("h1").textContent; +} + +async function createLink() { + const a = document.createElement("a"); + a.textContent = "Lire sur Europresse"; + a.className = "btn btn--premium ophirofox-europresse"; + a.href = await makeEuropresseUrl(new URL(window.location)); + return a; +} + +async function onLoad() { + const payArticle = document.querySelector('.barrier-banner__container'); + if (!payArticle) return; + payArticle.after(await createLink()); +} + +onLoad().catch(console.error); diff --git a/ophirofox/content_scripts/lesoir.css b/ophirofox/content_scripts/lesoir.css new file mode 100644 index 0000000..789d488 --- /dev/null +++ b/ophirofox/content_scripts/lesoir.css @@ -0,0 +1,3 @@ +.ophirofox-europresse { + margin-left: 10px; +} diff --git a/ophirofox/content_scripts/lesoir.js b/ophirofox/content_scripts/lesoir.js new file mode 100644 index 0000000..45a48ac --- /dev/null +++ b/ophirofox/content_scripts/lesoir.js @@ -0,0 +1,32 @@ +async function makeEuropresseUrl() { + const keywords = extractKeywords(); + return await makeOphirofoxReadingLink(keywords); +} + +function extractKeywords() { + return document.querySelector("h1").textContent; +} + +async function createLink() { + const a = document.createElement("a"); + a.href = await makeEuropresseUrl(new URL(window.location)); + a.textContent = "Lire sur Europresse"; + a.className = "fig-premium-mark-article__text ophirofox-europresse"; + return a; +} + + +function findPremiumBanner() { + const title = document.querySelector("h1"); + if (!title) return null; + const elems = title.parentElement.querySelectorAll("span"); + return [...elems].find(d => d.textContent.includes("réservé aux abonnés")) +} + +async function onLoad() { + const premiumBanner = findPremiumBanner(); + if (!premiumBanner) return; + premiumBanner.after(await createLink()); +} + +onLoad().catch(console.error); diff --git a/ophirofox/manifest.json b/ophirofox/manifest.json index 2f2770a..5fdc2d2 100644 --- a/ophirofox/manifest.json +++ b/ophirofox/manifest.json @@ -123,6 +123,27 @@ "content_scripts/le-point.css" ] }, + { + "matches": [ + "https://www.lesoir.be/*" + ], + "js": [ + "content_scripts/config.js", + "content_scripts/lesoir.js" + ], + "css": [ + "content_scripts/lesoir.css" + ] + }, + { + "matches": [ + "https://www.ft.com/*" + ], + "js": [ + "content_scripts/config.js", + "content_scripts/ft.js" + ] + }, { "matches": [ "https://nouveau.europresse.com/Search/Reading*",