1
0
Fork 0

Omskrivning af Altinget.

- Løsere regex.
- Overskrift og artikel billede.
This commit is contained in:
smpl 2021-08-28 15:08:45 +02:00
parent 5ffcc5bd72
commit 003c5377bd

View file

@ -9,27 +9,46 @@
/* SPDX-License-Identifier: Zlib /* SPDX-License-Identifier: Zlib
* Copyright (C) 2021 smpl <smpl@slamkode.ml> */ * Copyright (C) 2021 smpl <smpl@slamkode.ml> */
var s = document.head.querySelectorAll('script, link, style'); var article_text;
s.forEach( var article_title;
function(se) { var article_image;
se.parentNode.removeChild(se); var article_style;
var container;
var elements;
/* Hent titel og artikelbillede fra OpenGraph data. */
article_title = document.head.querySelector('meta[property="og:title"]').getAttribute('content');
article_image = document.head.querySelector('meta[property="og:image"]').getAttribute('content');
/* Fjern alle script, style og link tags fra <head> */
elements = document.head.querySelectorAll('script, link, style');
elements.forEach(
function(e) {
e.parentNode.removeChild(e);
} }
); );
var st = document.createElement('style'); /* Find alle script tags på siden og led efter JSON med indhold. */
st.innerHTML = 'div { max-width: 640px }'; elements = document.querySelectorAll('script');
document.head.appendChild(st); for(let i=0; i < elements.length; i++) {
if(/window.__NUXT__/.test(elements[i].innerHTML)) {
s = document.querySelectorAll('script'); article_text = JSON.parse('"' + elements[i].innerHTML.match(/,Text:"(.*?)(?<!\\)"/)[1] + '"');
break;
s.forEach(
function(se) {
if(/window.__NUXT__/.test(se.innerHTML)) {
var ScriptRaw = se.innerHTML;
var ArticleText = ScriptRaw.match(/\{article:\{[^}]*Text:"(.*?)(?<!\\)"/);
document.body.innerHTML = '<div>' + JSON.parse('"' + ArticleText[1] + '"') + '</div>';
} }
}
} /* Erstat alt indhold i body med en tom kontainer <div> */
); document.body.innerHTML = '<div id="container"></div>';
container = document.getElementById('container');
/* Indsæt et <style> element i <head> og sæt maks. bredde for
* indholdskontaineren */
article_style = document.createElement('style');
article_style.innerHTML = '#container { max-width: 640px };';
document.head.appendChild(article_style);
/* Indsæt overskrift, billede og tekst i container */
container.innerHTML =
'<h1>' + article_title + '</h1>' +
'<img width="600px" src="' + article_image + '">' +
'<div id="article">' + article_text + '</div>';