Greasy Fork

Greasy Fork is available in English.

网易云音乐歌曲封面下载

歌曲封面下载

当前为 2017-01-21 提交的版本,查看 最新版本

// ==UserScript==
// @name     网易云音乐歌曲封面下载
// @namespace   网易云音乐歌曲封面下载
// @version      0.1
// @description  歌曲封面下载
// @author       opentdoor
// @match        http://music.163.com/*
// @grant        GM_xmlhttpRequest
// ==/UserScript==
(function() {
    'use strict';
    var ggx=function(){
        var ww=document.getElementById("g_iframe").contentWindow;
        var do2=ww.document;
        var aa=do2.querySelector("a[data-action='outchain']");
        if(aa){
            var a=do2.createElement('a');
            a.href= do2.querySelector(".j-img").dataset["src"];
            a.download=do2.querySelector(".f-ff2").innerText+'.jpg';
            a.innerHTML='封面下载';
            a.classList.add("des");
             a.classList.add("s-fc7");
            var br=do2.createElement('br');
            aa.parentElement.appendChild(br);
            aa.parentElement.appendChild(a);        
            function Download(a) {
                var ret = GM_xmlhttpRequest({
                    method: "GET",
                    overrideMimeType:"text/plain;charset=x-user-defined",
                    url: a.href,
                    onload: function(res) {
                        var binStr=res.responseText;
                        var gggr=[];
                        for (var i = 0, len = binStr.length; i < len; ++i) {
                            var c = binStr.charCodeAt(i);
                            gggr[i]=(c & 0xff);
                        }
                        var u8=new Uint8Array(gggr);
                        var b=new Blob([u8],{type:'image/jpeg'});
                        saveFile(b,a.download);
                        a.isDownload=false;
                    }
                });

            }
            function saveFile(blob, filename) {
                if (ww.navigator.msSaveBlob) {
                    ww.navigator.msSaveBlob(blob, filename);
                } else {
                    var a = do2.createElement("a");
                    var url = URL.createObjectURL(blob);
                    a.href = url;
                    a.download = filename;
                    var evt = do2.createEvent('MouseEvents');
                    evt.initEvent('click', true, true);
                    a.dispatchEvent(evt);
                    URL.revokeObjectURL(url);
                }
            }
            var ars = do2.querySelectorAll("a[href][download]");
            for (var i = 0; i < ars.length; i++) {
                var a = ars[i];
                a.addEventListener("click", function (e) {
                    e.preventDefault();
                    if (!this.isDownload) Download(this);
                    this.isDownload = true;
                    return false;
                }, true);
            }
        }
    };
   if(document.getElementById("g_iframe")) document.getElementById("g_iframe").onload=ggx;
})();