diff options
Diffstat (limited to '')
-rw-r--r-- | src/_locales/fa/messages.json | 137 | ||||
-rw-r--r-- | src/_locales/ta/messages.json | 137 | ||||
-rw-r--r-- | src/assets/javascripts/services.js | 68 | ||||
-rw-r--r-- | src/config.json | 8 | ||||
-rw-r--r-- | src/pages/options_src/General/SettingsButtons.svelte | 2 |
5 files changed, 349 insertions, 3 deletions
diff --git a/src/_locales/fa/messages.json b/src/_locales/fa/messages.json new file mode 100644 index 00000000..9ededff6 --- /dev/null +++ b/src/_locales/fa/messages.json @@ -0,0 +1,137 @@ +{ + "both": { + "message": "هر دو" + }, + "exportSettings": { + "message": "خروجی گرفتن از تنظیمات" + }, + "extensionName": { + "message": "LibRedirect" + }, + "settings": { + "message": "تنظیمات" + }, + "switchInstance": { + "message": "جایگزینی نمونه" + }, + "general": { + "message": "عمومی" + }, + "theme": { + "message": "پوسته" + }, + "auto": { + "message": "خودکار" + }, + "excludeFromRedirecting": { + "message": "چشمپوشی از هدایت کردن" + }, + "importSettings": { + "message": "واردکردن تنظیمات" + }, + "resetSettings": { + "message": "بازنشانی تنظیمات" + }, + "enable": { + "message": "فعالکردن" + }, + "frontend": { + "message": "پیشگاه" + }, + "redirectType": { + "message": "نوع هدایت" + }, + "onlyEmbedded": { + "message": "تنها جاسازی شده" + }, + "onlyNotEmbedded": { + "message": "تنها جاسازی نشده" + }, + "addYourFavoriteInstances": { + "message": "افزودن نمونههای مورد پسند شما" + }, + "light": { + "message": "روشن" + }, + "dark": { + "message": "تیره" + }, + "showInPopup": { + "message": "نمایش در بازشونده" + }, + "copyOriginal": { + "message": "رونویسی اصلی" + }, + "copied": { + "message": "رونویسی شد" + }, + "redirectToOriginal": { + "message": "هدایت به اصلی" + }, + "about": { + "message": "درباره" + }, + "unsupportedIframesHandling": { + "message": "مدیریت جاسازیهای پشتیبانی نشده" + }, + "disable": { + "message": "غیرفعال کردن" + }, + "pingInstances": { + "message": "پینگ گرفتن از نمونهها" + }, + "exportSettingsToSync": { + "message": "خروجی گرفتن از تنظیمات برای همگامسازی" + }, + "importSettingsFromSync": { + "message": "واردکردن تنظیمات برای همگامسازی" + }, + "services": { + "message": "سامانهها" + }, + "service": { + "message": "سامانه" + }, + "redirectOnlyInIncognito": { + "message": "تنها هدایت کردن در حالت خصوصی" + }, + "bypass": { + "message": "دور زدن" + }, + "block": { + "message": "مسدود کردن" + }, + "redirect": { + "message": "هدایت کردن" + }, + "autoPickInstance": { + "message": "گزینش خودکار نمونه" + }, + "redirectGoogle": { + "message": "هدایت کردن گوگل" + }, + "search_frontend": { + "message": "جستجو پیشگاه" + }, + "searchService": { + "message": "جستجو سامانه" + }, + "embedFrontend": { + "message": "پیشگاه جاسازیشده" + }, + "extensionDescription": { + "message": "یک افزونه مرورگر که وبگاه های محبوب را به نمونههای دوستدار حریم خصوصی هدایت میکند" + }, + "bookmarksMenu": { + "message": "فهرست نشان شدهها" + }, + "redirectLink": { + "message": "تلاش برای هدایت" + }, + "fetchPublicInstances": { + "message": "دریافت نمونههای عمومی" + }, + "searchHint": { + "message": "LIBREDIRECT را به عنوان موتور جستجوی پیشفرض تنظیم کنید. برای نحوه انجام در مرورگرهای کروم ، روی <a href='https://libredirect.github.io/docs.html#search_engine_chromium' target='_blank' rel='noopener noreferrer'>اینجا</a> ضربه بزنید." + } +} diff --git a/src/_locales/ta/messages.json b/src/_locales/ta/messages.json new file mode 100644 index 00000000..d566ddaa --- /dev/null +++ b/src/_locales/ta/messages.json @@ -0,0 +1,137 @@ +{ + "extensionName": { + "message": "லிப்ரெடிரிடர்" + }, + "switchInstance": { + "message": "சான்று" + }, + "copyOriginal": { + "message": "அசல் நகலெடுக்கவும்" + }, + "autoPickInstance": { + "message": "ஆட்டோ-பிக் நிகழ்வு" + }, + "extensionDescription": { + "message": "பிரபலமான தளங்களை மாற்று தனியுரிமை நட்பு முன்பக்கங்கள் மற்றும் பின்தளத்தில் திருப்பி விடும் ஒரு வலை நீட்டிப்பு" + }, + "settings": { + "message": "அமைப்புகள்" + }, + "general": { + "message": "பொது" + }, + "theme": { + "message": "கருப்பொருள்" + }, + "light": { + "message": "ஒளி" + }, + "dark": { + "message": "இருண்ட" + }, + "auto": { + "message": "தானி" + }, + "excludeFromRedirecting": { + "message": "திருப்பிவிடுவதிலிருந்து விலக்கப்பட்டது" + }, + "importSettings": { + "message": "அமைப்புகளை இறக்குமதி செய்யுங்கள்" + }, + "exportSettings": { + "message": "ஏற்றுமதி அமைப்புகள்" + }, + "resetSettings": { + "message": "அமைப்புகளை மீட்டமைக்கவும்" + }, + "enable": { + "message": "இயக்கு" + }, + "showInPopup": { + "message": "பாப்அப்பில் காட்டு" + }, + "frontend": { + "message": "ஃபிரான்ட்" + }, + "redirectType": { + "message": "திருப்பி வகை" + }, + "both": { + "message": "இரண்டும்" + }, + "onlyEmbedded": { + "message": "உட்பொதிக்கப்பட்டது" + }, + "onlyNotEmbedded": { + "message": "உட்பொதிக்கப்படவில்லை" + }, + "addYourFavoriteInstances": { + "message": "உங்களுக்கு பிடித்த நிகழ்வுகளைச் சேர்க்கவும்" + }, + "copied": { + "message": "நகலெடுக்கப்பட்டது" + }, + "redirectToOriginal": { + "message": "அசலுக்கு திருப்பி விடுங்கள்" + }, + "redirectLink": { + "message": "திருப்பிவிட முயற்சி" + }, + "about": { + "message": "பற்றி" + }, + "unsupportedIframesHandling": { + "message": "ஆதரிக்கப்படாத உட்பொதிகள் கையாளுதல்" + }, + "fetchPublicInstances": { + "message": "பொது நிகழ்வுகளைப் பெறுங்கள்" + }, + "disable": { + "message": "முடக்கு" + }, + "pingInstances": { + "message": "பிங் நிகழ்வுகள்" + }, + "exportSettingsToSync": { + "message": "ஒத்திசைக்க அமைப்புகளை ஏற்றுமதி செய்யுங்கள்" + }, + "importSettingsFromSync": { + "message": "ஒத்திசைவிலிருந்து அமைப்புகளை இறக்குமதி செய்யுங்கள்" + }, + "services": { + "message": "சேவைகள்" + }, + "service": { + "message": "பணி" + }, + "bookmarksMenu": { + "message": "புக்மார்க்ச் பட்டியல்" + }, + "redirectOnlyInIncognito": { + "message": "மறைமுகத்தில் மட்டுமே திருப்பி விடுங்கள்" + }, + "bypass": { + "message": "பைபாச்" + }, + "block": { + "message": "தொகுதி" + }, + "searchHint": { + "message": "இயல்புநிலை தேடுபொறியாக Lirbredirect ஐ அமைக்கவும். குரோமியம் உலாவிகளில் எவ்வாறு செய்வது என்பதற்கு, <a href = 'https: //libredirect.github.io/docs.html#search_engine_chromium' target = '_ வெற்று' rel = 'noopener norferrer'> இங்கே </a>." + }, + "redirect": { + "message": "திருப்பி விடுங்கள்" + }, + "redirectGoogle": { + "message": "Google ஐ திருப்பி விடுங்கள்" + }, + "search_frontend": { + "message": "முன்பக்கத்தைத் தேடுங்கள்" + }, + "searchService": { + "message": "தேடல் பணி" + }, + "embedFrontend": { + "message": "ஃபிரான்டெண்ட் உட்பொதிக்கவும்" + } +} diff --git a/src/assets/javascripts/services.js b/src/assets/javascripts/services.js index 98c39908..3870d6bd 100644 --- a/src/assets/javascripts/services.js +++ b/src/assets/javascripts/services.js @@ -557,7 +557,40 @@ function rewrite(url, originUrl, frontend, randomInstance) { case "duckDuckGoAiChat": return "https://duckduckgo.com/?q=DuckDuckGo+AI+Chat&ia=chat&duckai=1" + + case "soundcloak": + if (url.pathname.startsWith("/feed") || url.pathname.startsWith("/stream")) { // this feature requires authentication and is unsupported, so just redirect to main page + return randomInstance + } + + if (url.pathname.startsWith("/search")) { + if (!url.search) { + return randomInstance + } + + let type = "" + if (url.pathname.startsWith("/search/sounds")) { + type = "tracks" + } else if (url.pathname.startsWith("/search/people")) { + type = "users" + } else if (url.pathname.startsWith("/search/albums") || url.pathname.startsWith("/search/sets")) { + type = "playlists" + } + + if (type) { + type = "&type="+type + } else { + return randomInstance // fallback for unsupported search types (searching for anything for example) + } + + return `${randomInstance}/search${url.search}${type}` + } + + if (url.host == "on.soundcloud.com") { + return `${randomInstance}/on${url.pathname}` + } + return `${randomInstance}${url.pathname}${url.search}` case "piped": case "pipedMaterial": case "cloudtube": @@ -762,6 +795,38 @@ async function reverse(url) { return `${config.services[service].url}/${url.search.slice(1)}` case "goodreads": return `https://goodreads.com${url.pathname}${url.search}` + case "soundcloud": + if (frontend == "soundcloak") { + if (url.pathname.includes("/_/")) { // soundcloak-specific pages + return `${config.services[service].url}${url.pathname.split("/_/")[0]}` + } + + if (url.pathname == "/search") { + let type = url.searchParams.get("type") + switch (type) { + case "playlists": + type = "sets" + break + case "tracks": + type = "sounds" + break + case "users": + type = "people" + break + default: + type = "" + } + + url.searchParams.delete("type") + if (!type) { + return `${config.services[service].url}/search?${url.searchParams.toString()}` + } else { + return `${config.services[service].url}/search/${type}?${url.searchParams.toString()}` + } + } + + return `${config.services[service].url}${url.pathname}` + } default: return } @@ -825,9 +890,10 @@ const defaultInstances = { ratAintTieba: ["https://rat.fis.land"], shoelace: ["https://shoelace.mint.lgbt"], skunkyArt: ["https://skunky.bloat.cat"], - ytify: ["https://ytify.netlify.app"], + ytify: ["https://ytify.us.kg"], nerdsForNerds: ["https://nn.vern.cc"], koub: ["https://koub.clovius.club"], + soundcloak: ["https://soundcloak.fly.dev"] } async function getDefaults() { diff --git a/src/config.json b/src/config.json index f5f3819d..13f9d761 100644 --- a/src/config.json +++ b/src/config.json @@ -122,7 +122,7 @@ }, "viewtube": { "name": "ViewTube", - "embeddable": false, + "embeddable": true, "instanceList": true, "url": "https://github.com/ViewTube/viewtube" }, @@ -559,6 +559,12 @@ "embeddable": false, "instanceList": true, "url": "https://github.com/migalmoreno/tubo" + }, + "soundcloak": { + "name": "soundcloak", + "embeddable": false, + "instanceList": true, + "url": "https://git.maid.zone/stuff/soundcloak" } }, "targets": [ diff --git a/src/pages/options_src/General/SettingsButtons.svelte b/src/pages/options_src/General/SettingsButtons.svelte index 4be747fe..1b92ecbc 100644 --- a/src/pages/options_src/General/SettingsButtons.svelte +++ b/src/pages/options_src/General/SettingsButtons.svelte @@ -38,7 +38,7 @@ const resultString = JSON.stringify(_options, null, " ") const anchor = document.createElement("a") anchor.href = "data:application/json;base64," + btoa(resultString) - anchor.download = `libredirect-settings-v${_options.version}.json` + anchor.download = `libredirect-settings-v${_options.version}-${(new Date().toISOString().replace(':','-').slice(0,-5))}.json` anchor.click() } |