// ==UserScript== // @name pixiv helper // @namespace http://mfish.twbbs.org/ // @include http://www.pixiv.net/member_illust.php?mode=medium&illust_id=* // @version 0.1 // @description A small script to download the new png animated image in pixiv // @grant GM_registerMenuCommand // @grant GM_openInTab // @downloadURL none // ==/UserScript== var global = unsafeWindow; GM_registerMenuCommand( '下載檔案!', downloadSmall); GM_registerMenuCommand( '下載檔案!(大圖)', downloadFullScreen); function checkUp() { if (!global.pixiv.context.ugokuIllustData) { alert('這看起來只是一般的gif或靜圖歐,請直接右鍵下載!'); throw new Error('can not found zipped image source'); } } function downloadSmall() { checkUp() var context = global.pixiv.context; var illustrate = context.ugokuIllustData; var src = illustrate.src; download(src); } function downloadFullScreen() { checkUp() var context = global.pixiv.context; var illustrate = context.ugokuIllustFullscreenData; var src = illustrate.src; download(src); } function download(src) { //console.log(src); var oReq = new XMLHttpRequest(); oReq.open("GET", src, true); oReq.responseType = "blob"; oReq.onload = function (oEvent) { var blob, objectURL; blob = oReq.response; // Note: not oReq.responseText if (blob) { //alert('success'); //console.log(blob); objectURL = URL.createObjectURL(blob); //console.log(objectURL); //window.open(objectURL); GM_openInTab(objectURL); } }; oReq.send(null); }