diff --git a/NUXT/components/Settings/language.vue b/NUXT/components/Settings/language.vue index 8fe0895..bd2a4cd 100644 --- a/NUXT/components/Settings/language.vue +++ b/NUXT/components/Settings/language.vue @@ -6,6 +6,7 @@ :items="langs" label="App Language" solo + rounded /> diff --git a/NUXT/pages/mods/about.vue b/NUXT/pages/mods/about.vue index 2f4bc26..e722700 100644 --- a/NUXT/pages/mods/about.vue +++ b/NUXT/pages/mods/about.vue @@ -22,7 +22,7 @@ " :style="{ borderRadius: `${roundTweak / 2}rem` }" > - {{ lang.appinformation }} + mdi-cog-box{{ lang.appinformation }}

{{ lang.appversion }}

{{ version.substring(0, 7) || "Unknown" }} ({{ release }}) @@ -39,7 +39,7 @@ " :style="{ borderRadius: `${roundTweak / 2}rem` }" > - {{ lang.deviceinformation }} + mdi-cellphone-information{{ lang.deviceinformation }}

{{ lang.platform }}

{{ deviceInfo.platform || "Unknown" }}
@@ -80,7 +80,7 @@ :style="{ borderRadius: `${roundTweak / 2}rem` }" @click="openExternal('https://discord.gg/7P8KJrdd5W')" > - mdi-discord + mdi-forum {{ lang.discord }} diff --git a/NUXT/pages/mods/startup.vue b/NUXT/pages/mods/startup.vue index 54c9e58..40d3817 100644 --- a/NUXT/pages/mods/startup.vue +++ b/NUXT/pages/mods/startup.vue @@ -14,6 +14,7 @@ :items="pages" label="Default Page" solo + rounded >
diff --git a/NUXT/pages/mods/updates.vue b/NUXT/pages/mods/updates.vue index 01ac629..1f9536d 100644 --- a/NUXT/pages/mods/updates.vue +++ b/NUXT/pages/mods/updates.vue @@ -14,20 +14,32 @@

{{ lang.noupdate }}

{{ lang.noupdatemessage }}

+ {{ lang.refresh }} {{ lang.okay }}
-

{{ lang.available }}

+

{{ lang.available }}

+

{{ lang.updating }}

{{ lang.installed }}: {{ installedVersion }}
{{ lang.latest }}: {{ latestVersion.tag_name }}
-
Changelog
+ +
+
{{ lang.published }}: {{ new Date(update.created_at).toLocaleString() }}
+
{{ lang.size }}: {{ require("~/plugins/utils").humanFileSize(update.size) }}
+
{{ lang.users }}: {{ update.download_count }}
+
+ + +
Changelog

{{ latestVersion.body.trim() }}

-

