Greasy Fork is available in English.
通过Ctrl+右键快速打开pixiv图片原图(支持打开动态图的封面,但无法打开动态图),同时收藏此图片
当前为
// ==UserScript==
// @name pixiv快速打开原图&自动收藏
// @description 通过Ctrl+右键快速打开pixiv图片原图(支持打开动态图的封面,但无法打开动态图),同时收藏此图片
// @version 0.4
// @namespace Pikaqian
// @author Pikaqian
// @include *://www.pixiv.net/*
// @include *://www.pixivision.net/*
// @icon https://www.pixiv.net/favicon.ico
// @grant
// ==/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('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")
}
}
});
})();