您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
manatoki viewer & downloader & adblock & more!
当前为
// ==UserScript== // @name manatoki viewer & downloader // @namespace http://tampermonkey.net/ // @version 0.2 // @description manatoki viewer & downloader & adblock & more! // @author You // @include http*://manatoki* // @grant GM_download // ==/UserScript== // adblock $('.hd_pops').remove() $('.board-tail-banner').remove() $('.basic-banner.row.row-10').remove() let linklist = localStorage.getItem('clickedlist'); // get clicked element // append download button var sendBtn = document.createElement("button"); sendBtn.className = "btn btn-warning"; sendBtn.style.zIndex = "3"; sendBtn.style.position = "fixed"; sendBtn.style.bottom = "0"; sendBtn.style.right = "0"; sendBtn.innerText = "download"; let clicked, clickedlist = JSON.parse(localStorage.getItem("clickedlist")); if (clickedlist == null) { clickedlist = [] console.log("welcome") } // check whether user is at viewpage if (!$("[class ='view-content1']")[0]) { document.getElementById("main-banner-view").appendChild(sendBtn); let m = clickedlist.some(function (item) { return item[0] === document.URL }); if (m == false) { var today = new Date(); var date = today.getFullYear() + '-' + (today.getMonth() + 1) + '-' + today.getDate(); var time = today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds(); var dateTime = date + ' ' + time; clickedlist.push([document.URL, dateTime]) window.localStorage.setItem("clickedlist", JSON.stringify(clickedlist)) console.log(clickedlist) } else { console.log("you've visited") } } if ($("[class ='view-content1']")[0]){ for (let i=0; i < clickedlist.length; i ++) { // console.log(typeof clickedlist[i]) if ($('a[href*="' + clickedlist[i][0] + '"]')[0]){ $('a[href*="' + clickedlist[i][0] + '"]')[0].style.color = "blue" $('a[href*="' + clickedlist[i][0] + '"]')[0].text += "("+clickedlist[i][1]+")"; } } console.log(clickedlist) // let linkBtn = $("[class='item-subject']") // // $(document).on('click', 'a', false); // linkBtn.click(function (e) { // console.log(e.target.getAttribute("href")) // clicked = e.target.getAttribute("href") // if (clickedlist.includes(clicked) == false){ // clickedlist.push(clicked) // } // // clicked.style.color = "blue"; // console.log(clickedlist) // window.localStorage.setItem("clickedlist", JSON.stringify(clickedlist)) // }); } var regex = /\d+/g, mnum = (parent.window.location.pathname != "/") ? parent.window.location.pathname.match(regex)[0] : 0; console.log(mnum) // get page title and manga number sendBtn.onclick = function() { // let canvas = $("img[src*='/data/file/comic'][src*="+mnum+"]").not("img[src*='thumb']") var title = document.getElementsByClassName('page-desc')[0].innerHTML let canvas = $("img[src*='/data/']").not("img[src*='thumb']"), loadimg = $('img[src$="/img/loading-image.gif"]'), countedword = {} // check if loading is completed if (loadimg.length <= 1) { // get every image which contains '/data/' and classify with parentNode inside the object for (let i = 0; i < canvas.length; i++) { var word = canvas[i].parentNode if (countedword[word.className] == undefined) { countedword[word.className] = 1; } else { countedword[word.className] += 1; } } //get the manga image from the object let a = 0, viewdiv = Object.keys(countedword)[1] console.log(viewdiv); console.log(countedword) // download every manga images every 0.3 sec for (let i = 0; i < canvas.length; i++) { (function(x) { setTimeout(function() { let word = canvas[i].parentNode if (word.className == viewdiv) { a += 1 var blob = canvas[i].currentSrc let arg = { url: blob, name: title + a }; GM_download(arg) } }, 300 * x); })(i); } } else { alert("wait for loading...") } };