[{"bookSourceComment":"by天天的鸟蛋蛋 2025\/2\/20\n感谢 提供正文解密 河鹅和 另一个书友圈","bookSourceGroup":"韩漫","bookSourceName":"韩国漫画","bookSourceType":2,"bookSourceUrl":"https:\/\/hanmm.org","customOrder":0,"enabled":true,"enabledCookieJar":false,"enabledExplore":true,"exploreUrl":"","jsLib":"function toDataUrl(key) {\n\treturn `data:image\/.jpg#;base64,${this.java.base64Encode(key)},{'type':'jpg'}`\n}\nvar Magua = new JavaImporter();\nMagua.importPackage(\n\tPackages.java.io,\n\tPackages.android.graphics\n);\nwith(Magua) {\n\tfunction decodeImg(picBytes, restoreOrder) {\n\t\tvar img = BitmapFactory.decodeByteArray(picBytes, 0, picBytes.length);\n\t\tvar imageHeight = img.getHeight();\n\t\tvar imageWidth = img.getWidth();\n\t\tvar newImg = Bitmap.createBitmap(imageWidth, imageHeight, Bitmap.Config.ARGB_8888);\n\t\tlet canvas = new Canvas(newImg);\n\t\tconst keys = Object.keys(restoreOrder);\n\t\tconst num = keys.length;\n\t\tlet blockWidth, blockHeight, extraPixels;\n\t\tif (num % 2 === 0) {\n\t\t\tblockWidth = Math.floor(imageWidth \/ num);\n\t\t\textraPixels = imageWidth % num;\n\t\t} else {\n\t\t\tblockHeight = Math.floor(imageHeight \/ num);\n\t\t\textraPixels = imageHeight % num;\n\t\t}\n\t\tconst blocks = [];\n\t\tlet startX = 0;\n\t\tlet startY = 0;\n\n\t\tkeys.forEach((key, index) => {\n\t\t\tconst originalPosition = restoreOrder[key];\n\t\t\tif (originalPosition >= 0 && originalPosition < num) {\n\t\t\t\tif (num % 2 === 0) {\n\t\t\t\t\tconst currentBlockWidth = blockWidth + (originalPosition < extraPixels ? 1 : 0);\n\t\t\t\t\tblocks[originalPosition] = Bitmap.createBitmap(img, startX, 0, currentBlockWidth, imageHeight);\n\t\t\t\t\tstartX += currentBlockWidth;\n\t\t\t\t} else {\n\t\t\t\t\tconst currentBlockHeight = blockHeight + (originalPosition < extraPixels ? 1 : 0);\n\t\t\t\t\tblocks[originalPosition] = Bitmap.createBitmap(img, 0, startY, imageWidth, currentBlockHeight);;\n\t\t\t\t\tstartY += currentBlockHeight;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.java.log(`Invalid originalPosition: ${originalPosition}`);\n\t\t\t}\n\t\t});\n\t\tstartX = 0;\n\t\tstartY = 0;\n\t\tObject.keys(blocks)\n\t\t\t.sort((a, b) => a - b)\n\t\t\t.forEach(key => {\n\t\t\t\tconst block = blocks[key];\n\t\t\t\tif (num % 2 === 0) {\n\t\t\t\t\tconst currentBlockWidth = block.getWidth();\n\t\t\t\t\tcanvas.drawBitmap(block, startX, 0, null);\n\t\t\t\t\tstartX += currentBlockWidth;\n\t\t\t\t} else {\n\t\t\t\t\tconst currentBlockHeight = block.getHeight();\n\t\t\t\t\tcanvas.drawBitmap(block, 0, startY, null);\n\t\t\t\t\tstartY += currentBlockHeight;\n\t\t\t\t}\n\t\t\t});\n\t\tvar newbit = new ByteArrayOutputStream();\n\t\tnewImg.compress(Bitmap.CompressFormat.PNG, 100, newbit);\n\t\treturn newbit.toByteArray()\n\t}\n}","lastUpdateTime":"1740029949608","respondTime":180000,"ruleBookInfo":{"author":"i > a@text","coverUrl":"","intro":"标签：{{@@p > span@text##\\s##,}}\n简介：{{@@.intro > p@text}}","kind":"p:nth-child(4) > a@text","lastChapter":".to100 > a@text","name":"h1@text"},"ruleContent":{"content":"@js:\neval(\"data=\"+src.match(\/data:\\s*(\\{[^\\}]+\\})\/)[1])\nbody=Object.keys(data).map(key => `${key}=${data[key]}`) .join('&');\njava.log(body)\nresult=java.ajax(`https:\/\/hanmm.org\/api\/reader_js.php,{\"body\": \"${body}\",\"method\": \"POST\"}`)\ndata=JSON.parse(result)\nimageList = data.data.image_list\nimageList.sort((a, b) => a.order - b.order)\nimageList.map(img=>{\n\treturn `<img src=\"${toDataUrl(JSON.stringify(img))}\">`\n}).join(\"\\n\")","imageDecode":"json=java.bytesToStr(result)\njava.log(json)\nimg=JSON.parse(json)\nresult=java.hexDecodeToByteArray(java.ajax(`${img.pic},{\"type\": \"jpg\",\"headers\": {\"Referer\": \"https:\/\/hanmm.org\/\"}}`))\nif (img.arr==\"\"){\n\tresult\n}else{\tarr=JSON.parse(java.base64Decode(img.arr))\n\tresult=decodeImg(result,arr)\n}\nresult","imageStyle":"FULL"},"ruleExplore":[],"ruleSearch":{"author":"p:nth-child(2) > a@text","bookList":".searchresult:nth-child(n+1)","bookUrl":"a.0@href","checkKeyWord":"","coverUrl":"img@data-original","intro":"{{@@p:nth-child(2)@text}}{{@@.searchresult_p@text}}{{@@}}","kind":".img_span span@text##\\\/##,","lastChapter":"p:nth-child(4) > a@text","name":"h3@text"},"ruleToc":{"chapterList":".chapter_list ul li a","chapterName":"text","chapterUrl":"href"},"searchUrl":"\/search,{\n  \"body\": \"searchkey={{key}}&searchtype=all\",\n  \"method\": \"POST\"\n}","weight":0}]