From 2bb5f41189bf3ffd1cbfac0f43bb441df4c0436c Mon Sep 17 00:00:00 2001 From: IndieKKY Date: Sun, 6 Oct 2024 18:55:41 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/chrome/background.ts | 2 +- src/message-typings.d.ts | 91 ++++++++++++++++++++++++++++++++ src/typings.d.ts | 111 +-------------------------------------- 3 files changed, 93 insertions(+), 111 deletions(-) create mode 100644 src/message-typings.d.ts diff --git a/src/chrome/background.ts b/src/chrome/background.ts index dd646f5..56c0882 100644 --- a/src/chrome/background.ts +++ b/src/chrome/background.ts @@ -78,7 +78,7 @@ const methods: { const extensionMessaging = new ExtensionMessaging() extensionMessaging.init(methods) -chrome.runtime.onMessage.addListener((event: MessageData, sender: chrome.runtime.MessageSender, sendResponse: (result: any) => void) => { +chrome.runtime.onMessage.addListener((event: any, sender: chrome.runtime.MessageSender, sendResponse: (result: any) => void) => { // debug((sender.tab != null) ? `tab ${sender.tab.url ?? ''} => ` : 'extension => ', event) // legacy diff --git a/src/message-typings.d.ts b/src/message-typings.d.ts new file mode 100644 index 0000000..ee0a1b8 --- /dev/null +++ b/src/message-typings.d.ts @@ -0,0 +1,91 @@ +//extension +interface ExtensionCloseSidePanelMessage extends ExtensionMessage<{}> { + method: 'CLOSE_SIDE_PANEL'; + } + + interface ExtensionAddTaskMessage extends ExtensionMessage<{ taskDef: TaskDef }> { + method: 'ADD_TASK'; + return: Task + } + + interface ExtensionGetTaskMessage extends ExtensionMessage<{ taskId: string }> { + method: 'GET_TASK'; + return: { + code: 'ok' + task: Task + } | { + code: 'not_found' + } + } + + interface ExtensionShowFlagMessage extends ExtensionMessage<{ show: boolean }> { + method: 'SHOW_FLAG'; + } + + type AllExtensionMessages = ExtensionCloseSidePanelMessage | ExtensionAddTaskMessage | ExtensionGetTaskMessage | ExtensionShowFlagMessage + + + + + //inject + interface InjectToggleDisplayMessage extends InjectMessage<{}> { + method: 'TOGGLE_DISPLAY'; + } + + interface InjectFoldMessage extends InjectMessage<{ fold: boolean }> { + method: 'FOLD'; + } + + interface InjectMoveMessage extends InjectMessage<{ time: number, togglePause: boolean }> { + method: 'MOVE'; + } + + interface InjectGetSubtitleMessage extends InjectMessage<{ info: any }> { + method: 'GET_SUBTITLE'; + } + + interface InjectGetVideoStatusMessage extends InjectMessage<{}> { + method: 'GET_VIDEO_STATUS'; + } + + interface InjectGetVideoElementInfoMessage extends InjectMessage<{}> { + method: 'GET_VIDEO_ELEMENT_INFO'; + } + + interface InjectRefreshVideoInfoMessage extends InjectMessage<{ force: boolean }> { + method: 'REFRESH_VIDEO_INFO'; + } + + interface InjectUpdateTransResultMessage extends InjectMessage<{ result: string }> { + method: 'UPDATE_TRANS_RESULT'; + } + + interface InjectHideTransMessage extends InjectMessage<{}> { + method: 'HIDE_TRANS'; + } + + interface InjectPlayMessage extends InjectMessage<{ play: boolean }> { + method: 'PLAY'; + } + + interface InjectDownloadAudioMessage extends InjectMessage<{}> { + method: 'DOWNLOAD_AUDIO'; + } + + type AllInjectMessages = InjectToggleDisplayMessage | InjectFoldMessage | InjectMoveMessage | InjectGetSubtitleMessage | InjectGetVideoStatusMessage | InjectGetVideoElementInfoMessage | InjectRefreshVideoInfoMessage | InjectUpdateTransResultMessage | InjectHideTransMessage | InjectPlayMessage | InjectDownloadAudioMessage + + + + + //app + interface AppSetInfosMessage extends AppMessage<{ infos: any }> { + method: 'SET_INFOS'; + } + + interface AppSetVideoInfoMessage extends AppMessage<{ url: string, title: string, aid: number | null, pages: any, infos: any }> { + method: 'SET_VIDEO_INFO'; + } + + type AllAPPMessages = AppSetInfosMessage | AppSetVideoInfoMessage + + \ No newline at end of file diff --git a/src/typings.d.ts b/src/typings.d.ts index 6dda904..0736887 100644 --- a/src/typings.d.ts +++ b/src/typings.d.ts @@ -1,114 +1,5 @@ -//extension -interface ExtensionCloseSidePanelMessage extends ExtensionMessage<{}> { - method: 'CLOSE_SIDE_PANEL'; -} - -interface ExtensionAddTaskMessage extends ExtensionMessage<{ taskDef: TaskDef }> { - method: 'ADD_TASK'; - return: Task -} - -interface ExtensionGetTaskMessage extends ExtensionMessage<{ taskId: string }> { - method: 'GET_TASK'; - return: { - code: 'ok' - task: Task - } | { - code: 'not_found' - } -} - -interface ExtensionShowFlagMessage extends ExtensionMessage<{ show: boolean }> { - method: 'SHOW_FLAG'; -} - -type AllExtensionMessages = ExtensionCloseSidePanelMessage | ExtensionAddTaskMessage | ExtensionGetTaskMessage | ExtensionShowFlagMessage - -//inject -interface InjectToggleDisplayMessage extends InjectMessage<{}> { - method: 'TOGGLE_DISPLAY'; -} - -interface InjectFoldMessage extends InjectMessage<{ fold: boolean }> { - method: 'FOLD'; -} - -interface InjectMoveMessage extends InjectMessage<{ time: number, togglePause: boolean }> { - method: 'MOVE'; -} - -interface InjectGetSubtitleMessage extends InjectMessage<{ info: any }> { - method: 'GET_SUBTITLE'; -} - -interface InjectGetVideoStatusMessage extends InjectMessage<{}> { - method: 'GET_VIDEO_STATUS'; -} - -interface InjectGetVideoElementInfoMessage extends InjectMessage<{}> { - method: 'GET_VIDEO_ELEMENT_INFO'; -} - -interface InjectRefreshVideoInfoMessage extends InjectMessage<{ force: boolean }> { - method: 'REFRESH_VIDEO_INFO'; -} - -interface InjectUpdateTransResultMessage extends InjectMessage<{ result: string }> { - method: 'UPDATE_TRANS_RESULT'; -} - -interface InjectHideTransMessage extends InjectMessage<{}> { - method: 'HIDE_TRANS'; -} - -interface InjectPlayMessage extends InjectMessage<{ play: boolean }> { - method: 'PLAY'; -} - -interface InjectDownloadAudioMessage extends InjectMessage<{}> { - method: 'DOWNLOAD_AUDIO'; -} - -type AllInjectMessages = InjectToggleDisplayMessage | InjectFoldMessage | InjectMoveMessage | InjectGetSubtitleMessage | InjectGetVideoStatusMessage | InjectGetVideoElementInfoMessage | InjectRefreshVideoInfoMessage | InjectUpdateTransResultMessage | InjectHideTransMessage | InjectPlayMessage | InjectDownloadAudioMessage - -//app -interface AppSetInfosMessage extends AppMessage<{ infos: any }> { - method: 'SET_INFOS'; -} - -interface AppSetVideoInfoMessage extends AppMessage<{ url: string, title: string, aid: number | null, pages: any, infos: any }> { - method: 'SET_VIDEO_INFO'; -} - -type AllAPPMessages = AppSetInfosMessage | AppSetVideoInfoMessage - -interface MessageResponse { - success: boolean; - data?: T; - error?: string; -} - - - -type MessageFrom = 'extension' | 'inject' | 'app' - -interface MessageData { - from: MessageFrom - target: string - method: string - params?: any - [key: string]: any -} - -interface MessageResult { - success: boolean - code: number - message?: string - data?: any -} - interface MethodContext { - from: MessageFrom + from: 'extension' | 'inject' | 'app' event: any tabId?: number // sender?: chrome.runtime.MessageSender | null