Skip to content

Commit

Permalink
support for chromium side panel (#111)
Browse files Browse the repository at this point in the history
  • Loading branch information
josStorer committed Nov 13, 2023
1 parent d0fbc9f commit 3e46fa2
Show file tree
Hide file tree
Showing 19 changed files with 62 additions and 19 deletions.
3 changes: 2 additions & 1 deletion src/_locales/de/main.json
Original file line number Diff line number Diff line change
Expand Up @@ -128,5 +128,6 @@
"Jump to bottom": "Zum Ende springen",
"Explain": "Erklären",
"Failed to get arkose token.": "Arkose-Token konnte nicht abgerufen werden.",
"Please keep https://chat.openai.com open and try again. If it still doesn't work, type some characters in the input box of chatgpt web page and try again.": "Bitte halten Sie https://chat.openai.com geöffnet und versuchen Sie es erneut. Wenn es immer noch nicht funktioniert, geben Sie einige Zeichen in das Eingabefeld der ChatGPT-Webseite ein und versuchen Sie es erneut."
"Please keep https://chat.openai.com open and try again. If it still doesn't work, type some characters in the input box of chatgpt web page and try again.": "Bitte halten Sie https://chat.openai.com geöffnet und versuchen Sie es erneut. Wenn es immer noch nicht funktioniert, geben Sie einige Zeichen in das Eingabefeld der ChatGPT-Webseite ein und versuchen Sie es erneut.",
"Open Side Panel": "Seitenleiste öffnen"
}
3 changes: 2 additions & 1 deletion src/_locales/en/main.json
Original file line number Diff line number Diff line change
Expand Up @@ -128,5 +128,6 @@
"Jump to bottom": "Jump to bottom",
"Explain": "Explain",
"Failed to get arkose token.": "Failed to get arkose token.",
"Please keep https://chat.openai.com open and try again. If it still doesn't work, type some characters in the input box of chatgpt web page and try again.": "Please keep https://chat.openai.com open and try again. If it still doesn't work, type some characters in the input box of chatgpt web page and try again."
"Please keep https://chat.openai.com open and try again. If it still doesn't work, type some characters in the input box of chatgpt web page and try again.": "Please keep https://chat.openai.com open and try again. If it still doesn't work, type some characters in the input box of chatgpt web page and try again.",
"Open Side Panel": "Open Side Panel"
}
3 changes: 2 additions & 1 deletion src/_locales/es/main.json
Original file line number Diff line number Diff line change
Expand Up @@ -128,5 +128,6 @@
"Jump to bottom": "Saltar al final",
"Explain": "Explicar",
"Failed to get arkose token.": "No se pudo obtener el token de arkose.",
"Please keep https://chat.openai.com open and try again. If it still doesn't work, type some characters in the input box of chatgpt web page and try again.": "Por favor, mantenga https://chat.openai.com abierto e inténtelo de nuevo. Si aún no funciona, escriba algunos caracteres en el cuadro de entrada de la página web de chatgpt e inténtelo de nuevo."
"Please keep https://chat.openai.com open and try again. If it still doesn't work, type some characters in the input box of chatgpt web page and try again.": "Por favor, mantenga https://chat.openai.com abierto e inténtelo de nuevo. Si aún no funciona, escriba algunos caracteres en el cuadro de entrada de la página web de chatgpt e inténtelo de nuevo.",
"Open Side Panel": "Abrir panel lateral"
}
3 changes: 2 additions & 1 deletion src/_locales/fr/main.json
Original file line number Diff line number Diff line change
Expand Up @@ -128,5 +128,6 @@
"Jump to bottom": "Aller en bas",
"Explain": "Expliquer",
"Failed to get arkose token.": "Échec de l'obtention du jeton arkose.",
"Please keep https://chat.openai.com open and try again. If it still doesn't work, type some characters in the input box of chatgpt web page and try again.": "Veuillez garder https://chat.openai.com ouvert et réessayer. Si cela ne fonctionne toujours pas, tapez quelques caractères dans la boîte de saisie de la page web chatgpt et réessayez."
"Please keep https://chat.openai.com open and try again. If it still doesn't work, type some characters in the input box of chatgpt web page and try again.": "Veuillez garder https://chat.openai.com ouvert et réessayer. Si cela ne fonctionne toujours pas, tapez quelques caractères dans la boîte de saisie de la page web chatgpt et réessayez.",
"Open Side Panel": "Ouvrir le panneau latéral"
}
3 changes: 2 additions & 1 deletion src/_locales/in/main.json
Original file line number Diff line number Diff line change
Expand Up @@ -128,5 +128,6 @@
"Jump to bottom": "Lompat ke bawah",
"Explain": "Jelaskan",
"Failed to get arkose token.": "Gagal mendapatkan token arkose.",
"Please keep https://chat.openai.com open and try again. If it still doesn't work, type some characters in the input box of chatgpt web page and try again.": "Harap tetap buka https://chat.openai.com dan coba lagi. Jika masih tidak berhasil, ketik beberapa karakter di kotak masukan halaman web chatgpt dan coba lagi."
"Please keep https://chat.openai.com open and try again. If it still doesn't work, type some characters in the input box of chatgpt web page and try again.": "Harap tetap buka https://chat.openai.com dan coba lagi. Jika masih tidak berhasil, ketik beberapa karakter di kotak masukan halaman web chatgpt dan coba lagi.",
"Open Side Panel": "Buka Panel Samping"
}
3 changes: 2 additions & 1 deletion src/_locales/it/main.json
Original file line number Diff line number Diff line change
Expand Up @@ -128,5 +128,6 @@
"Jump to bottom": "Salta in fondo",
"Explain": "Spiega",
"Failed to get arkose token.": "Impossibile ottenere il token arkose",
"Please keep https://chat.openai.com open and try again. If it still doesn't work, type some characters in the input box of chatgpt web page and try again.": "Per favore, mantieni aperto https://chat.openai.com e riprova. Se ancora non funziona, digita alcuni caratteri nella casella di input della pagina web di chatgpt e riprova."
"Please keep https://chat.openai.com open and try again. If it still doesn't work, type some characters in the input box of chatgpt web page and try again.": "Per favore, mantieni aperto https://chat.openai.com e riprova. Se ancora non funziona, digita alcuni caratteri nella casella di input della pagina web di chatgpt e riprova.",
"Open Side Panel": "Apri il pannello laterale"
}
3 changes: 2 additions & 1 deletion src/_locales/ja/main.json
Original file line number Diff line number Diff line change
Expand Up @@ -128,5 +128,6 @@
"Jump to bottom": "最下部にジャンプ",
"Explain": "説明",
"Failed to get arkose token.": "arkoseトークンの取得に失敗しました。",
"Please keep https://chat.openai.com open and try again. If it still doesn't work, type some characters in the input box of chatgpt web page and try again.": "https://chat.openai.com を開いたままにして、もう一度試してください。それでもうまくいかない場合は、chatgpt webページの入力ボックスにいくつかの文字を入力してからもう一度試してください。"
"Please keep https://chat.openai.com open and try again. If it still doesn't work, type some characters in the input box of chatgpt web page and try again.": "https://chat.openai.com を開いたままにして、もう一度試してください。それでもうまくいかない場合は、chatgpt webページの入力ボックスにいくつかの文字を入力してからもう一度試してください。",
"Open Side Panel": "サイドパネルを開く"
}
3 changes: 2 additions & 1 deletion src/_locales/ko/main.json
Original file line number Diff line number Diff line change
Expand Up @@ -128,5 +128,6 @@
"Jump to bottom": "아래로 이동",
"Explain": "설명",
"Failed to get arkose token.": "arkose 토큰을 가져오지 못했습니다.",
"Please keep https://chat.openai.com open and try again. If it still doesn't work, type some characters in the input box of chatgpt web page and try again.": "https://chat.openai.com 을 열어두고 다시 시도하세요. 여전히 작동하지 않으면 chatgpt 웹 페이지의 입력 상자에 몇 가지 문자를 입력한 다음 다시 시도하세요."
"Please keep https://chat.openai.com open and try again. If it still doesn't work, type some characters in the input box of chatgpt web page and try again.": "https://chat.openai.com 을 열어두고 다시 시도하세요. 여전히 작동하지 않으면 chatgpt 웹 페이지의 입력 상자에 몇 가지 문자를 입력한 다음 다시 시도하세요.",
"Open Side Panel": "사이드 패널 열기"
}
3 changes: 2 additions & 1 deletion src/_locales/pt/main.json
Original file line number Diff line number Diff line change
Expand Up @@ -128,5 +128,6 @@
"Jump to bottom": "Ir para o fundo",
"Explain": "Explicar",
"Failed to get arkose token.": "Falha ao obter o token arkose.",
"Please keep https://chat.openai.com open and try again. If it still doesn't work, type some characters in the input box of chatgpt web page and try again.": "Por favor, mantenha https://chat.openai.com aberto e tente novamente. Se ainda não funcionar, digite alguns caracteres na caixa de entrada da página da web do chatgpt e tente novamente."
"Please keep https://chat.openai.com open and try again. If it still doesn't work, type some characters in the input box of chatgpt web page and try again.": "Por favor, mantenha https://chat.openai.com aberto e tente novamente. Se ainda não funcionar, digite alguns caracteres na caixa de entrada da página da web do chatgpt e tente novamente.",
"Open Side Panel": "Abrir Painel Lateral"
}
3 changes: 2 additions & 1 deletion src/_locales/ru/main.json
Original file line number Diff line number Diff line change
Expand Up @@ -128,5 +128,6 @@
"Jump to bottom": "Перейти вниз",
"Explain": "Объяснить",
"Failed to get arkose token.": "Не удалось получить токен arkose.",
"Please keep https://chat.openai.com open and try again. If it still doesn't work, type some characters in the input box of chatgpt web page and try again.": "Пожалуйста, оставьте открытым https://chat.openai.com и попробуйте еще раз. Если это все еще не работает, введите несколько символов в поле ввода веб-страницы chatgpt и попробуйте еще раз."
"Please keep https://chat.openai.com open and try again. If it still doesn't work, type some characters in the input box of chatgpt web page and try again.": "Пожалуйста, оставьте открытым https://chat.openai.com и попробуйте еще раз. Если это все еще не работает, введите несколько символов в поле ввода веб-страницы chatgpt и попробуйте еще раз.",
"Open Side Panel": "Открыть боковую панель"
}
3 changes: 2 additions & 1 deletion src/_locales/tr/main.json
Original file line number Diff line number Diff line change
Expand Up @@ -128,5 +128,6 @@
"Jump to bottom": "En alta git",
"Explain": "Açıkla",
"Failed to get arkose token.": "Arkose jetonu alınamadı.",
"Please keep https://chat.openai.com open and try again. If it still doesn't work, type some characters in the input box of chatgpt web page and try again.": "Lütfen https://chat.openai.com adresini açık tutun ve tekrar deneyin. Hala çalışmazsa, chatgpt web sayfasının girdi kutusuna bazı karakterler yazın ve tekrar deneyin."
"Please keep https://chat.openai.com open and try again. If it still doesn't work, type some characters in the input box of chatgpt web page and try again.": "Lütfen https://chat.openai.com adresini açık tutun ve tekrar deneyin. Hala çalışmazsa, chatgpt web sayfasının girdi kutusuna bazı karakterler yazın ve tekrar deneyin.",
"Open Side Panel": "Yan Paneli Aç"
}
3 changes: 2 additions & 1 deletion src/_locales/zh-hans/main.json
Original file line number Diff line number Diff line change
Expand Up @@ -128,5 +128,6 @@
"Jump to bottom": "跳转到底部",
"Explain": "解释",
"Failed to get arkose token.": "获取arkose token失败.",
"Please keep https://chat.openai.com open and try again. If it still doesn't work, type some characters in the input box of chatgpt web page and try again.": "请保持 https://chat.openai.com 打开并重试. 如果仍然不起作用, 请在chatgpt网页的输入框中输入一些字符, 然后再试一次."
"Please keep https://chat.openai.com open and try again. If it still doesn't work, type some characters in the input box of chatgpt web page and try again.": "请保持 https://chat.openai.com 打开并重试. 如果仍然不起作用, 请在chatgpt网页的输入框中输入一些字符, 然后再试一次.",
"Open Side Panel": "打开侧边栏"
}
3 changes: 2 additions & 1 deletion src/_locales/zh-hant/main.json
Original file line number Diff line number Diff line change
Expand Up @@ -128,5 +128,6 @@
"Jump to bottom": "轉跳至底部",
"Explain": "解釋",
"Failed to get arkose token.": "無法取得 arkose token.",
"Please keep https://chat.openai.com open and try again. If it still doesn't work, type some characters in the input box of chatgpt web page and try again.": "請保持 https://chat.openai.com 開啟並重試,如果還是無法通過驗證,請在 ChatGPT 網頁版輸入框輸入一些文字後再重試"
"Please keep https://chat.openai.com open and try again. If it still doesn't work, type some characters in the input box of chatgpt web page and try again.": "請保持 https://chat.openai.com 開啟並重試,如果還是無法通過驗證,請在 ChatGPT 網頁版輸入框輸入一些文字後再重試",
"Open Side Panel": "開啟側邊面板"
}
4 changes: 2 additions & 2 deletions src/background/commands.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import Browser from 'webextension-polyfill'
import { config as menuConfig } from '../content-script/menu-tools/index.mjs'

