aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/assets/javascripts/services.js30
-rw-r--r--src/config.json6
2 files changed, 36 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'],
diff --git a/src/config.json b/src/config.json
index 941d891e..19f85a12 100644
--- a/src/config.json
+++ b/src/config.json
@@ -26,6 +26,12 @@
"instanceList": true,
"url": "https://invidious.io/"
},
+ "materialious": {
+ "name": "Materialious",
+ "embeddable": true,
+ "instanceList": true,
+ "url": "https://materialio.us/"
+ },
"piped": {
"excludeTargets": [
2,