Files
chatGPTBox/src/content-script/menu-tools/index.mjs
T
2023-05-13 17:32:06 +08:00

73 lines
2.2 KiB
JavaScript

import { getCoreContentText } from '../../utils/get-core-content-text'
import Browser from 'webextension-polyfill'
import { getUserConfig } from '../../config/index.mjs'
import { openUrl } from '../../utils/open-url'
export const config = {
newChat: {
label: 'New Chat',
genPrompt: async () => {
return ''
},
},
summarizePage: {
label: 'Summarize Page',
genPrompt: async () => {
return `The following is the text content of a web page, analyze the core content and summarize:\n${getCoreContentText()}`
},
},
openConversationPage: {
label: 'Open Conversation Page',
action: async (fromBackground) => {
console.debug('action is from background', fromBackground)
if (fromBackground) {
openUrl(Browser.runtime.getURL('IndependentPanel.html'))
} else {
Browser.runtime.sendMessage({
type: 'OPEN_URL',
data: {
url: Browser.runtime.getURL('IndependentPanel.html'),
},
})
}
},
},
openConversationWindow: {
label: 'Open Conversation Window',
action: async (fromBackground) => {
console.debug('action is from background', fromBackground)
if (fromBackground) {
const config = await getUserConfig()
const url = Browser.runtime.getURL('IndependentPanel.html')
const tabs = await Browser.tabs.query({ url: url, windowType: 'popup' })
if (!config.alwaysCreateNewConversationWindow && tabs.length > 0)
await Browser.windows.update(tabs[0].windowId, { focused: true })
else
await Browser.windows.create({
url: url,
type: 'popup',
width: 500,
height: 650,
})
} else {
Browser.runtime.sendMessage({
type: 'OPEN_CHAT_WINDOW',
data: {},
})
}
},
},
closeAllChats: {
label: 'Close All Chats In This Page',
action: async (fromBackground) => {
console.debug('action is from background', fromBackground)
Browser.tabs.query({ active: true, currentWindow: true }).then((tabs) => {
Browser.tabs.sendMessage(tabs[0].id, {
type: 'CLOSE_CHATS',
data: {},
})
})
},
},
}