0
0
Fork 0
mirror of https://github.com/VueTubeApp/VueTube synced 2025-01-06 07:31:12 +00:00

resolving conflicts

This commit is contained in:
Nikita Krupin 2022-05-13 02:21:54 -04:00
commit ac9fa3f4da
18 changed files with 371 additions and 137 deletions

81
.github/ISSUE_TEMPLATE/bug-report.yml vendored Normal file
View 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

View file

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

View 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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -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
View 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);
};

View 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"
}
}
}

View file

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