mirror of
https://github.com/wassname/chatGPTBox.git
synced 2026-07-21 12:30:21 +08:00
73 lines
2.2 KiB
JavaScript
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: {},
|
|
})
|
|
})
|
|
},
|
|
},
|
|
}
|