Files
bilibili-subtitle/src/typings.d.ts
IndieKKY 2bb5f41189 优化
2024-10-06 18:55:41 +08:00

155 lines
2.7 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

interface MethodContext {
from: 'extension' | 'inject' | 'app'
event: any
tabId?: number
// sender?: chrome.runtime.MessageSender | null
}
interface EnvData {
sidePanel?: boolean
manualInsert?: boolean //是否手动插入字幕列表
autoExpand?: boolean
flagDot?: boolean
aiType?: 'openai' | 'gemini'
// openai
apiKey?: string
serverUrl?: string
model?: string
customModel?: string
customModelTokens?: number
// gemini
geminiApiKey?: string
translateEnable?: boolean
language?: string
hideOnDisableAutoTranslate?: boolean
transDisplay?: 'target' | 'originPrimary' | 'targetPrimary'
fetchAmount?: number
summarizeEnable?: boolean
summarizeLanguage?: string
words?: number
summarizeFloat?: boolean
theme?: 'system' | 'light' | 'dark'
fontSize?: 'normal' | 'large'
// search
searchEnabled?: boolean
cnSearchEnabled?: boolean
// ask
askEnabled?: boolean
prompts?: {
[key: string]: string
}
}
interface TempData {
curSummaryType: SummaryType
downloadType?: string
compact?: boolean // 是否紧凑视图
reviewActions?: number // 点击或总结行为达到一定次数后显示评分一个视频最多只加1次
reviewed?: boolean // 是否点击过评分,undefined: 不显示true: 已点击false: 未点击(需要显示)
}
interface TaskDef {
type: 'chatComplete' | 'geminiChatComplete'
serverUrl?: string
data: any
extra?: any
}
interface Task {
id: string
startTime: number
endTime?: number
def: TaskDef
status: 'pending' | 'running' | 'done'
error?: string
resp?: any
}
interface TransResult {
// idx: number
code?: '200' | '500'
data?: string
}
type ShowElement = string | JSX.Element | undefined
interface Transcript {
body: TranscriptItem[]
}
interface TranscriptItem {
from: number
to: number
content: string
idx: number
}
interface Segment {
items: TranscriptItem[]
startIdx: number // 从1开始
endIdx: number
text: string
fold?: boolean
summaries: {
[type: string]: Summary
}
}
interface OverviewItem {
time: string
emoji: string
key: string
}
interface Summary {
type: SummaryType
status: SummaryStatus
error?: string
content?: any
}
interface AskInfo {
id: string
fold?: boolean
question: string
status: SummaryStatus
error?: string
content?: string
}
type PartialOfAskInfo = Partial<PartOfAskInfo>
/**
* 概览
*/
interface OverviewSummary extends Summary {
content?: OverviewItem[]
}
/**
* 要点
*/
interface KeypointSummary extends Summary {
content?: string[]
}
/**
* 总结
*/
interface BriefSummary extends Summary {
content?: {
summary: string
}
}
type SummaryStatus = 'init' | 'pending' | 'done'
type SummaryType = 'overview' | 'keypoint' | 'brief' | 'question'