From e85f2f9b3217c798df63ecb57c43787c9be2d24d Mon Sep 17 00:00:00 2001 From: Alex <56329333+404-Program-not-found@users.noreply.github.com> Date: Mon, 11 Apr 2022 13:00:42 +1200 Subject: [PATCH] Merge branch 'main' of https://github.com/Frontesque/VueTube --- .github/workflows/ci.yml | 4 +- NUXT/components/topNavigation.vue | 11 ++-- NUXT/layouts/default.vue | 24 +++++++-- NUXT/nuxt.config.js | 1 + NUXT/pages/mods/updates.vue | 47 +++++++++++------- NUXT/pages/settings.vue | 4 ++ NUXT/plugins/tempPlugins/demoPlugin.js | 30 +++++++++++ NUXT/plugins/thirdPartyPluginLoader.js | 12 +++-- NUXT/plugins/utils.js | 14 ++++-- android/app/capacitor.build.gradle | 1 + android/app/release/output-metadata.json | 6 ++- android/app/src/main/AndroidManifest.xml | 4 +- .../src/main/assets/capacitor.plugins.json | 4 ++ android/build.gradle | 4 +- android/capacitor.settings.gradle | 3 ++ .../gradle/wrapper/gradle-wrapper.properties | 2 +- ios/App/Podfile | 1 + package.json | 1 + resources/splash.png | Bin 134011 -> 3294 bytes 19 files changed, 131 insertions(+), 42 deletions(-) create mode 100644 NUXT/plugins/tempPlugins/demoPlugin.js 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 d815d82ef8906f3bb12dac23bb6b77df6677db69..0c90ccab6556d63fc856869108032fb430f24cbc 100644 GIT binary patch literal 3294 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 OHaT&6{PWS-OaB1Xl6yD+