aboutsummaryrefslogtreecommitdiffstats
path: root/src/assets/javascripts
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2024-07-04 09:22:02 +0300
committerGitHub <noreply@github.com>2024-07-04 09:22:02 +0300
commitfc51f301d67dc181f119ddd0e6a7ba2eaa096338 (patch)
treef4d1de927e69f67693a25a4148f761c5563882d5 /src/assets/javascripts
parentUpdate test.yml (diff)
parentAdd Materialious (diff)
downloadlibredirect-fc51f301d67dc181f119ddd0e6a7ba2eaa096338.zip
Merge pull request #947 from puzzlemoondev/materialious
Add Materialious
Diffstat (limited to 'src/assets/javascripts')
-rw-r--r--src/assets/javascripts/services.js30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/assets/javascripts/services.js b/src/assets/javascripts/services.js
index e47b6293..1a20dae5 100644
--- a/src/assets/javascripts/services.js
+++ b/src/assets/javascripts/services.js
@@ -403,6 +403,35 @@ function rewrite(url, frontend, randomInstance) {
}
return `${randomInstance}${url.pathname}${url.search}`
}
+ case 'materialious': {
+ url.searchParams.delete('si')
+ if (url.hostname == 'youtu.be' || (url.hostname.endsWith('youtube.com') && url.pathname.startsWith('/live'))) {
+ const watch = url.pathname.substring(url.pathname.lastIndexOf('/') + 1)
+ return `${randomInstance}/watch/${watch}${url.search.replace('?', '&')}`
+ }
+ if (url.hostname.endsWith("youtube.com")) {
+ if (url.pathname.startsWith('/watch')) {
+ if (url.searchParams.has('v')) {
+ const watch = url.searchParams.get('v')
+ url.searchParams.delete('v')
+ return `${randomInstance}/watch/${watch}${url.search.replace('?', '&')}`
+ }
+ return `${randomInstance}/watch/${url.search.replace('?', '&')}`
+ }
+ if (url.pathname.startsWith('/results')) {
+ if (url.searchParams.has('search_query')) {
+ const search = url.searchParams.get('search_query')
+ url.searchParams.delete('search_query')
+ return `${randomInstance}/search/${search}${url.search.replace('?', '&')}`
+ }
+ return `${randomInstance}/search/${url.search.replace('?', '&')}`
+ }
+ if (url.pathname.startsWith('/redirect?')) {
+ return url.href
+ }
+ }
+ return `${randomInstance}${url.pathname}${url.search}`
+ }
case "libremdb": {
if (url.pathname.startsWith("/Name")) {
for (const [key, value] of url.searchParams.entries()) {
@@ -662,6 +691,7 @@ async function reverse(url) {
const defaultInstances = {
'invidious': ['https://inv.vern.cc'],
+ 'materialious': ['https://app.materialio.us'],
'viewtube': ['https://viewtube.io'],
'piped': ['https://pipedapi-libre.kavin.rocks'],
'pipedMaterial': ['https://piped-material.xn--17b.net'],