[{"bookSourceGroup":"R18漫画","bookSourceName":"🎨禁漫天堂","bookSourceType":2,"bookSourceUrl":"https:\/\/18comic.vip","customButton":false,"customOrder":1,"enabled":true,"enabledCookieJar":true,"enabledExplore":true,"eventListener":false,"header":"{\n\t\"User-Agent\":\"Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/141.0.0.0 Safari\/537.36 Edg\/141.0.0.0\",\n\"Referer\":\"https:\/\/18comic.vip\/\"\n}","jsLib":"function Get(e) {\n    var $this = this;\n    var java = $this.java;\n    var source = $this.source;\n    var cookie = $this.cookie;\n    var get = JSON.parse(source.getVariable());\n    return get[e];\n}","lastUpdateTime":"1765652456170","respondTime":180000,"ruleBookInfo":{"author":"{{@@.phone-author-tag@text}}","coverUrl":".thumb-overlay.2@img@src","init":"<js>\nurl = baseUrl\nvar num = baseUrl.indexOf(\"novel\") !== -1 ? 1 : 2;\njava.put(\"btype\",num);\nresult\n<\/js>","intro":" {{@@class.train-number@text}}\n{{@@class.intro-collapse-content@text}}\n{{@@class.p-t-5 float-left@text##日期}}    {{@@class.p-t-5 float-right@text##日期}}\n{{@@class.col-xs-12 col-lg-7 nav-tab-content@class.p-t-5 p-b-5@text##叙述：|敘述：}}","kind":"@js:\nvar text;\nif (baseUrl.indexOf('novel') !== -1){\n\ttext=java.getString('span[data-type=tags]@a@text');\n}else {\n\ttext=java.getString('#intro-block@[data-type=tags]@a@text');\n}\ntext;","name":"{{@@h1@text}}","tocUrl":"baseUrl","wordCount":"{{@class.train-number@text}}"},"ruleContent":{"content":"{{@class.novel-content@html}}\n{{@class.row thumb-overlay-albums@tag.img@data-original}}\n@js:var url = baseUrl\nif(baseUrl.indexOf(\"novel\") !== -1){\n\tresult\n\t} else {\n        var lines = result.split(\"\\n\");\n        var newLines = [];\n        for (var i = 0; i < lines.length; i++) {\n            newLines.push('<img src=\"' + lines[i] + '\">');\n        }\n        newLines.join(\"\\n\")\n}","imageDecode":"if (src.search(\"qyyuapi.com\") != -1) {\n    result;\n} else {\n    var Magua = new JavaImporter();\n    Magua.importPackage(Packages.java.io, Packages.android.graphics);\n    with(Magua) {\n        let mac = src.match(\/photos\\\/(\\d+)?\\\/(\\d+)?\/);\n        let bookId = mac[1];\n        let imgId = mac[2];\n        if (src.search(\"gif\") != -1 || Number(bookId) < 220980) {\n            result;\n        } else {\n            if (Number(bookId) > 421925) {\n                let md5 = java.md5Encode((bookId + imgId));\n                let ascii = md5.substr( - 1).charCodeAt(0);\n                var num = (ascii % 8 + 1) * 2;\n            } else if (Number(bookId) >= 268850) {\n                let md5 = java.md5Encode((bookId + imgId));\n                let ascii = md5.substr( - 1).charCodeAt(0);\n                var num = (ascii % 10 + 1) * 2;\n            } else {\n                var num = 10;\n            }\n            var img = BitmapFactory.decodeByteArray(result, 0, result.length);\n            var height = img.getHeight();\n            var width = img.getWidth();\n            var y = Math.floor(height \/ num);\n            var remainder = height % num;\n            var newImg = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);\n            let canvas = new Canvas(newImg);\n            for (let i = 1; i <= num; i++) {\n                let h = i === num ? remainder: 0;\n                canvas.drawBitmap(Bitmap.createBitmap(img, 0, y * (i - 1), width, y + h), 0, height - y * i - h, null);\n            }\n            var newbit = new ByteArrayOutputStream();\n            newImg.compress(Bitmap.CompressFormat.PNG, 100, newbit);\n            newbit.toByteArray();\n        }\n    }\n}","imageStyle":"FULL"},"ruleExplore":[],"ruleSearch":{"author":"@js:\nvar text;\nif (baseUrl.indexOf('novel') !== -1){\n\ttext=java.getString('.title-truncate.2@text');\n}else {\n\ttext=java.getString('.title-truncate.1@text');\n}\ntext;","bookList":".row.m-0 > .list-col","bookUrl":"tag.a.0@href","coverUrl":"img@data-original||img@src","intro":".video-title@text","kind":".tag@text","lastChapter":"@js:\nvar text;\nif (baseUrl.indexOf('novel') !== -1){\n\ttext=java.getString('.title-truncate.1@text');\n}else {\n\ttext=java.getString('');\n}\ntext;","name":"@js:\nif (baseUrl.match(\/novel_watchlist\/)){\ntext=java.getString('.title-truncate@text');\n} else if (baseUrl.match(\/favorite\/)){\ntext=java.getString('.image-item-text@text');\n}else {\ntext=java.getString('.video-title@text');\n}\ntext;","wordCount":"span.0@text##^##👍🏻"},"ruleToc":{"chapterList":"id.episode-block@class.episode@tag.a||class.read-block.0@tag.a","chapterName":"text","chapterUrl":"a@href"},"searchUrl":"https:\/\/18comic.vip\/search\/photos?search_query={{key}}&main_tag=0&o=mr&t=a","weight":0}]