-
+ + + +
{{ lang.later }} - {{ lang.update }} + {{ lang.update }}
@@ -53,46 +65,73 @@ export default { installedVersion: process.env.appVersion, latestVersion: "", lang: {}, - status: "checking" + status: "checking", + update: {}, + downloading: false, }; }, async mounted() { //--- Setup Lang Pack ---// this.lang = this.$lang("mods").updates; - //--- Get Latest Version ---// - const releases = await this.$vuetube.releases; - this.latestVersion = releases[0]; - - //--- Wait like 2 seconds because if people don't see loading, they think it didn't refresh properly ---// - if (!this.$route.query.nowait) await require("~/plugins/utils").delay(2000); - - //--- Kick Off Update Notice ---// - if (this.latestVersion.tag_name != this.installedVersion) { - this.status = "available"; - } else { - this.status = "latest"; - } + this.getLatest(); }, methods: { - async update() { + + async getUpdate() { const device = await Device.getInfo(); const platform = device.platform; + //--- Put all strings into 1 array ---// let downloads = new Array(); for (const i in this.latestVersion.assets) { const asset = this.latestVersion.assets[i]; downloads.push(asset.browser_download_url); } - console.log(downloads) + //--- Pick String For Platform From Above Array ---// if (platform == "ios") { - window.open(downloads.filter(m => m.includes('.ipa'))[0], '_blank'); + this.update = downloads.filter(m => m.includes('.ipa'))[0]; } else { - window.open(downloads.filter(m => m.includes('.apk'))[0], '_blank'); + this.update = downloads.filter(m => m.includes('.apk'))[0]; } + //--- Set Update As Full Data ---// + for (const i in this.latestVersion.assets) { + const asset = this.latestVersion.assets[i]; + if (asset.browser_download_url == this.update) { + return this.update = asset; + } + } + + }, + + async getLatest() { + //--- Get Latest Version ---// + this.status = "checking"; + const releases = await this.$vuetube.releases; + this.latestVersion = releases[0]; + + //--- Wait like 2 seconds because if people don't see loading, they think it didn't refresh properly ---// + if (!this.$route.query.nowait) await require("~/plugins/utils").delay(2000); + + //--- Get Proper File ---// + this.getUpdate(); + + //--- Kick Off Update Notice ---// + if (this.latestVersion.tag_name != this.installedVersion) { + this.status = "available"; + } else { + this.status = "latest"; + } + }, + + async install() { + this.downloading = true; + await this.$vuetube.update(this.update.browser_download_url).catch(() => { this.downloading = false; }); + //window.open(this.update.browser_download_url, '_blank'); + } } }; diff --git a/NUXT/plugins/languages/arabic.js b/NUXT/plugins/languages/arabic.js new file mode 100644 index 0000000..519576f --- /dev/null +++ b/NUXT/plugins/languages/arabic.js @@ -0,0 +1,100 @@ +module.exports = { + name: "Arabic", + + global: { + home: "الصفحة الرئيسية", + subscriptions: "الاشتراكات", + library: "المكتبة", + restart: "إعادة", + later: "لاحقًا", + settingRestart: "تعديل هذا الخيار يُلزم التطبيق بأن يعاد تشغيله لتطبيق التغيرات" + }, + + index: { + connecting: "جاري الاتصال", + plugins: "يتم تحميل الإضافات", + launching: "جاري التشغيل", + }, + + settings: { + general: "عام", + theme: "الثيمات", + player: "المشغل", + uitweaker: "معدِّل الواجهة", + startupoptions: "خيارات التشغيل", + plugins: "الإضافات", + updates: "التحديثات", + logs: "السجلات", + about: "حول", + devmode: "معدِّل السجلات", + }, + + mods: { + general: { + language: "اللغة", + }, + theme: { + normal: "عادي", + adaptive: "متكيف", + custom: "مخصص", + dark: "داكن", + black: "أسود", + darkmode: "الوضع الداكن", + darkmodetagline: "احسنت ، يتم التغيير للوضع الداكن", + }, + tweaks: { + fullscreen: "شاشة كاملة", + navbarblur: "ضبابية شريط التنقل", + roundedcorners: "حواف مدورة", + roundthumbnails: "صور مصغرة مدورة", + roundwatchpagecomponents: "موارد صفحة المشاهدة مدورة", + radius: "كمية التدوير", + }, + startup: { + defaultpage: "الصفحة الافتراضية", + }, + updates: { + checking: "يتم التحقق من التحديثات", + available: "تحديث متوفر", + noupdate: "لا يتوفر تحديثات", + noupdatemessage: "أنت تستخدم أحدث إصدار من فيوتيوب ، تحقق من التحديثات لاحقا", + + installed: "النسخة المثبتة", + latest: "أحدث نسخة", + + okay: "حسنا", + update: "تحديث", + later: "لاحقا", + }, + logs: { + more: "المزيد", + }, + about: { + appinformation: "معلومات التطبيق", + appversion: "إصدار التطبيق", + deviceinformation: "معلومات الجهاز", + platform: "المنصة", + os: "نظام التشغيل", + model: "الموديل", + manufacturer: "الشركة المصنعة", + emulator: "المحاكي", + github: "جيتهب", + discord: "ديسكورد", + }, + }, + + events: { + welcome: "أهلا بك إلى فيوتيوب", + tagline: "مستقبل بث الفيديوهات", + next: "التالي", + updated: "فيوتيوب كان محدثا", + awesome: "رائع", + langsetup: "لنختار اللغة", + featuresetup: "لنختار بعض الميزات", + enableryd: "تفعيل ReuturnYoutubeDislikes", + enablespb: "تفعيل sponsorblock", + thanks: "شكرا لاستخدامك فيوتيوب", + enjoy: "نتمنى لك تجربة ممتازة", + packageinstaller: "اختر حزمة للتحميل" + }, +}; diff --git a/NUXT/plugins/languages/english.js b/NUXT/plugins/languages/english.js index f75fd37..e70e885 100644 --- a/NUXT/plugins/languages/english.js +++ b/NUXT/plugins/languages/english.js @@ -55,6 +55,7 @@ module.exports = { defaultpage: "Default Page", }, updates: { + updating: "Downloading update", checking: "Checking for updates", available: "Update available", noupdate: "No updates available", @@ -63,7 +64,12 @@ module.exports = { installed: "Installed Version", latest: "Latest Version", + published: "Published", + users: "Users", + size: "Update Size", + okay: "Okay", + refresh: "Refresh", update: "Update", later: "Later", }, diff --git a/NUXT/plugins/languages/hindi.js b/NUXT/plugins/languages/hindi.js new file mode 100644 index 0000000..ae78880 --- /dev/null +++ b/NUXT/plugins/languages/hindi.js @@ -0,0 +1,102 @@ +module.exports = { + name: "हिन्दी", + + global: { + home: "होम", + subscriptions: "सदस्यता", + library: "लाइब्रेरी", + restart: "पुनरारंभ", + later: "बाद में", + settingRestart: "ये सेटिंग मै बदलाव लाने के बाद, परिवर्तन देखने के लिए ऐप को पुनरारंभ करना होगा।", + okay: "ठीक है" + }, + + index: { + connecting: "कनेक्टिंग", + plugins: "प्लग-इन लोड किये जा रहे हैं", + launching: "लॉन्चिंग", + }, + + settings: { + general: "सामान्य", + theme: "थीम", + player: "प्लेयर", + uitweaker: "यूआई ट्वीकर", + startupoptions: "चालू करने के विकल्प", + plugins: "प्लग-इन", + updates: "अपडेट", + logs: "लॉग", + about: "बारे में", + devmode: "रजिस्ट्रि संपादक", + }, + + mods: { + general: { + language: "भाषा", + }, + theme: { + normal: "सामान्य", + adaptive: "अनुकूली", + custom: "कस्टम", + dark: "डार्क", + black: "काला", + darkmode: "डार्क मोड", + darkmodetagline: "ब्रावो सिक्स, गोइंग डार्क।", + }, + tweaks: { + fullscreen: "फ़ुल स्क्रीन", + navbarblur: "नेवबार धुंधला", + roundedcorners: "गोल कोने", + roundthumbnails: "गोल थंबनेल", + roundwatchpagecomponents: "गोल वॉच पेज कंपोनेंट्स", + radius: "रेडियस", + }, + startup: { + defaultpage: "निर्धारित पेज", + }, + updates: { + checking: "अपडेट की जाँच हो रही है", + available: "अपडेट उपलब्ध", + noupdate: "अपडेट उपलब्ध नहीं है", + noupdatemessage: "आप VueTube का सबसे हाल ही का संस्करण इस्तमाल कर रहे हों। अपडेट के लिए बादमे आय।", + + installed: "इंस्टॉल संस्करण", + latest: "नवीनतम संस्करण", + + okay: "ठीक है", + update: "अपडेट", + later: "बाद में", + }, + logs: { + more: "और", + }, + about: { + appinformation: "ऐप की जानकारी", + appversion: "ऐप संस्करण", + deviceinformation: "डिवाइस की जानकारी", + platform: "प्लेटफार्मों", + os: "ऑपरेटिंग सिस्टम", + model: "मॉडल", + manufacturer: "उत्पादक", + emulator: "एम्यूलेटर", + github: "GitHub", + discord: "Discord", + }, + }, + + events: { + welcome: "VueTube में आपका स्वागत हैं!", + tagline: "वीडियो स्ट्रीमिंग का भविष्य", + next: "अगला", + updated: "VueTube को अपडेट किया गया है", + awesome: "बहुत बढ़िया", + langsetup: "आइए एक भाषा चुनते हैं!", + featuresetup: "आइए कुछ सुविधाएं चुनें!", + enableryd: "Return YouTube Dislike को चालू करे", + enablespb: "SponsorBlock को चालू करे", + thanks: "VueTube इस्तेमाल करने के लिए धन्यवाद!", + enjoy: "हमें उम्मीद है कि आपको अद्भुत अनुभव मिला होगा", + packageinstaller: "डाउनलोड करने के लिए पैकेज चुनें" + }, + }; + \ No newline at end of file diff --git a/NUXT/plugins/languages/indonesian.js b/NUXT/plugins/languages/indonesian.js index b420854..4bb3ec7 100644 --- a/NUXT/plugins/languages/indonesian.js +++ b/NUXT/plugins/languages/indonesian.js @@ -8,6 +8,7 @@ module.exports = { restart: "Mulai ulang", later: "Nanti", settingRestart: "Memodifikasi pengaturan ini membutuhkan tindakan mulai ulang aplikasi untuk menerapkan perubahan.", + okay: "OK" }, index: { @@ -54,13 +55,20 @@ module.exports = { defaultpage: "Halaman Bawaan", }, updates: { - install: "Instal", - view: "Lihat", - latest: "Terbaru", - installed: "Terinstal", + checking: "Memeriksa pembaruan", + available: "Pembaruan tersedia", + noupdate: "Tidak ada pembaruan tersedia", + noupdatemessage: "Kamu menggunakan versi terbaru dari VueTube. Periksa kembali nanti untuk pembaruan.", + + installed: "Versi Terinstal", + latest: "Versi Terbaru", + + okay: "OK", + update: "Perbarui", + later: "Nanti", }, logs: { - more: "Lebih", + more: "Lainnya", }, about: { appinformation: "Informasi Aplikasi", diff --git a/NUXT/plugins/languages/romanian.js b/NUXT/plugins/languages/romanian.js index ba03be9..4ddda83 100644 --- a/NUXT/plugins/languages/romanian.js +++ b/NUXT/plugins/languages/romanian.js @@ -1,93 +1,100 @@ module.exports = { - name: "Română", - - global: { - home: "Acasă", - subscriptions: "Abonamente", - library: "Bibliotecă", - restart: "Repornește acum", - later: "Mai tărziu", - settingRestart: "Modificarea acestei setări necesită repornirea aplicației pentru ca setările să fie aplicate." - }, - - index: { - connecting: "Se contectează", - launching: "Se lansează" - }, - - settings: { - general: "Generală", - theme: "Tema", - player: "Jucător video.", - uitweaker: "Interfața", - startupoptions: "Opțiunea de lansare", - plugins: "Pluginuri", - updates: "Actualizarea", - logs: "Jurnalul", - about: "Despre", - devmode: "Editare de dezvoltare" - }, - - mods: { - general: { - language: "Limbă" - }, - theme: { - normal: "Normal", - adaptive: "Adapta", - custom: "Customizare", - dark: "Întuneric", - black: "Negru", - darkmode: "Modul Negru", - darkmodetagline: "Bravo Six, întunecându-te." - }, - tweaks: { - fullscreen: "Ecran complet", - navbarblur: "Bară de navigarea estompare", - roundedcorners: "Colturi Rotunjite", - roundthumbnails: "Thumbnails Rotunjite", - roundwatchpagecomponents: "Componente rotunde pentru casă", - radius: "Rază" - }, - startup: { - defaultpage: "Pagină implicită" - }, - updates: { - install: "Instalarea", - view: "Vezi", - latest: "Ultimă", - installed: "Instalat" - }, - logs: { - more: "Mai multe" - }, - about: { - appinformation: "Informații aplicației", - appversion: "Versiunea", - deviceinformation: "Informații dispozitivului", - platform: "Platforma", - os: "Sistem de operare", - model: "Model", - manufacturer: "Producător", - emulator: "Emulator", - github: "GitHub", - discord: "Discord" - } - }, - - events: { - welcome: "Bun venit la VueTube", - tagline: "Viitorul streamingului videoclip", - next: "Următorul", - updated: "VueTube a fost actualizat!", - awesome: "Uimitor!", - langsetup: "Alegeți o limbă!", - featuresetup: "Alegeți o caracteristică!", - enableryd: "Activați Return YouTube Dislike", - enablespb: "Activați SponsorBlock", - thanks: "Va mulțumin că folosiți VueTube!", - enjoy: "Sperăm să vă bucurați de experiența dumneavoastră!" - } - + name: "Română", - } + global: { + home: "Acasă", + subscriptions: "Abonamente", + library: "Bibliotecă", + restart: "Repornește", + later: "Mai tărziu", + settingRestart: "Modificarea acestei setări necesită repornirea aplicației pentru ca setările să fie aplicate.", + okay: "Bine" + }, + + index: { + connecting: "Se conectează", + plugins: "Se încărca pluginuri", + launching: "Se lansează", + }, + + settings: { + general: "Generală", + theme: "Tema", + player: "Jucător video", + uitweaker: "Interfața", + startupoptions: "Opțiunea de lansare", + plugins: "Pluginuri", + updates: "Actualizarea", + logs: "Jurnalul", + about: "Despre", + devmode: "Editare de registru", + }, + + mods: { + general: { + language: "Limbă", + }, + theme: { + normal: "Normal", + adaptive: "Adapta", + custom: "Customizare", + dark: "Întuneric", + black: "Negru", + darkmode: "Modul Întuneric", + darkmodetagline: "Bravo Six, întunecându-te." + }, + tweaks: { + fullscreen: "Ecran complet", + navbarblur: "Bară de navigarea estompare", + roundedcorners: "Colturi Rotunjite", + roundthumbnails: "Thumbnails Rotunjite", + roundwatchpagecomponents: "Componente rotunde pentru casă", + radius: "Rază", + }, + startup: { + defaultpage: "Pagină implicită", + }, + updates: { + checking: "Se verifică actualizarea", + available: "Actualizare disponibilă", + noupdate: "Nu există actualizări disponibile", + noupdatemessage: "Folosești cea mai recentă versiunea VueTube. Reveniți mai târziu pentru actualizări", + installed: "Versiunea instalată", + latest: "Ultimă versiunea", + + okay: "Bine", + update: "Actualizați", + later: "Mai tărziu", + }, + logs: { + more: "Mai multe", + }, + about: { + appinformation: "Informația aplicației", + appversion: "Versiunea aplicației", + deviceinformation: "Informația dispozitivului", + platform: "Platforma", + os: "Sistem de operare", + model: "Modelul", + manufacturer: "Producător", + emulator: "Emulator", + github: "GitHub", + discord: "Discord", + }, + }, + + events: { + welcome: "Bun venit la VueTube", + tagline: "Viitorul streamingului videoclip", + next: "Următorul", + updated: "VueTube a fost actualizat!", + awesome: "Uimitor", + langsetup: "Alegeți o limbă!", + featuresetup: "Alegeți o caracteristică!", + enableryd: "Activați Return YouTube Dislike", + enablespb: "Activați SponsorBlock", + thanks: "Va mulțumin că folosiți VueTube!", + enjoy: "Sperăm să vă bucurați de experiența dumneavoastră!", + packageinstaller: "Alegeți un pachet de descărcat" + }, +}; diff --git a/NUXT/plugins/utils.js b/NUXT/plugins/utils.js index 84e670b..733bfe9 100644 --- a/NUXT/plugins/utils.js +++ b/NUXT/plugins/utils.js @@ -77,6 +77,11 @@ function linkParser(url) { } const delay = (ms) => new Promise((res) => setTimeout(res, ms)); +function humanFileSize(size) { + var i = Math.floor( Math.log(size) / Math.log(1024) ); + return ( size / Math.pow(1024, i) ).toFixed(2) * 1 + ' ' + ['B', 'kB', 'MB', 'GB', 'TB'][i]; +}; + module.exports = { getBetweenStrings, hexToRgb, @@ -86,4 +91,5 @@ module.exports = { linkParser, delay, parseEmoji, + humanFileSize, }; diff --git a/NUXT/plugins/vuetube.js b/NUXT/plugins/vuetube.js index ee94111..43cf26e 100644 --- a/NUXT/plugins/vuetube.js +++ b/NUXT/plugins/vuetube.js @@ -139,6 +139,21 @@ const module = { return returntext; }, //--- End Convert Time To Human Readable String ---// + + update(url) { + return new Promise(async (resolve, reject) => { + const data = await Http.request({ + method: "GET", + url: url + }).catch((err) => { reject(err); }) + + console.log(data) + + }) + } + + + }; //--- Start ---// diff --git a/readme.md b/readme.md index d8f2167..511674a 100644 --- a/readme.md +++ b/readme.md @@ -43,7 +43,7 @@ Features - ⬆️ **Auto updates:** Be notified when an update is available, download through the app and downgrade if you don't like it! - 👁️ **Tracking protection:** No telemetry data is sent from your device by default and we don't use external APIs. Privacy is neccesary! - 📺 **Custom video player:** There is a player integrated in the application with everything you need to be happy, such as 16x speed. -- 🌍 **Translations:** App is avaiable in more than 25 languages! Default language is determined according to your device configuration. +- 🌍 **Translations:** App is available in more than 25 languages! Default language is determined according to your device configuration. - 👎 **Return YouTube Dislike** - Enable dislike counters in videos again. [_More info_](https://returnyoutubedislike.com) - 💰 **SponsorBlock** - Skip automatically sponsors and annoying segments in videos. [_More info_](https://sponsor.ajay.app)