<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">let bookmax = 30;

function LastRead() {
    this.bookList = "bookList"
}

LastRead.prototype = {
    set: function (bid, url, bookname, chaptername, author, readtime, cover) {
        if (!(bid &amp;&amp; url &amp;&amp; bookname &amp;&amp; chaptername &amp;&amp; author &amp;&amp; readtime)) return;
        var v = bid + '#' + url + '#' + bookname + '#' + chaptername + '#' + author + '#' + readtime + '#' + cover;
        var aBooks = lastread.getBook();
        var aBid = [];
        for (i = 0; i &lt; aBooks.length; i++) {
            aBid.push(aBooks[i][0])
        }
        if ($.inArray(bid, aBid) != -1) {
            lastread.remove(bid)
        } else {
            while (aBooks.length &gt;= bookmax) {
                lastread.remove(aBooks[0][0]);
                aBooks = lastread.getBook()
            }
        }
        this.setItem(bid, v);
        this.setBook(bid)
    }, get: function (k) {
        return this.getItem(k) ? this.getItem(k).split("#") : ""
    }, remove: function (k) {
        this.removeItem(k);
        this.removeBook(k)
    }, setBook: function (v) {
        var reg = new RegExp("(^|#)" + v);
        var books = this.getItem(this.bookList);
        if (books === "") {
            books = v
        } else {
            if (books.search(reg) === -1) {
                books += "#" + v
            } else {
                books.replace(reg, "#" + v)
            }
        }
        this.setItem(this.bookList, books)
    }, getBook: function () {
        var v = this.getItem(this.bookList) ? this.getItem(this.bookList).split("#") : Array();
        var books = Array();
        if (v.length) {
            for (var i = 0; i &lt; v.length; i++) {
                var tem = this.getItem(v[i]).split('#');
                if (tem.length &gt; 3) books.push(tem)
            }
        }
        return books
    }, removeBook: function (v) {
        var reg = new RegExp("(^|#)" + v);
        var books = this.getItem(this.bookList);
        if (!books) {
            books = ""
        } else {
            if (books.search(reg) != -1) {
                books = books.replace(reg, "")
            }
        }
        this.setItem(this.bookList, books)
    }, setItem: function (k, v) {
        if (!!window.localStorage) {
            localStorage.setItem(k, v)
        } else {
            var expireDate = new Date();
            var EXPIR_MONTH = 30 * 24 * 3600 * 1000;
            expireDate.setTime(expireDate.getTime() + 12 * EXPIR_MONTH);
            document.cookie = k + "=" + encodeURIComponent(v) + ";expires=" + expireDate.toGMTString() + "; path=/"
        }
    }, getItem: function (k) {
        var value = "";
        var result = "";
        if (!!window.localStorage) {
            result = window.localStorage.getItem(k);
            value = result || ""
        } else {
            reg = new RegExp("(^| )" + k + "=([^;]*)(;|\x24)");
            result = reg.exec(document.cookie);
            if (result) {
                value = decodeURIComponent(result[2]) || ""
            }
        }
        return value
    }, removeItem: function (k) {
        if (!!window.localStorage) {
            window.localStorage.removeItem(k)
        } else {
            var expireDate = new Date();
            expireDate.setTime(expireDate.getTime() - 1000);
            document.cookie = k + "= " + ";expires=" + expireDate.toGMTString()
        }
    }, removeAll: function () {
        if (!!window.localStorage) {
            window.localStorage.clear()
        } else {
            var v = this.getItem(this.bookList) ? this.getItem(this.bookList).split("#") : Array();
            var books = Array();
            if (v.length) {
                for (var i in v) {
                    var tem = this.removeItem(v[k])
                }
            }
            this.removeItem(this.bookList)
        }
    }
};

function removebook(k) {
    lastread.remove(k);
    location.reload()
}

function removeall() {
    lastread.removeAll();
    location.reload()
}

function showtempbooks() {
    var books = lastread.getBook().reverse();
    let bookhtml = '';
    if (books.length) {
        for (var i = 0; i &lt; books.length; i++) {
            if (i &lt; bookmax) {
                bookhtml += '&lt;dl&gt;&lt;a href="' + books[i][1] + '" class="cover" title="' + books[i][2] + '"&gt;&lt;img src="' + books[i][6] + '" onerror="src=\'/static/dqg/nocover.jpg\'" alt="' + books[i][2] + '"&gt;&lt;/a&gt;&lt;dt&gt;&lt;a href="' + books[i][1] + '" title="' + books[i][2] + '"&gt;' + books[i][2] + '&lt;/a&gt;&lt;/dt&gt;&lt;dd class="history"&gt;å·²è¯»åˆ°ï¼š' + books[i][3] + '&lt;/dd&gt;&lt;dd class="history"&gt;é˜…è¯»æ—¶é—´ï¼š' + books[i][5] + '&lt;/dd&gt;&lt;dd&gt;&lt;a&gt;' + books[i][4] + '&lt;/a&gt;&lt;a id="del_temp" href="javascript:removebook(\'' + books[i][0] + '\')"&gt;åˆ&nbsp;é™¤&lt;/a&gt;&lt;/dd&gt;&lt;/dl&gt;';
            }
        }
    } else {
        bookhtml += '&lt;div class="nobook"&gt;æ²¡æœ‰é˜…è¯»è®°å½•ã€‚&lt;/div&gt;';
    }
    $("#tempBookcase").html(bookhtml);
}

window.lastread = new LastRead();</pre></body></html>