mirror of
https://github.com/aykhans/slash-e.git
synced 2025-04-18 21:19:44 +00:00
feat: implement extract shortcut name from url
This commit is contained in:
parent
bb389ad429
commit
2264b64007
@ -6,11 +6,10 @@ const urlRegex = /https?:\/\/s\/(.+)/;
|
|||||||
|
|
||||||
chrome.tabs.onUpdated.addListener(async (tabId, _, tab) => {
|
chrome.tabs.onUpdated.addListener(async (tabId, _, tab) => {
|
||||||
if (typeof tab.url === "string") {
|
if (typeof tab.url === "string") {
|
||||||
const matchResult = urlRegex.exec(tab.url);
|
const shortcutName = getShortcutNameFromUrl(tab.url);
|
||||||
const sname = Array.isArray(matchResult) ? matchResult[1] : null;
|
if (shortcutName) {
|
||||||
if (sname) {
|
|
||||||
const shortcuts = (await storage.getItem<Shortcut[]>("shortcuts")) || [];
|
const shortcuts = (await storage.getItem<Shortcut[]>("shortcuts")) || [];
|
||||||
const shortcut = shortcuts.find((shortcut) => shortcut.name === sname);
|
const shortcut = shortcuts.find((shortcut) => shortcut.name === shortcutName);
|
||||||
if (!shortcut) {
|
if (!shortcut) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -18,3 +17,35 @@ chrome.tabs.onUpdated.addListener(async (tabId, _, tab) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const getShortcutNameFromUrl = (urlString: string) => {
|
||||||
|
const matchResult = urlRegex.exec(urlString);
|
||||||
|
if (matchResult === null) {
|
||||||
|
return getShortcutNameFromSearchUrl(urlString);
|
||||||
|
}
|
||||||
|
return matchResult[1];
|
||||||
|
};
|
||||||
|
|
||||||
|
const getShortcutNameFromSearchUrl = (urlString: string) => {
|
||||||
|
const url = new URL(urlString);
|
||||||
|
if ((url.hostname === "www.google.com" || url.hostname === "www.bing.com") && url.pathname === "/search") {
|
||||||
|
const params = new URLSearchParams(url.search);
|
||||||
|
const shortcutName = params.get("q");
|
||||||
|
if (typeof shortcutName === "string" && shortcutName.startsWith("s/")) {
|
||||||
|
return shortcutName.slice(2);
|
||||||
|
}
|
||||||
|
} else if (url.hostname === "www.baidu.com" && url.pathname === "/s") {
|
||||||
|
const params = new URLSearchParams(url.search);
|
||||||
|
const shortcutName = params.get("wd");
|
||||||
|
if (typeof shortcutName === "string" && shortcutName.startsWith("s/")) {
|
||||||
|
return shortcutName.slice(2);
|
||||||
|
}
|
||||||
|
} else if (url.hostname === "duckduckgo.com" && url.pathname === "/") {
|
||||||
|
const params = new URLSearchParams(url.search);
|
||||||
|
const shortcutName = params.get("q");
|
||||||
|
if (typeof shortcutName === "string" && shortcutName.startsWith("s/")) {
|
||||||
|
return shortcutName.slice(2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user