(function() {
'use strict';
function httpReq(url, callBack) {
let xHttp = new XMLHttpRequest();
xHttp.onreadystatechange = function () {
if(this.readyState === 4 && this.status === 200) {
callBack(xHttp.responseText);
}
};
xHttp.open("Get", url, true);
xHttp.send();
}
//
(function injectCookie() {
if(window.localStorage && window.localStorage.getItem("window.bsource") !== "wechat") {
window.localStorage.setItem("window.bsource", "wechat");
}
if(document.cookie.indexOf("wechat") === -1) {
document.cookie = "bsource=wechat";
}
})();
let lastRelateUrl = "";
let relateVideoInterVal;
let ownerInterval;
let relateEndVideoInterval;
setInterval(function () {
let relateUrl = "";
let url = document.location.href.split("/");
let vid = url[url.length - 1];
if(vid.indexOf("av") !== -1) {
relateUrl = "https://api.bilibili.com/x/web-interface/archive/related?from=h5&aid=" + /\d+/g.exec(vid)[0] + "&context=";
} else {
relateUrl = "https://api.bilibili.com/x/web-interface/archive/related?bvid=" + vid;
}
if(relateUrl.length > 0 && relateUrl !== lastRelateUrl) {
lastRelateUrl = relateUrl;
clearInterval(relateVideoInterVal);
clearInterval(ownerInterval);
clearInterval(relateEndVideoInterval);
httpReq(relateUrl, function (res) {
let data = JSON.parse(res).data;
let tidMap = {};
for(let i = 0; i < data.length; ++i) {
if(tidMap.hasOwnProperty(data[i].tid)) {
tidMap[data[i].tid] += 1;
} else {
tidMap[data[i].tid] = 1;
}
}
//
relateVideoInterVal = setInterval(function() {
let nodes = document.getElementsByClassName("v-card-toapp");
if (nodes !== undefined) {
for(let i = 0; i < nodes.length; ++i) {
nodes[i].getElementsByClassName('title')[0].innerHTML="" + data[i].title + "
";
}
}
}, 500);
//
ownerInterval = setInterval(function() {
let nodeList = ["m-video-openapp", "openapp", "m-video2-openapp", "m-video2-float-openapp", "open-app-btn m-nav-openapp",
"m-related-openapp report-scroll-module", "open-app-btn m-video-main-openapp visible-open-app-btn"];
let appList = ["v-card-toapp"];
for(let i = 0; i < appList.length; ++i) {
let app = document.getElementsByClassName(appList[i]);
for(let j = 0; j < app.length; ++j) {
let ownerNameApp = app[j].getElementsByClassName('open-app');
if(ownerNameApp && ownerNameApp.length > 0) {
ownerNameApp[0].innerText = data[j].owner.name;
}
}
if (app && app.length > 0) {
app.onclick = function() { return false };
for(let k = 0; k < nodeList.length; ++k) {
if(document.getElementsByClassName(nodeList[k]).length > 0) {
document.getElementsByClassName(nodeList[k])[0].remove();
}
}
}
}
}, 500);
//
relateEndVideoInterval = setInterval(function() {
let relateVideo = document.getElementsByClassName("player-mobile-ending-panel-title");
let app = document.getElementsByClassName("player-mobile-ending-panel-button");
if(relateVideo !== undefined && relateVideo.length > 0) {
for(let i = 0; i < data.length; ++i) {
if(relateVideo[0].textContent === data[i].title) {
relateVideo[0].innerHTML="" + data[i].title + "
";
if(app !== undefined && app.length > 0) {
app[0].innerText = data[i].owner.name;
}
}
}
}
}, 500);
})
}
}, 500);
})();