Open direct links, search, removing some errors

This commit is contained in:
Alyssa X 2022-01-16 00:21:18 +00:00
parent e191b31d6f
commit 5e8a9d2666
3 changed files with 64 additions and 15 deletions

View file

@ -154,7 +154,9 @@ chrome.runtime.onInstalled.addListener((object) => {
for (let j = 0; j < t; j++) {
currentTab = currentWindow.tabs[j];
injectIntoTab(currentTab);
if (!currentTab.url.includes("chrome://") && !currentTab.url.includes("chrome-extension://") && !currentTab.url.includes("chrome.google.com")) {
injectIntoTab(currentTab);
}
}
}
}
@ -183,6 +185,11 @@ const resetOmni = () => {
clearActions();
getTabs();
getBookmarks();
var search = [
{title:"Search", desc:"Search for a query", type:"action", action:"search", emoji:true, emojiChar:"🔍", keycheck:false},
{title:"Search", desc:"Go to website", type:"action", action:"goto", emoji:true, emojiChar:"🔍", keycheck:false}
];
actions = search.concat(actions);
}
// Check if tabs have changed and actions need to be fetched again
@ -330,9 +337,7 @@ const removeBookmark = (bookmark) => {
chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
switch (message.request) {
case "get-actions":
clearActions();
getTabs();
getBookmarks();
resetOmni();
sendResponse({actions: actions});
break;
case "switch-tab":
@ -446,10 +451,13 @@ chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
closeTab(message.action);
}
break;
case "search":
chrome.search.query(
{text:message.query}
)
break;
}
});
// Get actions
clearActions();
getTabs();
getBookmarks();
resetOmni();

View file

