Omskrivning af Altinget.
- Løsere regex. - Overskrift og artikel billede.
This commit is contained in:
parent
5ffcc5bd72
commit
003c5377bd
|
@ -1,35 +1,54 @@
|
||||||
// ==UserScript==
|
// ==UserScript==
|
||||||
// @name Altinget NoJS
|
// @name Altinget NoJS
|
||||||
// @description Altinget NoJS
|
// @description Altinget NoJS
|
||||||
// @include https://www.altinget.dk/*
|
// @include https://www.altinget.dk/*
|
||||||
// @version 1
|
// @version 1
|
||||||
// @grant none
|
// @grant none
|
||||||
// ==/UserScript==
|
// ==/UserScript==
|
||||||
|
|
||||||
/* 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>';
|
||||||
|
|
Loading…
Reference in a new issue