mirror of
https://github.com/the1812/Bilibili-Evolved.git
synced 2025-11-04 21:22:45 +08:00
Add data save mode (#4477)
This commit is contained in:
parent
f5162f697c
commit
24b8282c2f
@ -13,7 +13,8 @@ import {
|
|||||||
UpdateCheckItem,
|
UpdateCheckItem,
|
||||||
CheckSingleTypeUpdateConfig,
|
CheckSingleTypeUpdateConfig,
|
||||||
} from './utils'
|
} from './utils'
|
||||||
import { Options } from '.'
|
import type { Options } from '.'
|
||||||
|
import { isDataSaveMode } from '@/core/utils'
|
||||||
|
|
||||||
export const checkUpdate = async (config: CheckUpdateConfig) => {
|
export const checkUpdate = async (config: CheckUpdateConfig) => {
|
||||||
const {
|
const {
|
||||||
@ -23,9 +24,12 @@ export const checkUpdate = async (config: CheckUpdateConfig) => {
|
|||||||
force = false,
|
force = false,
|
||||||
maxCount = Infinity,
|
maxCount = Infinity,
|
||||||
} = config
|
} = config
|
||||||
|
if (isDataSaveMode()) {
|
||||||
|
return '当前为流量计费网络, 跳过更新检查.'
|
||||||
|
}
|
||||||
const now = Number(new Date())
|
const now = Number(new Date())
|
||||||
const { devMode } = getGeneralSettings()
|
const { devMode } = getGeneralSettings()
|
||||||
const { options } = getComponentSettings(name)
|
const { options } = getComponentSettings<Options>(name)
|
||||||
// Remove uninstalled items
|
// Remove uninstalled items
|
||||||
Object.keys(items)
|
Object.keys(items)
|
||||||
.filter(it => !existPredicate(it))
|
.filter(it => !existPredicate(it))
|
||||||
|
|||||||
@ -24,6 +24,10 @@ export const component = defineComponentMetadata({
|
|||||||
const { monkey } = await import('@/core/ajax')
|
const { monkey } = await import('@/core/ajax')
|
||||||
const { meta } = await import('@/core/meta')
|
const { meta } = await import('@/core/meta')
|
||||||
const { Toast } = await import('@/core/toast')
|
const { Toast } = await import('@/core/toast')
|
||||||
|
const { isDataSaveMode } = await import('@/core/utils')
|
||||||
|
if (isDataSaveMode()) {
|
||||||
|
return
|
||||||
|
}
|
||||||
const now = Number(new Date())
|
const now = Number(new Date())
|
||||||
const duration = now - options.lastUpdateCheck
|
const duration = now - options.lastUpdateCheck
|
||||||
if (duration < options.minimumDuration) {
|
if (duration < options.minimumDuration) {
|
||||||
|
|||||||
@ -672,3 +672,8 @@ export const todo = (...args: unknown[]): never => {
|
|||||||
export const unreachable = (): never => {
|
export const unreachable = (): never => {
|
||||||
throw new Error(`unreachable`)
|
throw new Error(`unreachable`)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** 是否为流量计费网络 (不支持的浏览器仍按 false 算) */
|
||||||
|
export const isDataSaveMode = () => {
|
||||||
|
return navigator.connection?.saveData ?? false
|
||||||
|
}
|
||||||
|
|||||||
24
src/global.d.ts
vendored
24
src/global.d.ts
vendored
@ -9,6 +9,30 @@ declare global {
|
|||||||
const lodash: LoDashStatic
|
const lodash: LoDashStatic
|
||||||
const Vue: typeof import('vue/types/umd')
|
const Vue: typeof import('vue/types/umd')
|
||||||
|
|
||||||
|
type EnumEventTarget<EventTypes extends string> = EventTarget & {
|
||||||
|
addEventListener(
|
||||||
|
type: EventTypes,
|
||||||
|
callback: EventListenerOrEventListenerObject | null,
|
||||||
|
options?: AddEventListenerOptions | boolean,
|
||||||
|
): void
|
||||||
|
removeEventListener(
|
||||||
|
type: EventTypes,
|
||||||
|
callback: EventListenerOrEventListenerObject | null,
|
||||||
|
options?: EventListenerOptions | boolean,
|
||||||
|
): void
|
||||||
|
}
|
||||||
|
interface NetworkInformation extends EnumEventTarget<'change'> {
|
||||||
|
downlink: number
|
||||||
|
downlinkMax: number
|
||||||
|
effectiveType: string
|
||||||
|
rtt: number
|
||||||
|
saveData: boolean
|
||||||
|
type: string
|
||||||
|
}
|
||||||
|
interface Navigator {
|
||||||
|
connection?: NetworkInformation
|
||||||
|
}
|
||||||
|
|
||||||
interface GitInfo {
|
interface GitInfo {
|
||||||
commitHash: string
|
commitHash: string
|
||||||
branch: string
|
branch: string
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user