From 1b598d377a43ceb61f6281b0e425ba5c16d72faf Mon Sep 17 00:00:00 2001 From: bharatmk256 Date: Tue, 17 Jun 2025 18:59:37 +0530 Subject: [PATCH] add Gemini service support and logo --- images/logos/gemini.png | Bin 0 -> 49584 bytes utils.js | 11 ++++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 images/logos/gemini.png diff --git a/images/logos/gemini.png b/images/logos/gemini.png new file mode 100644 index 0000000000000000000000000000000000000000..7c7fdb2fb1d2f0b6ac1973c0f475e14a4248896e GIT binary patch literal 49584 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µv|WDV&BvoIcA{-@oo-@Uny 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 XzR%{X;v$RSPmHwRYG1(~m#hB=t7=_K literal 0 HcmV?d00001 diff --git a/utils.js b/utils.js index 0f04e7d..acef897 100644 --- a/utils.js +++ b/utils.js @@ -1,7 +1,7 @@ // Full list of Google Services subdomains - https://gist.github.com/abuvanth/b9fcbaf7c77c2954f96c6e556138ffe8 function isGoogleServiceUrl(url) { return ( - /^https?:\/\/[^?&]*(?:mail|drive|calendar|meet|docs|admin|photos|translate|keep|hangouts|chat|workspace|maps|news|ads|ediscovery|jamboard|earth|podcasts|classroom|business|myaccount|adsense|cloud|adwords|analytics|firebase|play|voice|tagmanager|duo|datastudio|optimize|merchants|finance|colab.research|contacts|script|messages|search|stadia|developers|one|chrome|books|sites|groups)\.google\.co.*/i.test( + /^https?:\/\/[^?&]*(?:mail|drive|calendar|meet|docs|admin|photos|translate|keep|hangouts|chat|workspace|maps|news|ads|ediscovery|jamboard|earth|podcasts|classroom|business|myaccount|adsense|cloud|adwords|analytics|firebase|play|voice|tagmanager|duo|datastudio|optimize|merchants|finance|colab.research|contacts|script|messages|search|stadia|developers|one|chrome|books|sites|groups|gemini)\.google\.co.*/i.test( url ) || // test several services that witched from the patter "https://maps.google.com" -> https://www.google.com/maps @@ -31,6 +31,7 @@ function redirectCurrectTab(defaultAccount) { function convertToRedirectUrl(originalUrl, defaultAccount) { const url = new URL(originalUrl); const params = new URLSearchParams(url.search); + // check if current user is not the same (?authuser={num} or /u/{num}/) if (`${params.get("authuser")}` === `${defaultAccount}`) return null; const uMatch = originalUrl.match(/\/u\/(\d+)\/?/i); @@ -40,6 +41,8 @@ function convertToRedirectUrl(originalUrl, defaultAccount) { // current user is different, change params.delete("authuser"); params.set("authuser", defaultAccount); + + // preserve the path (like /app for Gemini) url.search = params.toString(); return url.toString(); } @@ -324,6 +327,12 @@ function allSupportedGoogleServices() { url: "groups.google.com", img: "./images/logos/groups.png", }, + { + name: "Gemini", + title: "Gemini", + url: "gemini.google.com", + img: "./images/logos/gemini.png", + }, ]; }