您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Lists all images in a chapter/volume
当前为
- // ==UserScript==
- // @name 8Comic.com image list
- // @description Lists all images in a chapter/volume
- // @name:zh-TW 8Comic 漫畫列表
- // @description:zh-TW 列出章節內所有圖片
- // @version 1.6.8
- // @include /^https?\:\/\/(.*?\.)?comicvip\.com\/show\//
- // @include /^https?\:\/\/(.*?\.)?comicbus\..*\//
- // @include /^https?\:\/\/(.*?\.)?nowcomic\.com\//
- // @include /^https?\:\/\/(.*?\.)?comicgood\.com\//
- // @include /^https?\:\/\/(.*?\.)?8899\.click\//
- // @include /^https?\:\/\/.*?\/online\/manga_\d*.html/
- // @author willy_sunny
- // @license GPL version 2 or any later version; http://www.gnu.org/licenses/gpl-2.0.txt
- // @namespace https://greasyfork.org/users/9968
- // ==/UserScript==
- //
- // ************************
- // Own Variable Declaration
- // ************************
- // imgList: the output result
- //
- // ***********************************
- // Site function/variable Declearation
- // many can be found in the nview.js
- // http://new.comicvip.com/js/nview.js
- // ***********************************
- //
- // ps: total page count, it's also auto stored when nview.js was done loading
- //
- var imgList = "";
- var encStr=document.getElementById('TheImg').src.split("_")[1].substr(0,3);
- console.log("ImgFileName=" + encStr);
- var theCode="";
- var ch=request("ch");var p=1;if(ch.indexOf("-")>0) {p=parseInt(ch.split('-')[1]);ch=ch.split('-')[0];}
- // Bruteforcing Script tag
- var me = null;
- var scripts = document.getElementsByTagName("script")
- var re=new RegExp(".*\=\'.*\'\;"); // Define RegEx
- var cs=null;
- var varItem=null;
- for (var i=0;i<scripts.length;i++) {
- // console.log("i = " + i);
- // console.log(scripts[i]);
- if ("function request" == scripts[i].innerHTML.substring(1,17)) {
- var targetScript = scripts[i].innerHTML;
- var varList = targetScript.split('var ');
- for (var x=1;x<varList.length;x++) {
- if(varList[x].match(re)) {
- // console.log("x = " + x);
- // console.log(varList[x]);
- tmpItem = varList[x].split('=')[0];
- tmpStr = eval(tmpItem);
- //console.log(tmpItem + " = " + tmpStr.length);
- if(tmpStr.length > 50) {
- console.log("Using var " + tmpItem);
- varItem = tmpItem;
- }
- }
- }
- }
- }
- cs = eval(varItem);
- console.log(cs);
- function getStr(inputStr, i, c) {
- if(c==null) { c=40; }
- var tmpStr = inputStr.substring(i,i+c);
- return tmpStr;
- }
- function bruteCode(inputStr) {
- //brute force code
- //for(var x=60;x>=0;x--){
- for(var x=0;x<=1000;x++){
- for(var varConst=0;varConst<=10;varConst++) {
- var testCode=lc(getStr(cs,x*ci+varConst));
- //console.log("Testing with: " + testCode);
- if (getStr(testCode,mm(p),3) == encStr) {
- console.log("We got at winner @ x = " + x + " & varConst = " + varConst);
- console.log("With string\n" + testCode);
- return testCode;
- }
- }
- }
- }
- theCode = bruteCode(cs);
- var imgRoot=document.getElementById('TheImg').src.substr(0,document.getElementById('TheImg').src.lastIndexOf("/")+1); // server root is always the same
- console.log("imgRoot = " + imgRoot);
- for (var p = 1; p <= ps; p++) {
- var picUrl = imgRoot + nn(p) + '_' + getStr(theCode,mm(p),3) + '.jpg';
- imgList = imgList + '<a href="'+picUrl+'"><img src="'+picUrl+'"></a><br>';
- }
- imgList += '<a href="#" onClick="jv(ni)">Next >>'; // this enables the user to click the next chapter link on the bottom to follow to the next chapter
- document.write("<center>"+imgList+"</center>"); // outputs the list