');
}
else {
$(document.body).append('
');
}
setTimeout(function () {
obj.hideTip();
}, timeout || 3000);
};
obj.showTipError = function (msg, timeout) {
obj.hideTip();
var $element = $(".aDrive div");
if ($element.length) {
$element.append('
');
}
else {
$(document.body).append('
');
}
setTimeout(function () {
obj.hideTip()
}, timeout || 3000);
};
obj.showTipLoading = function (msg, timeout) {
obj.hideTip();
var $element = $(".aDrive div");
if ($element.length) {
$element.append('
');
}
else {
$(document.body).append('
');
}
setTimeout(function () {
obj.hideTip()
}, timeout || 5000);
};
obj.hideTip = function() {
var t = $(".aDrive-notice");
t.length && "function" == typeof t.remove ? t.remove() : "function" == typeof t.removeNode && t.removeNode(!0);
};
obj.addPageFileList = function () {
var send = XMLHttpRequest.prototype.send;
XMLHttpRequest.prototype.send = function(data) {
this.addEventListener("load", function(event) {
if (this.readyState == 4 && this.status == 200) {
var response = this.response, responseURL = this.responseURL;
if (responseURL.endsWith("/file/get")) {
try { response = JSON.parse(response) } catch (error) { };
if (response instanceof Object) {
obj.file_page.file_info = response;
}
}
else if (responseURL.indexOf("/file/list") > 0 || responseURL.indexOf("/file/search") > 0) {
if (document.querySelector(".ant-modal-mask")) {
//排除【保存 移动 等行为触发】
return;
};
try { response = JSON.parse(response) } catch (error) { };
if (response instanceof Object && response.items) {
try { data = JSON.parse(data) } catch (error) { data = {} };
if (obj.file_page.parent_file_id != data.parent_file_id) {
//变换页面
obj.file_page.parent_file_id = data.parent_file_id;
obj.file_page.order_by = data.order_by;
obj.file_page.order_direction = data.order_direction;
obj.file_page.next_marker_list = [];
obj.file_page.items = [];
}
if (obj.file_page.order_by != data.order_by || obj.file_page.order_direction != data.order_direction) {
//排序改变
obj.file_page.order_by = data.order_by;
obj.file_page.order_direction = data.order_direction;
obj.file_page.next_marker_list = [];
obj.file_page.items = [];
}
var next_marker = response.next_marker, next_marker_list = obj.file_page.next_marker_list;
if (next_marker_list.includes(next_marker)) {
if (next_marker_list.indexOf(next_marker) == 0) {
//重复排序
obj.file_page.next_marker_list = [response.next_marker];
obj.file_page.items = [];
}
}
else {
obj.file_page.next_marker_list.push(response.next_marker)
}
obj.file_page.items = obj.file_page.items.concat(response.items);
obj.showTipSuccess("文件列表获取完成 共:" + obj.file_page.items.length + "项");
if (obj.file_page.items.length) {
if (obj.isHomePage()) {
obj.initDownloadHomePage();
}
else {
obj.initDownloadSharePage();
obj.switchViewArrow();
}
}
}
}
else if (responseURL.indexOf("/file/get_share_link_video_preview_play_info") > 0) {
try { response = JSON.parse(response) } catch (error) { };
if (response instanceof Object) {
obj.video_page.play_info.file_id == response.file_id || (obj.video_page.subtitle_list = []);
obj.video_page.play_info = response;
obj.autoPlayer();
}
}
else if (responseURL.indexOf("/file/get_video_preview_play_info") > 0) {
try { response = JSON.parse(response) } catch (error) { };
if (response instanceof Object) {
obj.video_page.play_info.file_id == response.file_id || (obj.video_page.subtitle_list = []);
obj.video_page.play_info = response;
var info = response.video_preview_play_info
, list = info.live_transcoding_task_list;
if (list[0].hasOwnProperty("preview_url")) {
if (obj.getItem("default_player") != "NativePlayer") {
obj.get_share_link_video_preview_play_info(function (response) {
response || obj.showTipError("播放信息获取失败 请刷新重试", 10000);
});
return;
}
}
obj.autoPlayer();
}
}
}
else if (this.readyState == 4 && this.status == 403) {
if (obj.expires(this.responseURL) && obj.getItem("default_player") != "NativePlayer") {
var media_num = (this.responseURL.match(/media-(\d+)\.ts/) || [])[1] || 0;
if (media_num > 0 && obj.video_page.media_num != media_num) {
obj.video_page.media_num = media_num;
if (obj.getShareId()) {
obj.get_share_link_video_preview_play_info();
}
else {
obj.get_video_preview_play_info();
}
}
}
}
}, false);
send.apply(this, arguments);
};
};
obj.jituiSharePage = function () {
(function(open) {
XMLHttpRequest.prototype.open = function() {
if (!this._hooked) {
this._hooked = true;
setupHook(this);
}
open.apply(this, arguments);
}
})(XMLHttpRequest.prototype.open);
function setupHook(xhr) {
(function setup() {
Object.defineProperty(xhr, "responseText", {
get: function() {
delete xhr.responseText;
var responseURL = xhr.responseURL, responseText = xhr.responseText;
if (responseURL.includes("/file/list") && responseText) {
var responseJson = JSON.parse(responseText);
responseJson.items && responseJson.items.forEach(function (item) {
if (item.category == "video") {
if (["ts"].includes(item.file_extension)) {
item.file_extension = "mp4";
}
}
else if (item.category == "audio") {
if (["ape"].includes(item.file_extension)) {
item.file_extension = "mp3";
}
}
if (item.punish_flag) {
item.punish_flag = 0;
}
});
responseText = JSON.stringify(responseJson);
}
setup();
return responseText;
},
configurable: true
});
})();
}
};
obj.jituiHomePage = function () {
(function(open) {
XMLHttpRequest.prototype.open = function() {
if (!this._hooked) {
this._hooked = true;
setupHook(this);
}
open.apply(this, arguments);
}
})(XMLHttpRequest.prototype.open);
function setupHook(xhr) {
(function setup() {
Object.defineProperty(xhr, "response", {
get: function getter() {
delete xhr.response;
var responseURL = xhr.responseURL, response = xhr.response;
if (responseURL.includes("/file/list") && response) {
try { response = JSON.parse(response) } catch (error) { };
response.items && response.items.forEach(function (item) {
if (item.category == "video") {
if (["ts"].includes(item.file_extension)) {
item.file_extension = "mp4";
}
}
else if (item.category == "audio") {
if (["ape"].includes(item.file_extension)) {
item.file_extension = "mp3";
}
}
if (item.punish_flag) {
item.punish_flag = 0;
}
});
}
setup();
return response;
},
configurable: true
});
})();
}
};
obj.goldlogSpm = function () {
unsafeWindow.goldlog = {};
Object.defineProperty(unsafeWindow.goldlog, "_$",{
value: {},
configurable: false
});
var key = obj.getItem("APLUS_LS_KEY");
key && key != "/**/" && obj.setItem(key[0], "/**/");
};
obj.run = function() {
obj.goldlogSpm();
obj.addPageFileList();
obj.initVideoPage();
var url = location.href;
if (url.indexOf(".aliyundrive.com/s/") > 0) {
obj.jituiSharePage();
}
else if (url.indexOf(".aliyundrive.com/drive") > 0) {
obj.jituiHomePage();
obj.customSharePwd();
}
}();
console.log("=== 阿里云盘 好棒棒!===");
// Your code here...
})();