// ==UserScript== // @name custom miniflux // @match *://miniflux.rgoncalves.se/*NONE // @grant none // ==/UserScript== function get_img_content(content) { var object = document.createElement("div"); object.innerHTML = content; try { url = object.getElementsByTagName("img")[0].src; } catch (error) { url = undefined; } return url; } function add_entry_images(article) { var article_meta = article.getElementsByClassName("item-meta")[0]; var article_frame = document.createElement("div"); var article_id = article.getElementsByClassName("item-title")[0] .getElementsByTagName("a")[0] .href .split("/") .splice(-1, 1); article_meta.appendChild(article_frame); fetch(`/v1/entries/${article_id}`) .then(res => res.json()) .then((res) => { var url; try { url = res["enclosures"][0]["url"]; } catch (error) { url = get_img_content(res["content"]); } if (typeof url === 'undefined') { return; } console.log(url); img = document.createElement("img"); img.src = url; img.style.width = "100%"; img.style.minHeight = "100px"; img.loading = "lazy"; article_frame.appendChild(img); }) } function has_displayable_image(article) { category = article.getElementsByClassName("category")[0] .getElementsByTagName("a")[0] .innerText; return category === "blog" || category === "hn" || category === "social" || category === "yt"; } details = document.getElementsByTagName("details"); for (let detail of details) { detail.open = true; } articles = document.getElementsByTagName("article"); for (let article of articles) { if (! has_displayable_image(article)) { continue; } add_entry_images(article); }