// ==UserScript==
// @name DJ网站舞曲下载[52pojie]
// @namespace http://nickvico.com/
// @version 0.4.1
// @description DJKK舞曲网、清风DJ舞曲网、IK123、DJ炫音社 舞曲下载。
// @author NewType
// @match *://*.djkk.com/dance/play/*
// @match *://*.ik123.com/mp3-dj/*
// @match *://*.vvvdj.com/play/*
// @match *://*.xuanyinshe.com/*&tid=*
// @connect vvvdj.com
// @run-at document-end
// @grant GM_addStyle
// @grant GM_xmlhttpRequest
// @grant GM_download
// @license MIT License
// @downloadURL https://update.greasyfork.icu/scripts/27090/DJ%E7%BD%91%E7%AB%99%E8%88%9E%E6%9B%B2%E4%B8%8B%E8%BD%BD%5B52pojie%5D.user.js
// @updateURL https://update.greasyfork.icu/scripts/27090/DJ%E7%BD%91%E7%AB%99%E8%88%9E%E6%9B%B2%E4%B8%8B%E8%BD%BD%5B52pojie%5D.meta.js
// ==/UserScript==
(function() {
'use strict';
if( inurl('djkk.com') ) {
var m4a = list[0].m4a;
var mp3 = m4a.replace('//mx.djkk.com/mix', '//do.djkk.com/mp3').replace('.m4a', '.mp3');
$('li#songdown>a').attr('href', mp3);
$('body').append('
');
}
if( inurl('vvvdj.com') ) {
var mp4 = 'http://' + fwq3g + '.vvvdj.com/mp4/' + mpurl + '.mp4'; //需要将UA伪装成移动端才可以试听及下载。
$('body').append('');
$('a#by_xhr').click(function() { download(); return false; });
$('a#by_aria2').click(function() { downloadByaria2(); return false; });
}
if( inurl('ik123.com') ) {
$('body').append('');
}
if( inurl('xuanyinshe.com') ) {
(function(d, l) {
var getQueryString = function(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
var r = l.search.substr(1).match(reg);
return r != null ? decodeURIComponent(r[2]) : null;
};
var song = l.protocol + "//" + l.host + "/plugin.php?id=mxi_aplay:download&aid=" + d.querySelector("a[tid='" + getQueryString("tid") + "']").getAttribute("packaid");
var n = d.querySelector("h4.mp3Title").textContent;
d.body.insertAdjacentHTML("beforeend", '');
})(document, location);
}
GM_addStyle(`.tips {
color: #fff;
position: fixed;
top: 0px;
background: #6e6d65;
width: 100%;
padding: 4px;
text-align: center;
}
.tips a,b {
color: #9add0f;
}`);
function inurl(str) {
var url = document.location.href;
return url.indexOf(str) >= 0;
}
function downloadProgress(event) {
if(event.lengthComputable) {
var percentComplete = event.loaded / event.total * 100;
$('div.tips>b').text(percentComplete.toFixed(2) + '%');
}
}
function download() {
var tips = $('div.tips');
tips.find('a#by_xhr').hide();
tips.find('b').text('准备下载...');
GM_xmlhttpRequest({
method: 'GET',
responseType: 'blob',
headers: {'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1'},
url: mp4,
onload: function(r) {
var tips = $('div.tips');
tips.find('b').text('处理中...');
var a = document.createElement('a');
var burl = window.URL.createObjectURL(r.response);
a.href = burl;
a.download = n + '.m4a';
a.click();
window.URL.revokeObjectURL(burl);
tips.find('a#by_xhr').show();
tips.find('b').text('');
},
onprogress: function(r) { downloadProgress(r); }
});
}
function downloadBybrowser() {
GM_download({
url: mp4,
name: n + '.mp4',
header: {'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1'},
onload: function(){
alert('下载成功!');
},
onerror: function(download){
console.log(download);
alert('下载失败!');
}
});
}
function downloadByaria2() {
var rpc = {
'jsonrpc': '2.0',
'method': 'aria2.addUri',
'id': (new Date()).getTime().toString(),
'params': [
[ mp4 ],
{
'out': n + '.m4a',
'header': 'User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1'
}
]
};
var xhr = new XMLHttpRequest();
xhr.open('POST', 'http://192.168.1.1:6800/jsonrpc?tm=' + (new Date()).getTime().toString(), true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
xhr.onload = function(e) {
if(this.status == 200 || this.status == 304){
alert('任务已经添加至 Aria2-rpc 请自行查看!');
}
};
xhr.onerror = function(e) { alert('添加任务失败!'); };
xhr.send(JSON.stringify(rpc));
}
})();