~cytrogen/fluent-reader-mobile

ref: 2dedfb7640af6719d3d4c1d2f699a717dbb186f2 fluent-reader-mobile/assets/article/article.js -rw-r--r-- 2.0 KiB
2dedfb76 — Bruce Liu add splash screens 5 years ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
function r(params) {
    function get(name) {
        if (name = (new RegExp('[?&]' + encodeURIComponent(name) + '=([^&]*)')).exec(params))
            return decodeURIComponent(name[1])
        return null
    }
    async function getArticle(url) {
        let article = get("a")
        if (get("m") === "1") {
            return (await Mercury.parse(url, {html: article})).content || ""
        } else {
            return article
        }
    }
    document.documentElement.style.fontSize = get("s") + "px"
    let theme = get("t")
    if (theme !== null) document.documentElement.classList.add(theme === "1" ? "light" : "dark")
    let url = get("u")
    getArticle(url).then(article => {
        let domParser = new DOMParser()
        let dom = domParser.parseFromString(get("h"), "text/html")
        dom.getElementsByTagName("article")[0].innerHTML = article
        let baseUrl = url.split("/").slice(0, 3).join("/")
        for (let s of dom.getElementsByTagName("script")) {
            s.parentNode.removeChild(s)
        }
        for (let e of dom.querySelectorAll("*[src]")) {
            if (e.src && !e.src.startsWith("http")) {
                if (e.src.startsWith("/")) {
                    e.src = baseUrl + e.src
                } else if (e.src.startsWith(":")) {
                    e.src = "http" + e.src
                } else {
                    e.src = baseUrl + "/" + e.src
                }
            }
        }
        for (let e of dom.querySelectorAll("*[href]")) {
            if (e.href && !e.href.startsWith("http")) {
                if (e.href.startsWith("/")) {
                    e.href = baseUrl + e.href
                } else if (e.href.startsWith(":")) {
                    e.href = "http" + e.href
                } else {
                    e.href = baseUrl + "/" + e.href
                }
            }
        }
        let main = document.getElementById("main")
        main.innerHTML = dom.body.innerHTML
        main.classList.add("show")
    })
}