diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 1c0a688..6ab7744 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -50,10 +50,10 @@ jobs:
node-version: ${{ env.NODE_VERSION }}
- name: Install dependencies
run: npm i
- - name: Set up JDK 1.8
+ - name: Set up JDK 11
uses: actions/setup-java@v1
with:
- java-version: 1.8
+ java-version: 11
- name: Copy web assets to native platform
run: npx cap copy android
- name: Update native platform
diff --git a/NUXT/components/topNavigation.vue b/NUXT/components/topNavigation.vue
index 72329d0..565823c 100644
--- a/NUXT/components/topNavigation.vue
+++ b/NUXT/components/topNavigation.vue
@@ -39,16 +39,18 @@
class="ml-3 mr-1 my-auto fill-height"
style="border-radius: 0.25rem !important"
@click="refreshRecommendations"
- >mdi-refresh
+ mdi-refresh
+
mdi-magnify
+ mdi-magnify
+
mdi-cog-outline
+ mdi-cog-outline
+
@@ -80,6 +83,7 @@ export default {
methods: {
refreshRecommendations() {
this.$emit("scroll-to-top");
+
const continuations =
this.$store.state.recommendedVideos[
this.$store.state.recommendedVideos.length - 1
@@ -108,6 +112,7 @@ export default {
position: fixed;
width: 100%;
}
+
.topNavSearch {
margin-bottom: -10em;
margin-left: 2em;
diff --git a/NUXT/layouts/default.vue b/NUXT/layouts/default.vue
index fb7680c..b550aee 100644
--- a/NUXT/layouts/default.vue
+++ b/NUXT/layouts/default.vue
@@ -42,7 +42,7 @@
@click="youtubeSearch(item)"
>
mdi-magnify
- {{ item[0] }}
+ {{ item[0] || item.text }}
@@ -59,7 +59,9 @@
diff --git a/NUXT/pages/settings.vue b/NUXT/pages/settings.vue
index 15a3fe0..7bea3fc 100644
--- a/NUXT/pages/settings.vue
+++ b/NUXT/pages/settings.vue
@@ -50,6 +50,7 @@ export default {
to: "/mods/tweaks",
},
{ name: "Startup Options", icon: "mdi-restart", to: "/mods/startup" },
+<<<<<<< HEAD
{
name: "Plugins",
icon: "mdi-puzzle",
@@ -57,6 +58,9 @@ export default {
to: "/mods/plugins",
disabled: true,
},
+=======
+ { name: "Plugins", icon: "mdi-puzzle", to: "", to: "/mods/plugins" },
+>>>>>>> 94e0108 (Merge branch 'main' of https://github.com/Frontesque/VueTube)
{
name: "Updates",
icon: "mdi-cloud-download-outline",
diff --git a/NUXT/plugins/tempPlugins/demoPlugin.js b/NUXT/plugins/tempPlugins/demoPlugin.js
new file mode 100644
index 0000000..94f5d66
--- /dev/null
+++ b/NUXT/plugins/tempPlugins/demoPlugin.js
@@ -0,0 +1,30 @@
+module.exports = {
+ manifest: {
+ name: "Test plugin", // Required
+ vuetube: "*",
+ version: "1.0", // Required
+ author: "Frontesque", // Required
+ description: "A plugin to test how vuetube handles plugins // Add 'Hello, World!' to the home page.", // Required
+ homepage: "https://github.com/Frontesque/VueTube-Example-Plugin",
+ license: "GPL-3.0" // Required
+ },
+
+ /*************************
+ * Execute code on ALL VueTube pages
+ ************************/
+ global: function() {
+
+ },
+
+ /*************************
+ * Execute code on SPECIFIC VueTube pages
+ *
+ * You can view what page you intend to inject code into by looking at `~/NUXT/pages/` in the main VueTube repo
+ ************************/
+ pages: {
+ home: function() { // Execute code on JUST the home page
+
+ }
+ }
+
+}
diff --git a/NUXT/plugins/thirdPartyPluginLoader.js b/NUXT/plugins/thirdPartyPluginLoader.js
index 06174f7..648efee 100644
--- a/NUXT/plugins/thirdPartyPluginLoader.js
+++ b/NUXT/plugins/thirdPartyPluginLoader.js
@@ -14,22 +14,24 @@ const ensureStructure = new Promise(async (resolve, reject) => {
//--- Ensure Plugins Folder ---//
try {
- await Filesystem.mkdir({ directory: APP_DIRECTORY, recursive: true,
+ await Filesystem.mkdir({
+ directory: APP_DIRECTORY, recursive: true,
path: fs.plugins,
});
} catch (e) { /* Exists */ }
//--- Ensure Temp Folder ---//
try {
- await Filesystem.mkdir({ directory: APP_DIRECTORY, recursive: true,
+ await Filesystem.mkdir({
+ directory: APP_DIRECTORY, recursive: true,
path: fs.temp,
});
} catch (e) { /* Exists */ }
- perms
+ perms
? resolve(true)
: reject(false)
-
+
})
@@ -41,7 +43,7 @@ const module = {
let plugins = new Array();
if (await !ensureStructure) reject("Invalid Structure");
-
+
// Temp Plugin List
plugins = Filesystem.readdir({
directory: APP_DIRECTORY,
diff --git a/NUXT/plugins/utils.js b/NUXT/plugins/utils.js
index 1613a4d..03651d6 100644
--- a/NUXT/plugins/utils.js
+++ b/NUXT/plugins/utils.js
@@ -17,10 +17,10 @@ function hexToRgb(hex) {
var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
return result
? {
- r: parseInt(result[1], 16),
- g: parseInt(result[2], 16),
- b: parseInt(result[3], 16),
- }
+ r: parseInt(result[1], 16),
+ g: parseInt(result[2], 16),
+ b: parseInt(result[3], 16),
+ }
: null;
}
@@ -41,6 +41,12 @@ function getMutationByKey(key, mutations) {
if (!key || !mutations) return undefined;
return mutations.find((mutation) => mutation.entityKey === key).payload;
}
+function linkParser(url) {
+
+ var regExp = /^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#&?]*).*/;
+ var match = url.match(regExp);
+ return (match && match[7].length == 11) ? match[7] : false;
+}
function linkParser(url) {
var regExp =
diff --git a/android/app/capacitor.build.gradle b/android/app/capacitor.build.gradle
index 57d16ef..7d5d749 100644
--- a/android/app/capacitor.build.gradle
+++ b/android/app/capacitor.build.gradle
@@ -13,6 +13,7 @@ dependencies {
implementation project(':capacitor-app')
implementation project(':capacitor-browser')
implementation project(':capacitor-device')
+ implementation project(':capacitor-filesystem')
implementation project(':capacitor-haptics')
implementation project(':capacitor-share')
implementation project(':capacitor-splash-screen')
diff --git a/android/app/release/output-metadata.json b/android/app/release/output-metadata.json
index 5ecac21..d20d3f0 100644
--- a/android/app/release/output-metadata.json
+++ b/android/app/release/output-metadata.json
@@ -1,5 +1,5 @@
{
- "version": 2,
+ "version": 3,
"artifactType": {
"type": "APK",
"kind": "Directory"
@@ -10,9 +10,11 @@
{
"type": "SINGLE",
"filters": [],
+ "attributes": [],
"versionCode": 1,
"versionName": "1.0",
"outputFile": "app-release.apk"
}
- ]
+ ],
+ "elementType": "File"
}
\ No newline at end of file
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index c9f98f1..3bb7bca 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -53,6 +53,8 @@
-
+
+
+
diff --git a/android/app/src/main/assets/capacitor.plugins.json b/android/app/src/main/assets/capacitor.plugins.json
index f4166c0..b9031b2 100644
--- a/android/app/src/main/assets/capacitor.plugins.json
+++ b/android/app/src/main/assets/capacitor.plugins.json
@@ -15,6 +15,10 @@
"pkg": "@capacitor/device",
"classpath": "com.capacitorjs.plugins.device.DevicePlugin"
},
+ {
+ "pkg": "@capacitor/filesystem",
+ "classpath": "com.capacitorjs.plugins.filesystem.FilesystemPlugin"
+ },
{
"pkg": "@capacitor/haptics",
"classpath": "com.capacitorjs.plugins.haptics.HapticsPlugin"
diff --git a/android/build.gradle b/android/build.gradle
index ad085c3..7d6ed44 100644
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -7,8 +7,8 @@ buildscript {
jcenter()
}
dependencies {
- classpath 'com.android.tools.build:gradle:4.2.1'
- classpath 'com.google.gms:google-services:4.3.5'
+ classpath 'com.android.tools.build:gradle:7.1.2'
+ classpath 'com.google.gms:google-services:4.3.10'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
diff --git a/android/capacitor.settings.gradle b/android/capacitor.settings.gradle
index 83b507b..ef61b14 100644
--- a/android/capacitor.settings.gradle
+++ b/android/capacitor.settings.gradle
@@ -14,6 +14,9 @@ project(':capacitor-browser').projectDir = new File('../node_modules/@capacitor/
include ':capacitor-device'
project(':capacitor-device').projectDir = new File('../node_modules/@capacitor/device/android')
+include ':capacitor-filesystem'
+project(':capacitor-filesystem').projectDir = new File('../node_modules/@capacitor/filesystem/android')
+
include ':capacitor-haptics'
project(':capacitor-haptics').projectDir = new File('../node_modules/@capacitor/haptics/android')
diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties
index 3c4101c..a0f7639 100644
--- a/android/gradle/wrapper/gradle-wrapper.properties
+++ b/android/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.0-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/ios/App/Podfile b/ios/App/Podfile
index 60892de..d3fc14a 100644
--- a/ios/App/Podfile
+++ b/ios/App/Podfile
@@ -13,6 +13,7 @@ def capacitor_pods
pod 'CapacitorApp', :path => '..\..\node_modules\@capacitor\app'
pod 'CapacitorBrowser', :path => '..\..\node_modules\@capacitor\browser'
pod 'CapacitorDevice', :path => '..\..\node_modules\@capacitor\device'
+ pod 'CapacitorFilesystem', :path => '..\..\node_modules\@capacitor\filesystem'
pod 'CapacitorHaptics', :path => '..\..\node_modules\@capacitor\haptics'
pod 'CapacitorShare', :path => '..\..\node_modules\@capacitor\share'
pod 'CapacitorSplashScreen', :path => '..\..\node_modules\@capacitor\splash-screen'
diff --git a/package.json b/package.json
index 450bd04..8150544 100644
--- a/package.json
+++ b/package.json
@@ -7,6 +7,7 @@
"@capacitor/cli": "^3.4.0",
"@capacitor/core": "^3.4.0",
"@capacitor/device": "^1.1.2",
+ "@capacitor/filesystem": "^1.1.0",
"@capacitor/haptics": "^1.1.4",
"@capacitor/share": "^1.1.2",
"@capacitor/splash-screen": "^1.2.2",
diff --git a/resources/splash.png b/resources/splash.png
index d815d82..0c90cca 100644
Binary files a/resources/splash.png and b/resources/splash.png differ