mirror of
https://github.com/the1812/Bilibili-Evolved.git
synced 2025-11-04 21:22:45 +08:00
226 lines
5.7 KiB
JavaScript
226 lines
5.7 KiB
JavaScript
export const customNavbarDefaultOrders = {
|
|
blank1: 0,
|
|
logo: 1,
|
|
category: 2,
|
|
rankingLink: 3,
|
|
drawingLink: 4,
|
|
musicLink: 5,
|
|
gamesIframe: 6,
|
|
livesIframe: 7,
|
|
shopLink: 8,
|
|
mangaLink: 9,
|
|
blank2: 10,
|
|
search: 11,
|
|
userInfo: 12,
|
|
messages: 13,
|
|
activities: 14,
|
|
bangumiLink: 15,
|
|
watchlaterList: 16,
|
|
favoritesList: 17,
|
|
historyList: 18,
|
|
upload: 19,
|
|
blank3: 20,
|
|
}
|
|
export const settings = {
|
|
useDarkStyle: false,
|
|
compactLayout: false,
|
|
// showBanner: true,
|
|
hideBanner: false,
|
|
expandDanmakuList: true,
|
|
expandDescription: true,
|
|
watchLaterRedirect: true,
|
|
touchNavBar: false,
|
|
touchVideoPlayer: false,
|
|
customControlBackgroundOpacity: 0.64,
|
|
customControlBackground: true,
|
|
darkScheduleStart: '18:00',
|
|
darkScheduleEnd: '6:00',
|
|
darkSchedule: false,
|
|
blurVideoControl: false,
|
|
toast: true,
|
|
fullTweetsTitle: true,
|
|
fullPageTitle: false,
|
|
removeVideoTopMask: false,
|
|
removeLiveWatermark: true,
|
|
harunaScale: true,
|
|
removeAds: true,
|
|
hideTopSearch: false,
|
|
touchVideoPlayerDoubleTapControl: false,
|
|
customStyleColor: '#00A0D8',
|
|
preserveRank: true,
|
|
blurBackgroundOpacity: 0.382,
|
|
useDefaultPlayerMode: false,
|
|
applyPlayerModeOnPlay: true,
|
|
defaultPlayerMode: '常规',
|
|
useDefaultVideoQuality: false,
|
|
defaultVideoQuality: '自动',
|
|
useDefaultDanmakuSettings: false,
|
|
enableDanmaku: true,
|
|
rememberDanmakuSettings: false,
|
|
danmakuSettings: {
|
|
subtitlesPreserve: false,
|
|
smartMask: false,
|
|
},
|
|
defaultPlayerLayout: '新版',
|
|
defaultBangumiLayout: '旧版',
|
|
useDefaultPlayerLayout: false,
|
|
skipChargeList: false,
|
|
comboLike: false,
|
|
autoLightOff: false,
|
|
useCache: true,
|
|
autoContinue: false,
|
|
allowJumpContinue: false,
|
|
autoPlay: false,
|
|
showDeadVideoTitle: false,
|
|
deadVideoTitleProvider: '稍后再看',
|
|
useBiliplusRedirect: false,
|
|
biliplusRedirect: false,
|
|
framePlayback: true,
|
|
useCommentStyle: true,
|
|
imageResolution: false,
|
|
imageResolutionScale: 'auto',
|
|
toastInternalError: false,
|
|
i18n: false,
|
|
i18nLanguage: '日本語',
|
|
playerFocus: false,
|
|
playerFocusOffset: -10,
|
|
oldTweets: false,
|
|
simplifyLiveroom: false,
|
|
simplifyLiveroomSettings: {
|
|
vip: true,
|
|
fansMedal: true,
|
|
title: true,
|
|
userLevel: true,
|
|
guard: true,
|
|
systemMessage: true,
|
|
welcomeMessage: true,
|
|
giftMessage: true,
|
|
guardPurchase: true,
|
|
popup: false,
|
|
skin: false,
|
|
},
|
|
customNavbar: true,
|
|
customNavbarFill: true,
|
|
allNavbarFill: true,
|
|
customNavbarShadow: true,
|
|
customNavbarCompact: false,
|
|
customNavbarBlur: false,
|
|
customNavbarBlurOpacity: 0.7,
|
|
customNavbarOrder: { ...customNavbarDefaultOrders },
|
|
customNavbarHidden: ['bangumiLink'],
|
|
customNavbarBoundsPadding: 5,
|
|
playerShadow: false,
|
|
narrowDanmaku: true,
|
|
favoritesRedirect: true,
|
|
outerWatchlater: true,
|
|
hideOldEntry: true,
|
|
videoScreenshot: false,
|
|
hideBangumiReviews: false,
|
|
filenameFormat: '[title][ - ep]',
|
|
sideBarOffset: 0,
|
|
noLiveAutoplay: false,
|
|
hideHomeLive: false,
|
|
noMiniVideoAutoplay: false,
|
|
useDefaultVideoSpeed: false,
|
|
defaultVideoSpeed: '1',
|
|
hideCategory: false,
|
|
foldComment: true,
|
|
downloadVideoDefaultDanmaku: '无',
|
|
aria2RpcOption: {
|
|
secretKey: '',
|
|
dir: '',
|
|
host: '127.0.0.1',
|
|
port: '6800',
|
|
method: 'get',
|
|
skipByDefault: false,
|
|
},
|
|
cache: {},
|
|
}
|
|
const fixedSettings = {
|
|
guiSettings: true,
|
|
viewCover: true,
|
|
notifyNewVersion: true,
|
|
clearCache: true,
|
|
downloadVideo: true,
|
|
downloadDanmaku: true,
|
|
downloadAudio: true,
|
|
playerLayout: true,
|
|
medalHelper: true,
|
|
about: true,
|
|
forceWide: false,
|
|
useNewStyle: false,
|
|
overrideNavBar: false,
|
|
touchVideoPlayerAnimation: false,
|
|
latestVersionLink: 'https://github.com/the1812/Bilibili-Evolved/raw/preview/bilibili-evolved.preview.user.js',
|
|
currentVersion: GM_info.script.version,
|
|
}
|
|
export const settingsChangeHandlers = {}
|
|
export function addSettingsListener (key, handler, initCall) {
|
|
if (!settingsChangeHandlers[key]) {
|
|
settingsChangeHandlers[key] = [handler]
|
|
} else {
|
|
settingsChangeHandlers[key].push(handler)
|
|
}
|
|
if (initCall) {
|
|
const value = settings[key]
|
|
handler(value, value)
|
|
}
|
|
}
|
|
export function removeSettingsListener (key, handler) {
|
|
const handlers = settingsChangeHandlers[key]
|
|
if (!handlers) {
|
|
return
|
|
}
|
|
handlers.splice(handlers.indexOf(handler), 1)
|
|
}
|
|
export function loadSettings () {
|
|
for (const key in fixedSettings) {
|
|
settings[key] = fixedSettings[key]
|
|
GM_setValue(key, fixedSettings[key])
|
|
}
|
|
if (Object.keys(languageCodeToName).includes(navigator.language)) {
|
|
settings.i18n = true
|
|
settings.i18nLanguage = languageCodeToName[navigator.language]
|
|
}
|
|
for (const key in settings) {
|
|
let value = GM_getValue(key)
|
|
if (value === undefined) {
|
|
value = settings[key]
|
|
GM_setValue(key, settings[key])
|
|
} else if (settings[key] !== undefined && value.constructor === Object) {
|
|
value = Object.assign(settings[key], value)
|
|
}
|
|
Object.defineProperty(settings, key, {
|
|
get () {
|
|
return value
|
|
},
|
|
set (newValue) {
|
|
value = newValue
|
|
GM_setValue(key, newValue)
|
|
|
|
const handlers = settingsChangeHandlers[key]
|
|
if (handlers) {
|
|
if (key === 'useDarkStyle') {
|
|
setTimeout(() => handlers.forEach(h => h(newValue, value)), 200)
|
|
} else {
|
|
handlers.forEach(h => h(newValue, value))
|
|
}
|
|
}
|
|
const input = document.querySelector(`input[key=${key}]`)
|
|
if (input !== null) {
|
|
if (input.type === 'checkbox') {
|
|
input.checked = newValue
|
|
} else if (input.type === 'text' && !input.parentElement.classList.contains('gui-settings-dropdown')) {
|
|
input.value = newValue
|
|
}
|
|
}
|
|
}
|
|
})
|
|
}
|
|
}
|
|
export function saveSettings (newSettings) {
|
|
}
|
|
export function onSettingsChange () {
|
|
console.warn('此功能已弃用.')
|
|
}
|