Compare commits

...

5 Commits

6 changed files with 92 additions and 42 deletions

View File

@ -60,7 +60,7 @@
"description": "used in the settings page"
},
"frontend": {
"message": "Frontend",
"message": "Interfaccia",
"description": "used in the settings page"
},
"redirectType": {
@ -99,5 +99,14 @@
},
"about": {
"message": "Informazioni"
},
"unsupportedIframesHandling": {
"message": "Gestione iframe non supportati"
},
"fetchPublicInstances": {
"message": "Recupera istanze pubbliche"
},
"disable": {
"message": "Disattiva"
}
}

View File

@ -106,8 +106,7 @@
"^https?:\\/{2}(i|s)\\.ytimg.com\\/vi\\/.*\\/..*",
"^https?:\\/{2}(www\\.)?youtube.com\\/watch?v=..*",
"^https?:\\/{2}(www\\.)?youtu\\.be\\/..*",
"^https?:\\/{2}(www\\.)?(youtube|youtube-nocookie)\\.com\\/embed\\/..*",
"^https?:\\/{2}music\\.youtube\\.com\\/"
"^https?:\\/{2}(www\\.)?(youtube|youtube-nocookie)\\.com\\/embed\\/..*"
],
"name": "YouTube",
"options": {

View File

@ -1,7 +1,7 @@
{
"name": "__MSG_extensionName__",
"description": "__MSG_extensionDescription__",
"version": "2.8.1",
"version": "2.8.2",
"manifest_version": 2,
"browser_specific_settings": {
"gecko": {
@ -85,4 +85,4 @@
"default_locale": "en",
"update_url": "https://raw.githubusercontent.com/libredirect/libredirect/master/src/updates/updates.xml",
"key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAroWDSoSRZ1scj+eJRrvnhJbrqXTKnhQuxs6+AJg16sqr0bsMdFV+MSY4i4xnK+K5WOYkBliWXgUyk/wzicoAjOnSJddrL/Md4FuWHI2NVIkrlsLOrYkygi5OLqGPajRH/w8Cdmg7KzEpXe/OnYV0/qS8li8huEdTzdeLdhfbiVl1j3DOr4OJALQ7mPeeNFHFo/oVQ+OkSezWLezA5jUGfhtzPYV6u1TXzX7lCi8E/BbDbwkvvXOMcjXCv08kjdLOY2djCA2a6zr0xAb3q8DlexAMZ8vMof7AQRFtBKhLc9n9VFoipMMdBOVQQj/eIcRILBrmkcZNnJxFKiHNJ+NcZQIDAQAB"
}
}

View File

@ -90,38 +90,43 @@ browser.tabs.onRemoved.addListener(tabId => {
browser.commands.onCommand.addListener(async command => {
browser.tabs.query({ active: true, currentWindow: true }, async tabs => {
const url = new URL(tabs[0].url)
if (command == "switchInstance") {
const newUrl = await servicesHelper.switchInstance(url)
if (newUrl) browser.tabs.update({ url: newUrl })
}
else if (command == "copyRaw") {
servicesHelper.copyRaw(url)
}
else if (command == "redirect") {
browser.tabs.query({ active: true, currentWindow: true }, async tabs => {
if (tabs[0].url) {
const url = new URL(tabs[0].url)
const newUrl = servicesHelper.redirect(url, "main_frame", null, true)
if (newUrl) {
browser.tabs.update(tabs[0].id, { url: newUrl }, () => {
tabIdRedirects[tabs[0].id] = true
})
switch (command) {
case "switchInstance":
const newUrl = await servicesHelper.switchInstance(url)
if (newUrl) browser.tabs.update({ url: newUrl })
break
case "copyRaw": {
servicesHelper.copyRaw(url)
break
}
case "redirect": {
browser.tabs.query({ active: true, currentWindow: true }, async tabs => {
if (tabs[0].url) {
const url = new URL(tabs[0].url)
const newUrl = servicesHelper.redirect(url, "main_frame", null, true)
if (newUrl) {
browser.tabs.update(tabs[0].id, { url: newUrl }, () => {
tabIdRedirects[tabs[0].id] = true
})
}
}
}
})
}
else if (command == "reverse") {
browser.tabs.query({ active: true, currentWindow: true }, async tabs => {
if (tabs[0].url) {
const url = new URL(tabs[0].url)
const newUrl = await servicesHelper.reverse(url)
if (newUrl) {
browser.tabs.update(tabs[0].id, { url: newUrl }, () => {
tabIdRedirects[tabs[0].id] = false
})
})
break
}
case "reverse": {
browser.tabs.query({ active: true, currentWindow: true }, async tabs => {
if (tabs[0].url) {
const url = new URL(tabs[0].url)
const newUrl = await servicesHelper.reverse(url)
if (newUrl) {
browser.tabs.update(tabs[0].id, { url: newUrl }, () => {
tabIdRedirects[tabs[0].id] = false
})
}
}
}
})
})
break
}
}
})
})
@ -137,6 +142,8 @@ browser.contextMenus.create({ id: "redirectLinkInNewTab", title: 'Redirect In Ne
browser.contextMenus.create({ id: "reverseLink", title: 'Redirect To Original', contexts: ["link"] })
browser.contextMenus.create({ id: "reverseLinkInNewTab", title: 'Redirect To Original In New Tab', contexts: ["link"] })
browser.contextMenus.create({ id: "copyReverseLink", title: 'Copy Original', contexts: ["link"] })
browser.contextMenus.create({ id: "bypassLink", title: 'Bypass', contexts: ["link"] })
browser.contextMenus.create({ id: "bypassLinkInNewTab", title: 'Bypass In New Tab', contexts: ["link"] })
if (!isChrome) {
browser.contextMenus.create({ id: "redirectBookmark", title: 'Redirect', contexts: ["bookmark"] })
@ -144,9 +151,10 @@ if (!isChrome) {
browser.contextMenus.create({ id: "reverseBookmark", title: 'Redirect To Original', contexts: ["bookmark"] })
browser.contextMenus.create({ id: "reverseBookmarkInNewTab", title: 'Redirect To Original In New Tab', contexts: ["bookmark"] })
browser.contextMenus.create({ id: "copyReverseBookmark", title: 'Copy Original', contexts: ["bookmark"] })
browser.contextMenus.create({ id: "bypassBookmark", title: 'Bypass', contexts: ["bookmark"] })
browser.contextMenus.create({ id: "bypassBookmarkInNewTab", title: 'Bypass In New Tab', contexts: ["bookmark"] })
}
browser.contextMenus.onClicked.addListener(async (info) => {
switch (info.menuItemId) {
case 'switchInstanceTab': {
@ -201,7 +209,6 @@ browser.contextMenus.onClicked.addListener(async (info) => {
case 'copyReverseLink': {
const url = new URL(info.linkUrl)
console.log(url)
await servicesHelper.copyRaw(url)
return
}
@ -233,6 +240,21 @@ browser.contextMenus.onClicked.addListener(async (info) => {
return
}
case 'bypassLink':
case 'bypassLinkInNewTab': {
const url = new URL(info.linkUrl)
if (info.menuItemId == "bypassLink") {
browser.tabs.update({ url: url.href }, tab => {
tabIdRedirects[tab.id] = false
})
} else {
browser.tabs.create({ url: url.href }, tab => {
tabIdRedirects[tab.id] = false
})
}
return
}
case 'copyReverseBookmark': {
browser.bookmarks.get(info.bookmarkId, bookmarks => {
const url = new URL(bookmarks[0].url)
@ -240,6 +262,7 @@ browser.contextMenus.onClicked.addListener(async (info) => {
});
return
}
case 'redirectBookmark':
case 'redirectBookmarkInNewTab': {
browser.bookmarks.get(info.bookmarkId, bookmarks => {
@ -250,7 +273,6 @@ browser.contextMenus.onClicked.addListener(async (info) => {
else browser.tabs.create({ url: newUrl })
}
})
return
}
case 'reverseBookmark':
@ -272,6 +294,23 @@ browser.contextMenus.onClicked.addListener(async (info) => {
})
return
}
case 'bypassBookmark':
case 'bypassBookmarkInNewTab': {
browser.bookmarks.get(info.bookmarkId, async bookmarks => {
const url = new URL(bookmarks[0].url)
if (info.menuItemId == "bypassBookmark") {
browser.tabs.update({ url: url.href }, tab => {
tabIdRedirects[tab.id] = false
})
} else {
browser.tabs.create({ url: url.href }, tab => {
tabIdRedirects[tab.id] = false
})
}
return
})
}
}
})
@ -302,4 +341,4 @@ browser.runtime.onMessage.addListener((request, sender, sendResponse) => {
}
})
}
});
})

View File

@ -338,18 +338,21 @@ async function ping(frontend) {
]
let pingCache = await utils.getPingCache()
let redundancyList = {}
for (const element of instanceElements) {
let span = element.getElementsByClassName('ping')[0]
if (!span) span = document.createElement('span')
span.classList = ['ping']
span.innerHTML = '<span style="color:lightblue">pinging...</span>'
element.appendChild(span)
const href = element.getElementsByTagName('a')[0].href
const time = await utils.ping(href)
const innerHTML = element.getElementsByTagName('a')[0].innerHTML
const time = redundancyList[innerHTML] ?? await utils.ping(href)
const { color, text } = processTime(time)
span.innerHTML = `<span style="color:${color};">${text}</span>`
pingCache[element.getElementsByTagName('a')[0].innerHTML] = time
pingCache[innerHTML] = time
redundancyList[innerHTML] = time
browser.storage.local.set({ pingCache })
}
}