presse/lemonde.js

61 lines
2.1 KiB
JavaScript

// open https://journal.lemonde.fr, open an issue, hit f12 and find the GetPublicationContentItems url
var url = "https://lmo-lmo-production-cdn.twipecloud.net/lmo/lmo/contentPackages/3761/GetPublicationContentItems-5274.json?v=20240524113722&Policy=eyJTdGF0ZW1lbnQiOiBbeyJSZXNvdXJjZSI6Imh0dHBzOi8vbG1vLWxtby1wcm9kdWN0aW9uLWNkbi50d2lwZWNsb3VkLm5ldC9sbW8vbG1vL2NvbnRlbnRQYWNrYWdlcy8zNzYxLyoiLCJDb25kaXRpb24iOnsiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE3MTY1NTg4MzF9LCJJcEFkZHJlc3MiOnsiQVdTOlNvdXJjZUlwIjoiMC4wLjAuMC8wIn0sIkRhdGVHcmVhdGVyVGhhbiI6eyJBV1M6RXBvY2hUaW1lIjoxNzE2NTU2OTcxfX19XX0_&Signature=gfKT8bLNWoohcNqbvA7A~UKZMSLIJxLuPo5sJFtG1lmXwWfTl~3Y4RmgDn00uZ4VIW6uRJJFEIldrL9iBbUMY7LgtiDOpBxj5zPv-UBqN8mkxUkdd7OBPtAypz~7lByyx92or6VzOUzkMYEZ-ptPHVWyUon4Jv1BudMTxmWa1Vg_&Key-Pair-Id=APKAJZKKWCWU2JPGEHQQ";
var output = "";
var toc = "";
function sanitize(s)
{
return s.replace(/<[^>]*>?/gm, '');
}
fetch(url)
.then(r => r.json())
.then(publication =>
{
publication
.Content
.filter(article => article.Category == "Le Monde")
.sort( (a,b) => a.PageNumber - b.PageNumber)
.forEach(article =>
{
var contentitem = article.ContentItem.find(i => i.ContentType == "text/xml");
var title = contentitem.Title;
if (title)
{
title = sanitize(title);
var category = sanitize(contentitem.SubTitle).trim();
var id = article.ContentID;
var page = article.PageNumber;
output += "<h1 id=\"" + id + "\">" + title + "</h1>";
if (category)
{
output += "<p><em>" + category + "</em></p>";
}
output += contentitem.HtmlText;
if (page > 1)
{
output += "<p><a href=\"#main\">Retour</a></p>";
toc += "<a href=\"#" + id + "\">" + title + "</a>"
if (category)
{
toc += " (" + category + ")";
}
toc += "<br>";
}
}
});
console.log("<!DOCTYPE html><html><head><meta charset=\"utf-8\"><title>Le Monde</title><style>.italic { font-style: italic; }</style></head><body>"
+ "<h1 id=\"main\">Le Monde</h1>" + (new Date).toLocaleString()
+ "<div>" + toc + "</div>"
+ output
+ "</body></html>");
}
);