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