mirror of
https://github.com/VueTubeApp/VueTube
synced 2025-01-06 07:31:12 +00:00
resolving conflicts
This commit is contained in:
commit
ac9fa3f4da
18 changed files with 371 additions and 137 deletions
81
.github/ISSUE_TEMPLATE/bug-report.yml
vendored
Normal file
81
.github/ISSUE_TEMPLATE/bug-report.yml
vendored
Normal file
|
@ -0,0 +1,81 @@
|
|||
name: 🐞 Issue Report
|
||||
description: Report a issue in VueTube
|
||||
labels: [bug]
|
||||
body:
|
||||
|
||||
- type: textarea
|
||||
id: reproduce-steps
|
||||
attributes:
|
||||
label: Steps to reproduce
|
||||
description: Provide an example of the issue.
|
||||
placeholder: |
|
||||
Example:
|
||||
1. First step
|
||||
2. Second step
|
||||
3. Issue here
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: expected-behavior
|
||||
attributes:
|
||||
label: Expected behavior
|
||||
placeholder: |
|
||||
Example:
|
||||
"This should happen..."
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: actual-behavior
|
||||
attributes:
|
||||
label: Actual behavior
|
||||
placeholder: |
|
||||
Example:
|
||||
"This happened instead..."
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: input
|
||||
id: vuetube-version
|
||||
attributes:
|
||||
label: VueTube version
|
||||
description: |
|
||||
You can find your VueTube version in **Settings**.
|
||||
placeholder: |
|
||||
Example: "1.0"
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: input
|
||||
id: android-version
|
||||
attributes:
|
||||
label: Android version
|
||||
description: |
|
||||
You can find this somewhere in your Android settings.
|
||||
placeholder: |
|
||||
Example: "Android 12"
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: other-details
|
||||
attributes:
|
||||
label: Other details
|
||||
placeholder: |
|
||||
Additional details and attachments.
|
||||
|
||||
- type: checkboxes
|
||||
id: acknowledgements
|
||||
attributes:
|
||||
label: Acknowledgements
|
||||
description: Your issue will be closed if you haven't done these steps.
|
||||
options:
|
||||
- label: I have searched the existing issues and this is a new ticket, **NOT** a duplicate or related to another open issue.
|
||||
required: true
|
||||
- label: I have written a short but informative title.
|
||||
required: true
|
||||
- label: I have updated the app to unstable version **[Latest](https://vuetube.app/install/)**.
|
||||
required: true
|
||||
- label: I will fill out all of the requested information in this form.
|
||||
required: true
|
31
.github/ISSUE_TEMPLATE/bug_report.md
vendored
31
.github/ISSUE_TEMPLATE/bug_report.md
vendored
|
@ -1,31 +0,0 @@
|
|||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Describe the bug**
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
**To Reproduce**
|
||||
Steps to reproduce the behavior:
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
4. See error
|
||||
|
||||
**Expected behavior**
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
**Screenshots**
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
|
||||
**Device Information**
|
||||
- OS: [e.g. iOS 15, Android 12]
|
||||
- App Version [e.g. 22]
|
||||
|
||||
**Additional context**
|
||||
Add any other context about the problem here.
|
35
.github/ISSUE_TEMPLATE/feature-request.yml
vendored
Normal file
35
.github/ISSUE_TEMPLATE/feature-request.yml
vendored
Normal file
|
@ -0,0 +1,35 @@
|
|||
name: ⭐ Feature request
|
||||
description: Suggest a feature to improve the app
|
||||
labels: [feature request]
|
||||
body:
|
||||
|
||||
- type: textarea
|
||||
id: feature-description
|
||||
attributes:
|
||||
label: Describe your suggested feature
|
||||
description: How can an existing source be improved?
|
||||
placeholder: |
|
||||
Example:
|
||||
"It should work like this..."
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: other-details
|
||||
attributes:
|
||||
label: Other details
|
||||
placeholder: |
|
||||
Additional details and attachments.
|
||||
|
||||
- type: checkboxes
|
||||
id: acknowledgements
|
||||
attributes:
|
||||
label: Acknowledgements
|
||||
description: Your issue will be closed if you haven't done these steps.
|
||||
options:
|
||||
- label: I have searched the existing issues and this is a new ticket, **NOT** a duplicate or related to another open issue.
|
||||
required: true
|
||||
- label: I have written a short but informative title.
|
||||
required: true
|
||||
- label: I will fill out all of the requested information in this form.
|
||||
required: true
|
20
.github/ISSUE_TEMPLATE/feature_request.md
vendored
20
.github/ISSUE_TEMPLATE/feature_request.md
vendored
|
@ -1,20 +0,0 @@
|
|||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea for this project
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Is your feature request related to a problem? Please describe.**
|
||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||
|
||||
**Describe the solution you'd like**
|
||||
A clear and concise description of what you want to happen.
|
||||
|
||||
**Describe alternatives you've considered**
|
||||
A clear and concise description of any alternative solutions or features you've considered.
|
||||
|
||||
**Additional context**
|
||||
Add any other context or screenshots about the feature request here.
|
|
@ -15,8 +15,12 @@
|
|||
</v-btn>
|
||||
</template>
|
||||
|
||||
<template v-for="(comment, index) in comments">
|
||||
<v-list-item :key="index" class="px-0">
|
||||
<div
|
||||
v-for="(comment, index) in comments"
|
||||
:key="index"
|
||||
class="commentElement"
|
||||
>
|
||||
<v-list-item class="px-0">
|
||||
<component
|
||||
v-if="getComponents()[Object.keys(comment)[0]]"
|
||||
:is="Object.keys(comment)[0]"
|
||||
|
@ -25,11 +29,8 @@
|
|||
@showReplies="openReply"
|
||||
></component>
|
||||
</v-list-item>
|
||||
<v-divider
|
||||
v-if="getComponents()[Object.keys(comment)[0]]"
|
||||
:key="index"
|
||||
></v-divider>
|
||||
</template>
|
||||
<v-divider v-if="getComponents()[Object.keys(comment)[0]]"></v-divider>
|
||||
</div>
|
||||
|
||||
<div class="loading" v-if="loading">
|
||||
<v-sheet
|
||||
|
|
|
@ -15,9 +15,11 @@
|
|||
<template>
|
||||
<comment-thread-renderer :comment="parentComment" />
|
||||
<v-divider></v-divider>
|
||||
<template v-for="index in 10">
|
||||
<comment-thread-renderer :comment="parentComment" v-bind:key="index" />
|
||||
</template>
|
||||
<comment-thread-renderer
|
||||
v-for="index in 10"
|
||||
v-bind:key="index"
|
||||
:comment="parentComment"
|
||||
/>
|
||||
</template>
|
||||
</dialog-base>
|
||||
</template>
|
||||
|
|
|
@ -34,15 +34,35 @@
|
|||
v-text="item.icon"
|
||||
/>
|
||||
<!--
|
||||
Add the following to 'v-text- above to make the icons outlined unless active
|
||||
<span v-text="item.name" />
|
||||
<v-icon
|
||||
:color="
|
||||
tabSelection == i
|
||||
? 'primary'
|
||||
: $vuetify.theme.dark
|
||||
? 'background lighten-4'
|
||||
: 'background darken-4'
|
||||
"
|
||||
:class="
|
||||
tabSelection == i
|
||||
? $vuetify.theme.dark
|
||||
? 'tab primary darken-4'
|
||||
: 'tab primary lighten-4'
|
||||
: ''
|
||||
"
|
||||
v-text="item.icon"
|
||||
/> -->
|
||||
<!-- Add the following to 'v-text- above to make the icons outlined unless active
|
||||
+ (tabSelection == i ? '' : '-outline')
|
||||
|
||||
|
||||
-->
|
||||
</v-btn>
|
||||
<!-- <v-btn text class="navButton mr-2 fill-height" color="white" @click="searchBtn()"
|
||||
><v-icon>mdi-magnify</v-icon></v-btn
|
||||
> -->
|
||||
<!-- <v-btn
|
||||
text
|
||||
class="navButton mr-2 fill-height"
|
||||
color="white"
|
||||
@click="searchBtn()"
|
||||
><v-icon>mdi-magnify</v-icon></v-btn
|
||||
> -->
|
||||
</v-bottom-navigation>
|
||||
</div>
|
||||
</template>
|
||||
|
@ -54,19 +74,25 @@ export default {
|
|||
tabSelection: 0,
|
||||
tabs: [
|
||||
// TODO: pull from Vuex & localStorage for customizations
|
||||
{ name: "Home", icon: "mdi-home", link: "/home" },
|
||||
{ name: "...", icon: "mdi-home", link: "/home" },
|
||||
//{ name: "Shorts", icon: "mdi-lightning-bolt", link: "/shorts" },
|
||||
//{ name: "Upload", icon: "mdi-plus", link: "/upload" },
|
||||
{
|
||||
name: "Subscriptions",
|
||||
name: "...",
|
||||
icon: "mdi-youtube-subscription",
|
||||
link: "/subscriptions",
|
||||
},
|
||||
{ name: "Library", icon: "mdi-view-list", link: "/library" },
|
||||
{ name: "...", icon: "mdi-view-list", link: "/library" },
|
||||
// { name: "Settings", icon: "mdi-menu", link: "/settings" },
|
||||
],
|
||||
};
|
||||
},
|
||||
|
||||
mounted() {
|
||||
this.tabs[0].name = this.$lang("global").home;
|
||||
this.tabs[1].name = this.$lang("global").subscriptions;
|
||||
this.tabs[2].name = this.$lang("global").library;
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
|
|
|
@ -1,8 +1,5 @@
|
|||
<template>
|
||||
<v-card class="dialog-base">
|
||||
<v-expand-transition>
|
||||
<slot name="reveal"></slot>
|
||||
</v-expand-transition>
|
||||
<div class="toolbar-container">
|
||||
<v-toolbar color="background" flat>
|
||||
<slot name="header"></slot>
|
||||
|
@ -12,6 +9,9 @@
|
|||
<div class="dialog-body background">
|
||||
<slot></slot>
|
||||
</div>
|
||||
<v-expand-transition>
|
||||
<slot name="reveal"></slot>
|
||||
</v-expand-transition>
|
||||
</v-card>
|
||||
</template>
|
||||
|
||||
|
|
|
@ -245,6 +245,13 @@ export default {
|
|||
-webkit-backdrop-filter: blur(20px);
|
||||
}
|
||||
|
||||
.v-card--reveal {
|
||||
bottom: 0;
|
||||
opacity: 1 !important;
|
||||
position: absolute !important;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.scrollcontainer {
|
||||
overflow: hidden;
|
||||
/* ios notch & gesture nav */
|
||||
|
|
|
@ -17,6 +17,7 @@ export default {
|
|||
{ src: "~/plugins/vuetube", mode: "client" },
|
||||
{ src: "~/plugins/ryd", mode: "client" },
|
||||
{ src: "~/plugins/thirdPartyPluginLoader", mode: "client" },
|
||||
{ src: "~/plugins/language", mode: "client" },
|
||||
],
|
||||
generate: {
|
||||
dir: "../dist",
|
||||
|
|
|
@ -18,9 +18,11 @@ export default {
|
|||
layout: "empty",
|
||||
|
||||
data: () => ({
|
||||
progressMsg: "Connecting",
|
||||
progressMsg: "...",
|
||||
}),
|
||||
async mounted() {
|
||||
this.progressMsg = this.$lang("index").connecting;
|
||||
|
||||
this.$store.commit("tweaks/initTweaks");
|
||||
const theming = new Promise((resolve) =>
|
||||
// Set timeout is required for $vuetify.theme... dont ask me why -Front
|
||||
|
@ -56,9 +58,8 @@ export default {
|
|||
|
||||
await theming;
|
||||
await this.$youtube.getAPI();
|
||||
this.progressMsg = "Launching";
|
||||
await this.$vuetube.launchBackHandling();
|
||||
this.progressMsg = "Navigating";
|
||||
this.progressMsg = this.$lang("index").launching;
|
||||
|
||||
this.$router.replace(`/${localStorage.getItem("startPage") || "home"}`); // Prevent user from navigating back to the splash screen
|
||||
},
|
||||
|
|
|
@ -15,16 +15,15 @@
|
|||
|
||||
<!-- App Information -->
|
||||
<v-card
|
||||
flat
|
||||
class="obj"
|
||||
:class="
|
||||
$vuetify.theme.dark ? 'background lighten-1' : 'background darken-1'
|
||||
"
|
||||
:style="{ borderRadius: `${roundTweak / 2}rem` }"
|
||||
>
|
||||
<v-card-title>App Information</v-card-title>
|
||||
<v-card-title>{{ languagePack.mods.about.appinformation }}</v-card-title>
|
||||
<v-card-text>
|
||||
<h3>App Version</h3>
|
||||
<h3>{{ languagePack.mods.about.appversion }}</h3>
|
||||
{{ version.substring(0, 7) || "Unknown" }}
|
||||
</v-card-text>
|
||||
</v-card>
|
||||
|
@ -32,26 +31,27 @@
|
|||
|
||||
<!-- Device Information -->
|
||||
<v-card
|
||||
flat
|
||||
class="obj"
|
||||
:class="
|
||||
$vuetify.theme.dark ? 'background lighten-1' : 'background darken-1'
|
||||
"
|
||||
:style="{ borderRadius: `${roundTweak / 2}rem` }"
|
||||
>
|
||||
<v-card-title>Device Information</v-card-title>
|
||||
<v-card-title>{{
|
||||
languagePack.mods.about.deviceinformation
|
||||
}}</v-card-title>
|
||||
<v-card-text>
|
||||
<h3>Platform</h3>
|
||||
<h3>{{ languagePack.mods.about.platform }}</h3>
|
||||
{{ deviceInfo.platform || "Unknown" }}<br />
|
||||
<h3>Operating System</h3>
|
||||
<h3>{{ languagePack.mods.about.os }}</h3>
|
||||
{{ deviceInfo.operatingSystem || "Unknown" }} ({{
|
||||
deviceInfo.osVersion || "Unknown"
|
||||
}})<br />
|
||||
<h3>Model</h3>
|
||||
<h3>{{ languagePack.mods.about.model }}</h3>
|
||||
{{ deviceInfo.model || "Unknown" }}<br />
|
||||
<h3>Manufacturer</h3>
|
||||
<h3>{{ languagePack.mods.about.manufacturer }}</h3>
|
||||
{{ deviceInfo.manufacturer || "Unknown" }}<br />
|
||||
<h3>Emulator</h3>
|
||||
<h3>{{ languagePack.mods.about.emulator }}</h3>
|
||||
{{ deviceInfo.isVirtual ? "yes" : "no" }}
|
||||
</v-card-text>
|
||||
</v-card>
|
||||
|
@ -69,7 +69,7 @@
|
|||
@click="openExternal('https://github.com/Frontesque/VueTube')"
|
||||
>
|
||||
<v-icon x-large class="actionIcon">mdi-github</v-icon>
|
||||
Github
|
||||
{{ languagePack.mods.about.github }}
|
||||
</v-btn>
|
||||
<v-btn
|
||||
depressed
|
||||
|
@ -81,7 +81,7 @@
|
|||
@click="openExternal('https://discord.gg/7P8KJrdd5W')"
|
||||
>
|
||||
<v-icon x-large class="actionIcon">mdi-discord</v-icon>
|
||||
Discord
|
||||
{{ languagePack.mods.about.discord }}
|
||||
</v-btn>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -96,6 +96,7 @@ export default {
|
|||
return {
|
||||
version: process.env.appVersion,
|
||||
deviceInfo: "",
|
||||
languagePack: { mods: { about: {} } },
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
|
@ -107,6 +108,8 @@ export default {
|
|||
async mounted() {
|
||||
const info = await Device.getInfo();
|
||||
this.deviceInfo = info;
|
||||
|
||||
this.languagePack = this.$lang();
|
||||
},
|
||||
methods: {
|
||||
async openExternal(url) {
|
||||
|
|
|
@ -1,59 +1,62 @@
|
|||
<template>
|
||||
<div class="mainContainer pt-1">
|
||||
<v-card
|
||||
flat
|
||||
class="pb-5 background"
|
||||
:class="$vuetify.theme.dark ? 'lighten-1' : 'darken-1'"
|
||||
:style="{borderRadius: `${roundTweak / 2}rem`}"
|
||||
>
|
||||
<v-card flat class="pb-5 background" :class="$vuetify.theme.dark ? 'lighten-1' : 'darken-1'" :style="{borderRadius: `${roundTweak / 2}rem`}">
|
||||
<v-card-title>Default Page</v-card-title>
|
||||
<v-card-text>
|
||||
<v-select
|
||||
v-model="page"
|
||||
background-color="background"
|
||||
:items="pages"
|
||||
label="Default Page"
|
||||
solo
|
||||
></v-select>
|
||||
<v-select v-model="page" background-color="background" :items="pages" label="Default Page" solo></v-select>
|
||||
</v-card-text>
|
||||
</v-card>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
export default {
|
||||
|
||||
computed: {
|
||||
roundTweak() {
|
||||
return this.$store.state.tweaks.roundTweak;
|
||||
}
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
page: "home",
|
||||
pages: ["home", "subscriptions", "library"],
|
||||
};
|
||||
},
|
||||
|
||||
watch: {
|
||||
page: function (newVal) {
|
||||
localStorage.setItem("startPage", newVal);
|
||||
computed: {
|
||||
roundTweak() {
|
||||
return this.$store.state.tweaks.roundTweak;
|
||||
}
|
||||
},
|
||||
},
|
||||
|
||||
mounted() {
|
||||
this.page = localStorage.getItem("startPage") || "home";
|
||||
},
|
||||
};
|
||||
data() {
|
||||
return {
|
||||
page: "home",
|
||||
pages: [],
|
||||
};
|
||||
},
|
||||
|
||||
watch: {
|
||||
page: function (newVal) {
|
||||
localStorage.setItem("startPage", newVal);
|
||||
},
|
||||
},
|
||||
|
||||
mounted() {
|
||||
this.page = localStorage.getItem("startPage") || "home";
|
||||
|
||||
const langPack = this.$lang('global');
|
||||
this.pages = [{
|
||||
value: "home",
|
||||
text: langPack.home
|
||||
}, {
|
||||
value: "subscriptions",
|
||||
text: langPack.subscriptions
|
||||
}, {
|
||||
value: "library",
|
||||
text: langPack.library
|
||||
}];
|
||||
}
|
||||
};
|
||||
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.v-card {
|
||||
margin: 1em;
|
||||
}
|
||||
.v-card {
|
||||
margin: 1em;
|
||||
}
|
||||
|
||||
section {
|
||||
padding: 0 1em 1em 1em;
|
||||
}
|
||||
|
||||
section {
|
||||
padding: 0 1em 1em 1em;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -13,19 +13,56 @@
|
|||
</v-list-item>
|
||||
|
||||
<!-- Dev Mode Open -->
|
||||
<v-btn text class="entry" @click="dev()" />
|
||||
<v-btn text class="entry" @click="dev()" v-if="!devmode" />
|
||||
|
||||
<v-btn
|
||||
text
|
||||
class="entry text-left text-capitalize"
|
||||
style="margin: 0 0.75em 0 0.75em"
|
||||
to="/mods/developer"
|
||||
v-if="devmode"
|
||||
>
|
||||
<v-icon size="30px" class="icon">mdi-database-edit</v-icon>
|
||||
{{ devmodebuttonname }}
|
||||
</v-btn>
|
||||
<!-- End Dev Mode -->
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
.entry {
|
||||
width: 100%;
|
||||
font-size: 1.2em;
|
||||
justify-content: left !important;
|
||||
padding: 1.5em 0.5em 1.5em 0.5em !important;
|
||||
}
|
||||
|
||||
.icon {
|
||||
margin-right: 0.5em;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
devClicks: 0,
|
||||
devmode: false,
|
||||
|
||||
devmodebuttonname: "Developer Mode",
|
||||
|
||||
settingsItems: [
|
||||
{ name: "General", icon: "mdi-cog", to: "", disabled: true },
|
||||
{ name: "Theme", icon: "mdi-brush-variant", to: "/mods/theme" },
|
||||
{
|
||||
name: "General",
|
||||
icon: "mdi-cog",
|
||||
to: "",
|
||||
disabled: true,
|
||||
},
|
||||
{
|
||||
name: "Theme",
|
||||
icon: "mdi-brush-variant",
|
||||
to: "/mods/theme",
|
||||
},
|
||||
{
|
||||
name: "Player",
|
||||
icon: "mdi-motion-play-outline",
|
||||
|
@ -37,10 +74,15 @@ export default {
|
|||
icon: "mdi-television-guide",
|
||||
to: "/mods/tweaks",
|
||||
},
|
||||
{ name: "Startup Options", icon: "mdi-restart", to: "/mods/startup" },
|
||||
{
|
||||
name: "Startup Options",
|
||||
icon: "mdi-restart",
|
||||
to: "/mods/startup",
|
||||
},
|
||||
{
|
||||
name: "Plugins",
|
||||
icon: "mdi-puzzle",
|
||||
to: "",
|
||||
to: "/mods/plugins",
|
||||
disabled: true,
|
||||
},
|
||||
|
@ -49,16 +91,41 @@ export default {
|
|||
icon: "mdi-cloud-download-outline",
|
||||
to: "/mods/updates",
|
||||
},
|
||||
{ name: "Logs", icon: "mdi-text-box-outline", to: "/mods/logs" },
|
||||
{ name: "About", icon: "mdi-information-outline", to: "/mods/about" },
|
||||
{
|
||||
name: "Logs",
|
||||
icon: "mdi-text-box-outline",
|
||||
to: "/mods/logs",
|
||||
},
|
||||
{
|
||||
name: "About",
|
||||
icon: "mdi-information-outline",
|
||||
to: "/mods/about",
|
||||
},
|
||||
],
|
||||
};
|
||||
},
|
||||
|
||||
mounted() {
|
||||
this.settingsItems[0].name = this.$lang("settings").general;
|
||||
this.settingsItems[1].name = this.$lang("settings").theme;
|
||||
this.settingsItems[2].name = this.$lang("settings").player;
|
||||
this.settingsItems[3].name = this.$lang("settings").uitweaker;
|
||||
this.settingsItems[4].name = this.$lang("settings").startupoptions;
|
||||
this.settingsItems[5].name = this.$lang("settings").plugins;
|
||||
this.settingsItems[6].name = this.$lang("settings").updates;
|
||||
this.settingsItems[7].name = this.$lang("settings").logs;
|
||||
this.settingsItems[8].name = this.$lang("settings").about;
|
||||
this.devmodebuttonname = this.$lang("settings").devmode;
|
||||
|
||||
this.devmode = localStorage.getItem("devmode");
|
||||
},
|
||||
|
||||
methods: {
|
||||
dev() {
|
||||
this.devClicks++;
|
||||
if (this.devClicks >= 6) {
|
||||
this.$router.push("/mods/developer");
|
||||
localStorage.setItem("devmode", "true");
|
||||
this.devmode = true;
|
||||
}
|
||||
},
|
||||
},
|
||||
|
|
|
@ -150,7 +150,7 @@
|
|||
</div>
|
||||
|
||||
<!-- Comments -->
|
||||
<div v-if="loaded && video.commentData" @click="toggleComment">
|
||||
<div v-if="loaded && video.commentData" @click="toggleComment" v-ripple>
|
||||
<v-card flat tile class="background comment-renderer px-3">
|
||||
<v-card-text class="comment-count keep-spaces px-0">
|
||||
<template v-for="text in video.commentData.headerText.runs">
|
||||
|
|
12
NUXT/plugins/language.js
Normal file
12
NUXT/plugins/language.js
Normal file
|
@ -0,0 +1,12 @@
|
|||
function module(text) {
|
||||
const selectedLanguage = localStorage.getItem(text) || "english";
|
||||
const languagePack = require('./languages/'+selectedLanguage);
|
||||
|
||||
if (!text) return languagePack;
|
||||
return languagePack[text];
|
||||
|
||||
}
|
||||
|
||||
export default ({ app }, inject) => {
|
||||
inject("lang", module);
|
||||
};
|
44
NUXT/plugins/languages/english.js
Normal file
44
NUXT/plugins/languages/english.js
Normal file
|
@ -0,0 +1,44 @@
|
|||
module.exports = {
|
||||
name: "English",
|
||||
|
||||
global: {
|
||||
home: "Home",
|
||||
subscriptions: "Subscriptions",
|
||||
library: "Library"
|
||||
},
|
||||
|
||||
index: {
|
||||
connecting: "Connecting",
|
||||
launching: "Launching"
|
||||
},
|
||||
|
||||
settings: {
|
||||
general: "General",
|
||||
theme: "Theme",
|
||||
player: "Player",
|
||||
uitweaker: "UI Tweaker",
|
||||
startupoptions: "Startup Options",
|
||||
plugins: "Plugins",
|
||||
updates: "Updates",
|
||||
logs: "Logs",
|
||||
about: "About",
|
||||
devmode: "Registry Editor"
|
||||
},
|
||||
|
||||
mods: {
|
||||
about: {
|
||||
appinformation: "App Information",
|
||||
appversion: "App Version",
|
||||
deviceinformation: "Device Information",
|
||||
platform: "Platform",
|
||||
os: "Operating System",
|
||||
model: "Model",
|
||||
manufacturer: "Manufacturer",
|
||||
emulator: "Emulator",
|
||||
github: "GitHub",
|
||||
discord: "Discord"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -26,6 +26,7 @@ Pronounced View Tube (<code>/ˈvjuːˌtjuːb/</code>)
|
|||
<a href="https://t.me/VueTube" alt="Telegram"><img src="https://img.shields.io/endpoint?color=neon&style=flat&url=https%3A%2F%2Ftg.sumanjay.workers.dev%2Fvuetube"></img></a>
|
||||
<a href="https://discord.gg/7P8KJrdd5W" alt="Discord"><img src="https://img.shields.io/discord/946587366242533377?label=Discord&style=flat&logo=discord&logoColor=white"></img></a>
|
||||
<a href="https://twitter.com/VueTubeApp" alt="Twitter"><img src="https://img.shields.io/twitter/follow/VueTubeApp?label=Follow&style=flat&logo=twitter"></img></a>
|
||||
</p>
|
||||
|
||||
## Features
|
||||
|
||||
|
@ -78,6 +79,7 @@ Please read our website on how to do so: https://vuetube.app/contributing
|
|||
- VueTube Logo by [@afnzmn](https://github.com/afnzmn)
|
||||
|
||||
## Disclamer
|
||||
|
||||
The VueTube project and its contents are not affiliated with, funded, authorized, endorsed by, or in any way accociated with YouTube, Google LLC or any of its affiliates and subsidaries. The official YouTube website can be found at [www.youtube.com](https://www.youtube.com).
|
||||
|
||||
Any trademark, service mark, trade name, or other intellectual property rights used in the VueTube project are owned by the respective owners.
|
||||
|
|
Loading…
Reference in a new issue