feat(default-video-speed): 记忆最新倍数,移除全局默认速度设定

视频级别的记忆功能需通过设置 `rememberVideoSpeed` 项开启
This commit is contained in:
jloeve 2020-12-17 15:29:25 +08:00
parent 587aed4c43
commit a43a90aadf
6 changed files with 17 additions and 14 deletions

View File

@ -681,12 +681,7 @@ Resource.manifest = {
useDefaultVideoSpeed: {
path: 'default-video-speed.min.js',
displayNames: {
useDefaultVideoSpeed: '记忆播放速度',
defaultVideoSpeed: '默认播放速度',
},
dropdown: {
key: 'defaultVideoSpeed',
items: ['0.5', '0.75', '1.0', '1.25', '1.5', '2.0'],
useDefaultVideoSpeed: '记忆上次播放速度',
}
},
seedsToCoins: {

View File

@ -249,6 +249,8 @@ export const settings = {
cache: {},
favoritesListCurrentSelect: '',
defaultVideoSpeedList: {},
rememberVideoSpeed: false,
latestVideoSpeed: 1,
}
const fixedSettings = {
useDefaultDanmakuSettings: false,

2
src/global.d.ts vendored
View File

@ -523,6 +523,8 @@ declare global {
defaultVideoSpeedList: {
[index: string]: string[]
},
rememberVideoSpeed: boolean,
latestVideoSpeed: number,
}
const GM_info: MonkeyInfo
function GM_xmlhttpRequest(details: MonkeyXhrDetails): { abort: () => void }

View File

@ -54,7 +54,6 @@
<!-- <checkbox indent="0" key="useDefaultVideoQuality" dependencies=""></checkbox>
<dropdown indent="1" key="defaultVideoQuality" dependencies="useDefaultVideoQuality"></dropdown> -->
<checkbox indent="0" key="useDefaultVideoSpeed" dependencies=""></checkbox>
<dropdown indent="1" key="defaultVideoSpeed" dependencies="useDefaultVideoSpeed"></dropdown>
<!-- <checkbox indent="0" key="useDefaultDanmakuSettings" dependencies=""></checkbox>
<checkbox indent="1" key="enableDanmaku" dependencies="useDefaultDanmakuSettings"></checkbox>
<checkbox indent="1" key="rememberDanmakuSettings" dependencies="useDefaultDanmakuSettings enableDanmaku">

View File

@ -139,8 +139,7 @@ export const toolTips = new Map<keyof BilibiliEvolvedSettings, string>([
['sideBarOffset', /*html*/`设定侧栏的垂直偏移量, 单位为百分比, 允许的范围为 -40% ~ 40%.`],
['hideCategory', /*html*/`隐藏主站的分区栏, 分区仍然可以从顶栏的主站菜单中进入.`],
['foldComment', /*html*/`动态里查看评论区时, 在底部添加一个<span>收起评论</span>按钮, 这样就不用再回到上面收起了.`],
['useDefaultVideoSpeed', /*html*/`设置是否记忆视频播放速度.`],
['defaultVideoSpeed', /*html*/`设置全局默认的视频播放速度,将优先使用用户对特定视频指定的倍数.`],
['useDefaultVideoSpeed', /*html*/`设置是否记忆上次选择的视频播放速度.`],
['seedsToCoins', /*html*/`在附加功能中添加<span>瓜子换硬币</span>的按钮, 点击可以将700银瓜子换成1个硬币, 每天限1次.`],
['autoDraw', /*html*/`在当前直播间有抽奖活动时, 自动点击抽奖按钮. 注意只适用于少量抽奖, 那种99+限量抽奖可能跟不上其他人的手速(`],
['keymap', /*html*/`为视频播放器启用更多的快捷键:

View File

@ -44,9 +44,6 @@ const setup = _.once(async () => {
}
Observer.all(menu, (mutations) => {
if (!settings.useDefaultVideoSpeed) {
return
}
mutations.forEach(mutation => {
const selectedSpeedOption = mutation.target as HTMLLIElement
if (selectedSpeedOption.classList.contains("bilibili-player-active")) {
@ -54,15 +51,24 @@ const setup = _.once(async () => {
if (!unsafeWindow.aid) {
throw "aid is undefined"
}
if (settings.rememberVideoSpeed) {
addSpeedToSetting(currentSpeed, unsafeWindow.aid, currentSpeed !== getDefaultVideoSpeed())
} else {
settings.latestVideoSpeed = currentSpeed
}
}
})
})
})
Observer.videoChange(async () => {
if (!settings.useDefaultVideoSpeed) {
return
}
await setup()
if (settings.useDefaultVideoSpeed) {
if (settings.rememberVideoSpeed) {
await setVideoSpeed((getSpeedFromSetting() || getDefaultVideoSpeed()))
} else {
await setVideoSpeed(settings.latestVideoSpeed)
}
})