export function registerCommands() {
Browser.commands.onCommand.addListener(async (command) => {
Browser.commands.onCommand.addListener(async (command, tab) => {
const message = {
itemId: command,
selectionText: '',
Expand All @@ -12,7 +12,7 @@ export function registerCommands() {

if (command in menuConfig) {
if (menuConfig[command].action) {
menuConfig[command].action(true)
menuConfig[command].action(true, tab)
}

if (menuConfig[command].genPrompt) {
Expand Down
10 changes: 10 additions & 0 deletions src/background/index.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -279,6 +279,16 @@ try {
},
['requestHeaders'],
)

Browser.tabs.onUpdated.addListener(async (tabId, info, tab) => {
if (!tab.url) return
// eslint-disable-next-line no-undef
await chrome.sidePanel.setOptions({
tabId,
path: 'IndependentPanel.html',
enabled: true,
})
})
} catch (error) {
console.log(error)
}
Expand Down
2 changes: 1 addition & 1 deletion src/background/menus.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ export function refreshMenu() {
})
} else if (message.itemId in menuConfig) {
if (menuConfig[message.itemId].action) {
menuConfig[message.itemId].action(true)
menuConfig[message.itemId].action(true, tab)
}

if (menuConfig[message.itemId].genPrompt) {
Expand Down
12 changes: 12 additions & 0 deletions src/content-script/menu-tools/index.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,18 @@ export const config = {
}
},
},
openSidePanel: {
label: 'Open Side Panel',
action: async (fromBackground, tab) => {
console.debug('action is from background', fromBackground)
if (fromBackground) {
// eslint-disable-next-line no-undef
chrome.sidePanel.open({ windowId: tab.windowId, tabId: tab.id })
} else {
// side panel is not supported
}
},
},
closeAllChats: {
label: 'Close All Chats In This Page',
action: async (fromBackground) => {
Expand Down
9 changes: 8 additions & 1 deletion src/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@
"unlimitedStorage",
"tabs",
"webRequest",
"declarativeNetRequestWithHostAccess"
"declarativeNetRequestWithHostAccess",
"sidePanel"
],
"optional_permissions": [
"background"
Expand All @@ -35,6 +36,9 @@
"action": {
"default_popup": "popup.html"
},
"sidePanel": {
"default_path": "IndependentPanel.html"
},
"declarative_net_request": {
"rule_resources": [
{
Expand Down Expand Up @@ -99,6 +103,9 @@
"openConversationWindow": {
"description": "Open the independent conversation window"
},
"openSidePanel": {
"description": "Open the independent conversation side panel"
},
"closeAllChats": {
"description": "Close all chats in this page"
}
Expand Down
5 changes: 3 additions & 2 deletions src/popup/index.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,13 @@ getUserConfig().then(async (config) => {
console.debug('custom icon action triggered', message)

if (config.clickIconAction in menuConfig) {
const currentTab = (await Browser.tabs.query({ active: true, currentWindow: true }))[0]

if (menuConfig[config.clickIconAction].action) {
menuConfig[config.clickIconAction].action(false)
menuConfig[config.clickIconAction].action(false, currentTab)
}

if (menuConfig[config.clickIconAction].genPrompt) {
const currentTab = (await Browser.tabs.query({ active: true, currentWindow: true }))[0]
Browser.tabs.sendMessage(currentTab.id, {
type: 'CREATE_CHAT',
data: message,
Expand Down

0 comments on commit 3e46fa2

Please sign in to comment.