-
Notifications
You must be signed in to change notification settings - Fork 24
/
XinMSN.js
43 lines (37 loc) · 1.16 KB
/
XinMSN.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
addKiller("XinMSN", {
"canKill": function(data) {
return data.src.indexOf("video.s-msn.com/") !== -1;
},
"process": function(data, callback) {
var xhr = new XMLHttpRequest();
xhr.open("GET", data.location);
xhr.addEventListener("load", function() {
var config = xhr.responseText;
var i = config.indexOf("videoFiles:");
config = config.substring(i+12);
i = config.indexOf("]");
config = config.substring(0,i+1);
var videoFiles = JSON.parse(config.replace(/'/g, "\"").replace(/\\x/g, "%").replace(/([{,] ?)([a-zA-Z]*):/g, "$1\"$2\":"));
var sources = [];
var heights = {};
for(var i = videoFiles.length - 1; i >= 0; i--) {
if(heights[videoFiles[i].height]) continue;
heights[videoFiles[i].height] = true;
var url = decodeURIComponent(videoFiles[i].url);
if(/\.mp4$/.test(url)) sources.push({
"isNative": true,
"url": url,
"height": videoFiles[i].height,
"format": videoFiles[i].height + "p MP4"
});
}
callback({
"playlist": [{
"poster": undefined,
"sources": sources
}]
});
},false);
xhr.send();
}
});