diff --git a/index.json b/index.json index 1257b84..fe5c9fd 100644 --- a/index.json +++ b/index.json @@ -96,7 +96,7 @@ "name": "漫画柜", "fileName": "manhuagui.js", "key": "ManHuaGui", - "version": "1.1.1" + "version": "1.2.0" }, { "name": "漫蛙吧", diff --git a/manhuagui.js b/manhuagui.js index 5f29d44..85a2c1f 100644 --- a/manhuagui.js +++ b/manhuagui.js @@ -4,7 +4,7 @@ class ManHuaGui extends ComicSource { key = "ManHuaGui"; - version = "1.1.1"; + version = "1.2.0"; minAppVersion = "1.4.0"; @@ -453,6 +453,14 @@ class ManHuaGui extends ComicSource { let imgInfos = extractFields(imgData); return imgInfos; }; + + this.decodeViewState = function (viewState) { + if (!viewState) { + return null; + } + let decoded = LZString.decompressFromBase64(viewState); + return decoded; + }; } // explore page list @@ -848,6 +856,7 @@ class ManHuaGui extends ComicSource { loadInfo: async (id) => { let url = `${this.baseUrl}/comic/${id}/`; let document = await this.getHtml(url); + // ANCHOR 基本信息 let book = document.querySelector(".book-cont"); let title = book @@ -896,19 +905,45 @@ class ManHuaGui extends ComicSource { }; let updateTime = detail_list[8].text.trim(); - // ANCHOR 章节信息 + let chapterDocument = document; + let isAdultWarning = document.querySelector("#checkAdult"); + let viewStateElement = document.querySelector("#__VIEWSTATE"); + if (isAdultWarning && viewStateElement) { + let viewStateValue = viewStateElement.attributes["value"]; + if (viewStateValue) { + let decodedViewState = this.decodeViewState(viewStateValue); + if (decodedViewState) { + let sanitized = decodedViewState.trim(); + sanitized = sanitized.replace(/^\/\/+/, "").trim(); + if (!/class=['"]chapter['"]/.test(sanitized)) { + sanitized = `