@ -32,9 +32,12 @@ $(document).ready(function(){
img = "<span class='omni-emoji-action'>"+action.emojiChar+"</span>"
}
if (index != 0) {
$("#omni-extension #omni-list").append("<div class='omni-item' data-type='"+action.type+"'>"+img+"<div class='omni-item-details'><div class='omni-item-name'>"+action.title+"</div><div class='omni-item-desc'>"+action.desc+"</div></div>"+keys+"<div class='omni-select'>Select <span class='omni-shortcut'>⏎</span></div></div>");
$("#omni-extension #omni-list").append("<div class='omni-item' data-index='"+index+"' data-type='"+action.type+"'>"+img+"<div class='omni-item-details'><div class='omni-item-name'>"+action.title+"</div><div class='omni-item-desc'>"+action.desc+"</div></div>"+keys+"<div class='omni-select'>Select <span class='omni-shortcut'>⏎</span></div></div>");
} else {
$("#omni-extension #omni-list").append("<div class='omni-item omni-item-active' data-type='"+action.type+"'>"+img+"<div class='omni-item-details'><div class='omni-item-name'>"+action.title+"</div><div class='omni-item-desc'>"+action.desc+"</div></div>"+keys+"<div class='omni-select'>Select <span class='omni-shortcut'>⏎</span></div></div>");
$("#omni-extension #omni-list").append("<div class='omni-item omni-item-active' data-index='"+index+"' data-type='"+action.type+"'>"+img+"<div class='omni-item-details'><div class='omni-item-name'>"+action.title+"</div><div class='omni-item-desc'>"+action.desc+"</div></div>"+keys+"<div class='omni-select'>Select <span class='omni-shortcut'>⏎</span></div></div>");
}
if (action.type == "action" && action.action == "search") {
$(".omni-item[data-index='"+index+"']").hide();
}
})
$(".omni-extension #omni-results").html(actions.length+" results");
@ -58,9 +61,9 @@ $(document).ready(function(){
img = "<span class='omni-emoji-action'>"+action.emojiChar+"</span>"
}
if (index != 0) {
$("#omni-extension #omni-list").append("<div class='omni-item' data-type='"+action.type+"' data-url='"+action.url+"'>"+img+"<div class='omni-item-details'><div class='omni-item-name'>"+action.title+"</div><div class='omni-item-desc'>"+action.url+"</div></div>"+keys+"<div class='omni-select'>Select <span class='omni-shortcut'>⏎</span></div></div>");
$("#omni-extension #omni-list").append("<div class='omni-item' data-index='"+index+"' data-type='"+action.type+"' data-url='"+action.url+"'>"+img+"<div class='omni-item-details'><div class='omni-item-name'>"+action.title+"</div><div class='omni-item-desc'>"+action.url+"</div></div>"+keys+"<div class='omni-select'>Select <span class='omni-shortcut'>⏎</span></div></div>");
} else {
$("#omni-extension #omni-list").append("<div class='omni-item omni-item-active' data-type='"+action.type+"' data-url='"+action.url+"'>"+img+"<div class='omni-item-details'><div class='omni-item-name'>"+action.title+"</div><div class='omni-item-desc'>"+action.url+"</div></div>"+keys+"<div class='omni-select'>Select <span class='omni-shortcut'>⏎</span></div></div>");
$("#omni-extension #omni-list").append("<div class='omni-item omni-item-active' data-index='"+index+"' data-type='"+action.type+"' data-url='"+action.url+"'>"+img+"<div class='omni-item-details'><div class='omni-item-name'>"+action.title+"</div><div class='omni-item-desc'>"+action.url+"</div></div>"+keys+"<div class='omni-select'>Select <span class='omni-shortcut'>⏎</span></div></div>");
}
})
$(".omni-extension #omni-results").html(actions.length+" results");
@ -115,6 +118,25 @@ $(document).ready(function(){
}
}
// Add protocol
function addhttp(url) {
if (!/^(?:f|ht)tps?\:\/\//.test(url)) {
url = "http://" + url;
}
return url;
}
// Check if valid url
function validURL(str) {
var pattern = new RegExp('^(https?:\\/\\/)?'+ // protocol
'((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|'+ // domain name
'((\\d{1,3}\\.){3}\\d{1,3}))'+ // OR ip (v4) address
'(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*'+ // port and path
'(\\?[;&a-z\\d%_.~+=-]*)?'+ // query string
'(\\#[-a-z\\d_]*)?$','i'); // fragment locator
return !!pattern.test(str);
}
// Search for an action in the omni
function search(e) {
if (e.keyCode == 37 || e.keyCode == 38 || e.keyCode == 39 || e.keyCode == 40 || e.keyCode == 13 || e.keyCode == 37) {
@ -174,6 +196,18 @@ $(document).ready(function(){
}
} else {
$(this).toggle($(this).find(".omni-item-name").text().toLowerCase().indexOf(value) > -1 || $(this).find(".omni-item-desc").text().toLowerCase().indexOf(value) > -1);
if (value == "") {
$(".omni-item[data-index='"+actions.findIndex(x => x.action == "search")+"']").hide();
$(".omni-item[data-index='"+actions.findIndex(x => x.action == "goto")+"']").hide();
} else if (!validURL(value)) {
$(".omni-item[data-index='"+actions.findIndex(x => x.action == "search")+"']").show();
$(".omni-item[data-index='"+actions.findIndex(x => x.action == "goto")+"']").hide();
$(".omni-item[data-index='"+actions.findIndex(x => x.action == "search")+"'] .omni-item-name").html('\"'+value+'\"');
} else {
$(".omni-item[data-index='"+actions.findIndex(x => x.action == "search")+"']").hide();
$(".omni-item[data-index='"+actions.findIndex(x => x.action == "goto")+"']").show();
$(".omni-item[data-index='"+actions.findIndex(x => x.action == "goto")+"'] .omni-item-name").html(value);
}
}
});
}
@ -184,7 +218,7 @@ $(document).ready(function(){
// Handle actions from the omni
function handleAction(e) {
var action = actions.find(x => x.title == $(".omni-item-active .omni-item-name").text());
var action = actions[$(".omni-item-active").attr("data-index")];
closeOmni();
if ($(".omni-extension input").val().toLowerCase().startsWith("/remove")) {
chrome.runtime.sendMessage({request:"remove", type:action.type, action:action});
@ -195,7 +229,7 @@ $(document).ready(function(){
window.open($(".omni-item-active").attr("data-url"));
}
} else {
chrome.runtime.sendMessage({request:action.action, tab:action});
chrome.runtime.sendMessage({request:action.action, tab:action, query:$(".omni-extension input").val()});
switch (action.action) {
case "bookmark":
if (e.ctrlKey || e.metaKey) {
@ -234,6 +268,13 @@ $(document).ready(function(){
window.open(action.url, "_self");
}
break;
case "goto":
if (e.ctrlKey || e.metaKey) {
window.open(addhttp($(".omni-extension input").val()));
} else {
window.open(addhttp($(".omni-extension input").val()), "_self");
}
break;
}
}

View file

@ -2,7 +2,7 @@
"name": "Omni",
"description": "Supercharge Chrome with commands, shortcuts, and more",
"offline_enabled": true,
"version": "1.3.4",
"version": "1.3.5",
"manifest_version": 3,
"action": {
"icons": {
@ -45,7 +45,7 @@
}
],
"permissions": [
"tabs", "activeTab", "bookmarks", "browsingData", "history", "scripting"
"tabs", "activeTab", "bookmarks", "browsingData", "history", "scripting", "search"
],
"host_permissions": [
"https://www.googleapis.com/*", "https://gstatic.com/*", "*://*/*"