Bilibili-Evolved/video/default-player-layout.js
2019-05-10 22:31:51 +08:00

153 lines
3.9 KiB
JavaScript

// const videoDropdown = await SpinQuery.select(() => document.querySelector(`input[key=defaultPlayerLayout]`));
// const bangumiDropdown = await SpinQuery.select(() => document.querySelector(`input[key=defaultBangumiLayout]`));
// const navbarOption = await SpinQuery.select(() => document.querySelector(`input[key=overrideNavBar]`));
// if (!videoDropdown || !bangumiDropdown)
// {
// logError("无法加载播放器布局选项.");
// return;
// }
class LayoutCookie
{
setCookie(key, value)
{
document.cookie = `${key}=${value};path=/;domain=.bilibili.com;max-age=31536000`;
}
clearCookie(key)
{
document.cookie = `${key}=;path=/;domain=.bilibili.com;max-age=0`;
}
getValue(key)
{
return document.cookie.replace(new RegExp(`(?:(?:^|.*;\\s*)${key}\\s*\\=\\s*([^;]*).*$)|^.*$`), "$1");
}
checkSettings()
{
return settings.useDefaultPlayerLayout;
}
checkCookies()
{
if (!this.checkSettings())
{
return;
}
}
useNewLayout()
{
if (!this.checkSettings())
{
return;
}
}
useOldLayout()
{
if (!this.checkSettings())
{
return;
}
}
setLayout(newLayout)
{
if (newLayout)
{
this.useNewLayout();
}
else
{
this.useOldLayout();
}
}
}
class VideoLayoutCookie extends LayoutCookie
{
checkCookies()
{
super.checkCookies();
const value = this.getValue(this.cookieKey);
if (value === "" || parseInt(value) < 0 && settings.defaultPlayerLayout !== "旧版")
{
this.useNewLayout();
}
else if (settings.defaultPlayerLayout !== "新版")
{
this.useOldLayout();
}
}
constructor()
{
super();
this.cookieKey = "stardustvideo";
this.checkCookies();
}
useNewLayout()
{
super.useNewLayout();
this.setCookie(this.cookieKey, 1);
// navbarOption.disabled = false;
// $(navbarOption).change();
}
useOldLayout()
{
super.useOldLayout();
this.setCookie(this.cookieKey, -1);
// if (settings.overrideNavBar)
// {
// navbarOption.checked = false;
// navbarOption.disabled = true;
// $(navbarOption).change();
// settings.overrideNavBar = false;
// saveSettings(settings);
// Toast.info(`已关闭<span>搜索栏置顶</span>功能, 因为旧版视频播放器布局不兼容此功能.`, "提示", 5000);
// }
}
}
class BangumiLayoutCookie extends LayoutCookie
{
checkCookies()
{
super.checkCookies();
const value = this.getValue(this.cookieKey);
if (value === "" || parseInt(value) <= 0 && settings.defaultBangumiLayout !== "旧版")
{
this.useNewLayout();
}
else if (settings.defaultBangumiLayout !== "新版")
{
this.useOldLayout();
}
}
constructor()
{
super();
this.cookieKey = "stardustpgcv";
this.checkCookies();
}
useNewLayout()
{
super.useNewLayout();
this.setCookie(this.cookieKey, "0606");
}
useOldLayout()
{
super.useOldLayout();
this.setCookie(this.cookieKey, 0);
}
}
const videoCookie = new VideoLayoutCookie();
addSettingsListener("defaultPlayerLayout", value =>
{
videoCookie.setLayout(value === "新版");
});
// $(videoDropdown).on("input", () =>
// {
// videoCookie.setLayout(videoDropdown.value === "新版");
// });
const bangumiCookie = new BangumiLayoutCookie();
addSettingsListener("defaultBangumiLayout", value =>
{
bangumiCookie.setLayout(value === "新版");
});
// $(bangumiDropdown).on("input", () =>
// {
// bangumiCookie.setLayout(bangumiDropdown.value === "新版");
// });