mirror of
https://github.com/aykhans/slash-e.git
synced 2025-04-19 05:25:43 +00:00
chore: update extension
This commit is contained in:
parent
02619882d1
commit
8d6848e754
@ -1,40 +1,21 @@
|
|||||||
const getCorgiData = () => {
|
import { getCorgiData } from "./common.js";
|
||||||
return new Promise((resolve) => {
|
|
||||||
chrome.storage.local.get(["corgi"], (data) => {
|
|
||||||
resolve(data?.corgi);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
const fetchShortcut = async (name) => {
|
const urlRegex = /https?:\/\/o\/(.+)/;
|
||||||
const corgiData = await getCorgiData();
|
|
||||||
if (corgiData.domain && corgiData.openId) {
|
|
||||||
const res = await fetch(`${corgiData.domain}/api/shortcut?openId=${corgiData.openId}&name=${name}`);
|
|
||||||
const { data } = await res.json();
|
|
||||||
if (data.length > 0) {
|
|
||||||
return data[0];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
const urlRegex = /https?:\/\/go\/(.+)/;
|
chrome.tabs.onUpdated.addListener(async (tabId, changeInfo, tab) => {
|
||||||
|
|
||||||
chrome.tabs.onUpdated.addListener(async (_1, _2, tab) => {
|
|
||||||
if (typeof tab.url === "string") {
|
if (typeof tab.url === "string") {
|
||||||
const matchResult = urlRegex.exec(tab.url);
|
const matchResult = urlRegex.exec(tab.url);
|
||||||
if (matchResult) {
|
if (matchResult) {
|
||||||
|
const corgiData = await getCorgiData();
|
||||||
const name = matchResult[1];
|
const name = matchResult[1];
|
||||||
const shortcut = await fetchShortcut(name);
|
const url = `${corgiData.domain}/api/shortcut?openId=${corgiData.openId}&name=${name}&redirect=true`;
|
||||||
if (shortcut && shortcut.link) {
|
return chrome.tabs.update({ url });
|
||||||
chrome.tabs.update({ url: shortcut.link });
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
chrome.omnibox.onInputEntered.addListener(async (text) => {
|
chrome.omnibox.onInputEntered.addListener(async (text) => {
|
||||||
const shortcut = await fetchShortcut(text);
|
const corgiData = await getCorgiData();
|
||||||
if (shortcut && shortcut.link) {
|
const url = `${corgiData.domain}/api/shortcut?openId=${corgiData.openId}&name=${text}&redirect=true`;
|
||||||
chrome.tabs.update({ url: shortcut.link });
|
return chrome.tabs.update({ url });
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
11
extension/common.js
Normal file
11
extension/common.js
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
export const getCorgiData = () => {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
chrome.storage.local.get(["corgi"], (data) => {
|
||||||
|
if (data?.corgi) {
|
||||||
|
resolve(data.corgi);
|
||||||
|
} else {
|
||||||
|
reject("corgi data not found");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
@ -4,13 +4,15 @@
|
|||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"manifest_version": 3,
|
"manifest_version": 3,
|
||||||
"omnibox": {
|
"omnibox": {
|
||||||
"keyword": "go/"
|
"keyword": "o/"
|
||||||
},
|
},
|
||||||
"action": {
|
"action": {
|
||||||
"default_popup": "popup.html"
|
"default_popup": "popup.html"
|
||||||
},
|
},
|
||||||
"background": {
|
"background": {
|
||||||
"service_worker": "background.js"
|
"service_worker": "background.js",
|
||||||
|
"type": "module"
|
||||||
},
|
},
|
||||||
"permissions": ["tabs", "activeTab", "storage"]
|
"permissions": ["tabs", "activeTab", "storage"],
|
||||||
|
"host_permissions": ["*://o/*"]
|
||||||
}
|
}
|
||||||
|
@ -13,6 +13,6 @@
|
|||||||
<div>
|
<div>
|
||||||
<button id="save-button">Save</button>
|
<button id="save-button">Save</button>
|
||||||
</div>
|
</div>
|
||||||
<script src="popup.js"></script>
|
<script type="module" src="popup.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,10 +1,4 @@
|
|||||||
const getCorgiData = () => {
|
import { getCorgiData } from "./common.js";
|
||||||
return new Promise((resolve) => {
|
|
||||||
chrome.storage.local.get(["corgi"], (data) => {
|
|
||||||
resolve(data?.corgi);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
const saveButton = document.body.querySelector("#save-button");
|
const saveButton = document.body.querySelector("#save-button");
|
||||||
const domainInput = document.body.querySelector("#domain-input");
|
const domainInput = document.body.querySelector("#domain-input");
|
||||||
@ -21,6 +15,8 @@ saveButton.addEventListener("click", () => {
|
|||||||
|
|
||||||
(async () => {
|
(async () => {
|
||||||
const corgiData = await getCorgiData();
|
const corgiData = await getCorgiData();
|
||||||
|
if (corgiData) {
|
||||||
domainInput.value = corgiData.domain;
|
domainInput.value = corgiData.domain;
|
||||||
openIdInput.value = corgiData.openId;
|
openIdInput.value = corgiData.openId;
|
||||||
|
}
|
||||||
})();
|
})();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user