// ==UserScript== // @name pixiv快速打开原图&自动收藏 // @description 通过Ctrl+右键快速打开pixiv图片原图(支持打开动态图的封面,但无法打开动态图),同时收藏此图片 // @version 0.6 // @namespace akari // @author Pikaqian // @include *://www.pixiv.net/* // @include *://www.pixivision.net/* // @icon https://static.hdslb.com/images/akari.jpg // @grant GM_setClipboard // @downloadURL none // ==/UserScript== (function() { 'use strict'; var match_rules=[ /([_=:;&\-\/\.\?\d\w]+?illust_id=(\d+)(?:&|$|))/, /(http(?:s|):\/\/[_\-\/\.\d\w]+?\/(\d{4,})_p\d{1,4}[_\-\/\.\d\w]*)/ ]; window.addEventListener('load', function(){ var cover_1=document.querySelector(".fvHsDQ") var cover_2=document.querySelector(".hYvGvO") var cover_3=document.querySelector(".cSAnog") if(cover_2!=null){ cover_2.remove() cover_1.style.position="unset"; cover_3.style.whiteSpace="unset" var text=cover_3.innerHTML cover_3.innerHTML=""+cover_3.innerHTML+"" } }) window.addEventListener('contextmenu',function (event){ //———————————————————————————————— //———————————————————————————————— var el=event.target if(el!=null){ var url,pid,HTML,results if(event.ctrlKey){ HTML=el.outerHTML for(var i in match_rules){ results=HTML.match(match_rules[i]) if(results!=null&&results.length>1){ url=results[1] pid=results[2] break } } //—————————————————————————————————————————————— if(results!=null){ var HTML_1=el.parentNode.previousSibling.childNodes[1] var HTML_2="no results" //多张图片打开↓↓↓ if(HTML_1!=undefined){ HTML_2=HTML_1.childNodes[0].childNodes[1].childNodes[0].data if(HTML_2>=15){ var HTML_3=15 } else{ HTML_3=HTML_2 } for(var k=1;k<=HTML_3;k++){ var url_multiple="https://pixiv.cat/"+pid+"-"+k+".png" window.open(url_multiple) console.log(url_multiple) } } //单张图片打开↓↓↓ else{ var url_single="https://pixiv.cat/"+pid+".png" window.open(url_single) console.log(url_single) } } //—————————————————————————————————————————————— //动态图封面打开↓↓↓ else{ var ans=HTML.split(".jpg")[0] var ans_1=ans.split("/")[ans.split("/").length-1] var pid_2=ans_1.split("_")[0] var url_single_gif="https://pixiv.cat/"+pid_2+".gif" window.open(url_single_gif) console.log(url_single_gif) } event.preventDefault() console.log(HTML_2) //—————————————————————————————————————————————— } //ctrl事件结束,alt事件开始 if(event.altKey){ HTML=el.outerHTML for(var u in match_rules){ results=HTML.match(match_rules[u]) if(results!=null&&results.length>1){ url=results[1] pid=results[2] break } if(results==null){ var ans_alt=HTML.split(".jpg")[0] var ans_alt1=ans_alt.split("/")[ans_alt.split("/").length-1] pid=ans_alt1.split("_")[0] console.log("alt事件pid:"+pid) } } GM_setClipboard(pid);//复制pid至剪切板 //自动收藏↓↓↓ var HTML_click_1=el.parentNode.parentNode.parentNode.childNodes[1] var HTML_click_2=HTML_click_1.childNodes[0].childNodes[0] HTML_click_2.click() event.preventDefault() console.log("Complete click") } } }); })();