Fix Pixiv raw image 403
目前為
// ==UserScript==
// @name Pixiv raw image 403 Forbidden Fix
// @namespace https://blog.maple3142.net/
// @version 0.2
// @description Fix Pixiv raw image 403
// @author maple3142
// @match https://i.pximg.net/*
// @grant GM_xmlhttpRequest
// @grant GM_setValue
// @grant GM_getValue
// ==/UserScript==
(function() {
'use strict'
const params=new URLSearchParams(location.search)
const removeAllChild=el=>{
while(el.firstChild)el.removeChild(el.firstChild)
}
function download(url,name=true){
const a=document.createElement('a')
a.href=url
a.download=name
document.body.appendChild(a)
a.click()
a.remove()
}
if(document.title==='403 Forbidden'){
const fname=location.pathname.split('/').slice(-1)[0]
removeAllChild(document.body)
document.title='Loading image...'
document.body.style.textAlign='center'
const msg=document.createElement('h1')
msg.textContent='Loading'
msg.style.padding='0px'
msg.style.margin='0px'
document.body.appendChild(msg)
const origlink=document.createElement('a')
origlink.textContent='Original Link'
origlink.href=`https://www.pixiv.net/member_illust.php?mode=medium&illust_id=${/(\d+)/.exec(fname)[1]}`
origlink.target='_blank'
origlink.style.display='block'
origlink.style.padding='0px'
origlink.style.margin='0px'
document.body.appendChild(origlink)
GM_xmlhttpRequest({
method: 'GET',
url: location.href,
headers: {
Referer: `https://www.pixiv.net/`
},
responseType: 'blob',
onload: xhr=>{
console.log(xhr.response)
const blob=xhr.response
const url=URL.createObjectURL(blob)
const img=new Image()
img.src=url
msg.replaceWith(img)
img.oncontextmenu=e=>{
e.preventDefault()
if(confirm('Download Image?')){
download(url,fname)
}
}
document.title=fname
},
onerror: e=>{
msg.textContent='Load failed.'
}
})
}
})()