mirror of
https://github.com/the1812/Bilibili-Evolved.git
synced 2025-11-04 21:22:45 +08:00
feat(saveVideoMetadata): option for time format
This commit is contained in:
parent
89566501e4
commit
23eecd4e4e
@ -7,7 +7,7 @@ import { Toast } from '@/core/toast'
|
||||
import { name as componentName, title as pluginTitle } from '.'
|
||||
import { FieldsMode, Options } from './options'
|
||||
import { MetadataType, Tag, ViewPoint } from './types'
|
||||
import { bangumiSkipToViewPoints, escape, fixBgmTag, tagWithId } from './utils'
|
||||
import { bangumiSkipToViewPoints, escape, fixBgmTag, formatTime, tagWithId } from './utils'
|
||||
|
||||
class VideoMetadata {
|
||||
private readonly aid: number
|
||||
@ -85,13 +85,18 @@ async function generateFFMetadata(aid: string = unsafeWindow.aid, cid: string =
|
||||
console.debug(data)
|
||||
|
||||
const {
|
||||
options: { fieldsMode },
|
||||
options: { fieldsMode, timeFormat },
|
||||
} = getComponentSettings<Options>(componentName)
|
||||
|
||||
const generated = new Date()
|
||||
|
||||
const lines = [
|
||||
';FFMETADATA1',
|
||||
`;generated by Bilibili-Evolved v${meta.compilationInfo.version}`,
|
||||
`;generated on ${new Date().toLocaleString()}`,
|
||||
`;generated on ${generated.toLocaleDateString()} at ${generated.toLocaleTimeString(
|
||||
navigator.language,
|
||||
{ timeZoneName: 'short' },
|
||||
)}`,
|
||||
// Standard fields
|
||||
ff('title', `${basic.title} - ${data.page.title}`, false),
|
||||
ff('description', basic.description, false),
|
||||
@ -101,9 +106,10 @@ async function generateFFMetadata(aid: string = unsafeWindow.aid, cid: string =
|
||||
if (fieldsMode === FieldsMode.ALL) {
|
||||
// Custom fields
|
||||
lines.push(
|
||||
ff('metadata_generated', formatTime(generated, timeFormat)),
|
||||
ff('title', basic.title),
|
||||
ff('description', basic.description),
|
||||
ff('publish_date', new Date(basic.pubdate * 1000).toLocaleString()),
|
||||
ff('publish_date', formatTime(new Date(basic.pubdate * 1000), timeFormat)),
|
||||
ff('aid', basic.aid),
|
||||
ff('bvid', basic.bvid),
|
||||
ff('cid', data.page.cid),
|
||||
|
||||
@ -5,11 +5,22 @@ export enum FieldsMode {
|
||||
Standard = '仅标准字段',
|
||||
}
|
||||
|
||||
export enum TimeFormat {
|
||||
Timestmp = '时间戳',
|
||||
Local = '本地时间',
|
||||
IOS = 'ISO时间',
|
||||
}
|
||||
|
||||
export const options = defineOptionsMetadata({
|
||||
fieldsMode: {
|
||||
defaultValue: FieldsMode.ALL,
|
||||
displayName: 'FFMETADATA 字段',
|
||||
dropdownEnum: FieldsMode,
|
||||
defaultValue: FieldsMode.ALL,
|
||||
},
|
||||
timeFormat: {
|
||||
displayName: '时间格式',
|
||||
dropdownEnum: TimeFormat,
|
||||
defaultValue: TimeFormat.Local,
|
||||
},
|
||||
convertBangumiSkips: {
|
||||
displayName: '将番剧的「跳过头尾」转换为章节', //
|
||||
|
||||
@ -57,3 +57,17 @@ export function bangumiSkipToViewPoints(skip: EpisodeInfo['skip'], duration: num
|
||||
|
||||
return p
|
||||
}
|
||||
|
||||
export function formatTime(date: Date, format: TimeFormat) {
|
||||
switch (format) {
|
||||
case TimeFormat.Timestmp:
|
||||
return date.getTime()
|
||||
case TimeFormat.Local:
|
||||
return date.toLocaleString()
|
||||
case TimeFormat.IOS:
|
||||
return date.toISOString()
|
||||
default:
|
||||
break
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user