// ==UserScript==
// @name pixiv快速打开原图&自动收藏&原图链接打包下载
// @description 通过Ctrl+右键快速打开pixiv图片原图(支持打开动态图的封面,但无法打开动态图),同时收藏此图片
// @version 0.7
// @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==true&&event.altKey!=true){
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==true&&event.ctrlKey!=true){
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")
}
}
});
//————————————————————————————————————————————————————————————
var num=0
//————————————————————————————————创建cookie
function setCookie(cname,cvalue,exdays){
var cookie_all=cname
for(var i=0;i<20;i++){
cookie_all=cookie_all+"1"
}
exdays=-1
cookie_all=cname+"="+cvalue+"; "+exdays
var d = new Date();
d.setTime(d.getTime()+(exdays*24*60*60*1000));
var expires = "expires="+d.toGMTString();
document.cookie = cookie_all;
num=num+1
}
//————————————————————————————————调取cookie
function getCookie(cname){
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i=0; i1){
var url_result=result[1]
var pid=result[2]
break
}
}
///////////////////////////////////////////////////////
var picture_num=el.parentNode.previousSibling.childNodes[1]
var picture_num_1="no results"
/*
var HTML_url=window.location.href
var HTML_url_pid=HTML_url.split("/")[HTML_url.split("/").length-1]
*/
if(picture_num!=undefined){
picture_num_1=picture_num.childNodes[0].childNodes[1].innerHTML
}
if(event.altKey==true&&event.ctrlKey!=true){
var url_cat="https://pixiv.cat/"
var url=url_cat
if(picture_num_1!="no results"){
for(var u=0;u