Merge branch 'VueTubeApp:main' into main

This commit is contained in:
gayolGate | Dev Studio 2022-08-07 21:40:21 +02:00 committed by GitHub
commit 002de2b5ad
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 408 additions and 123 deletions

View File

@ -6,6 +6,7 @@
:items="langs"
label="App Language"
solo
rounded
/>
<v-dialog v-model="restart" width="500">

View File

@ -22,7 +22,7 @@
"
:style="{ borderRadius: `${roundTweak / 2}rem` }"
>
<v-card-title>{{ lang.appinformation }}</v-card-title>
<v-card-title><v-icon style="margin-right: 0.5em;">mdi-cog-box</v-icon>{{ lang.appinformation }}</v-card-title>
<v-card-text>
<h3>{{ lang.appversion }}</h3>
{{ version.substring(0, 7) || "Unknown" }} ({{ release }})
@ -39,7 +39,7 @@
"
:style="{ borderRadius: `${roundTweak / 2}rem` }"
>
<v-card-title>{{ lang.deviceinformation }}</v-card-title>
<v-card-title><v-icon style="margin-right: 0.5em;">mdi-cellphone-information</v-icon>{{ lang.deviceinformation }}</v-card-title>
<v-card-text>
<h3>{{ lang.platform }}</h3>
{{ deviceInfo.platform || "Unknown" }}<br />
@ -80,7 +80,7 @@
:style="{ borderRadius: `${roundTweak / 2}rem` }"
@click="openExternal('https://discord.gg/7P8KJrdd5W')"
>
<v-icon x-large class="actionIcon">mdi-discord</v-icon>
<v-icon x-large class="actionIcon">mdi-forum</v-icon>
{{ lang.discord }}
</v-btn>
</div>

View File

@ -14,6 +14,7 @@
:items="pages"
label="Default Page"
solo
rounded
></v-select>
</v-card-text>
</v-card>

View File

@ -14,20 +14,32 @@
<h1>{{ lang.noupdate }}</h1>
<p>{{ lang.noupdatemessage }}</p>
<div class="bottom">
<v-btn rounded @click="getLatest">{{ lang.refresh }}</v-btn>
<v-btn rounded color="primary" @click="$router.go(-1)">{{ lang.okay }}</v-btn>
</div>
</div>
<div v-if="status == 'available'">
<h1>{{ lang.available }}</h1>
<h1 v-if="!downloading">{{ lang.available }}</h1>
<h1 v-if="downloading">{{ lang.updating }}</h1>
<div>{{ lang.installed }}: {{ installedVersion }}</div>
<div>{{ lang.latest }}: {{ latestVersion.tag_name }}</div>
<div style="margin-top: 3em; color: #999;"><b>Changelog</b></div>
<div style="margin-top: 1em; color: #999;">
<div>{{ lang.published }}: {{ new Date(update.created_at).toLocaleString() }}</div>
<div>{{ lang.size }}: {{ require("~/plugins/utils").humanFileSize(update.size) }}</div>
<div>{{ lang.users }}: {{ update.download_count }}</div>
</div>
<div style="margin-top: 1em; color: #999;"><b>Changelog</b></div>
<p style="white-space: pre-line; color: #999;">{{ latestVersion.body.trim() }}</p>
<p></p>
<div class="bottom">
<v-progress-linear indeterminate color="primary" v-if="downloading" style="position: absolute; top: 0; width: 100%; left: 0;" />
<div class="bottom" v-if="!downloading">
<v-btn rounded @click="$router.go(-1)">{{ lang.later }}</v-btn>
<v-btn rounded color="primary" @click="update()">{{ lang.update }}</v-btn>
<v-btn rounded color="primary" @click="install()">{{ lang.update }}</v-btn>
</div>
</div>
@ -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');
}
}
};

View File

@ -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: "اختر حزمة للتحميل"
},
};

View File

@ -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",
},

View File

@ -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: "डाउनलोड करने के लिए पैकेज चुनें"
},
};

View File

@ -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",

View File

@ -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"
},
};

View File

@ -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,
};

View File

@ -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 ---//

View File

@ -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)