diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4b3960b..9581785 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -52,10 +52,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 981f90b..389e446 100644 --- a/NUXT/layouts/default.vue +++ b/NUXT/layouts/default.vue @@ -45,7 +45,7 @@ @click="youtubeSearch(item)" > mdi-magnify - {{ item[0] }} + {{ item[0] || item.text }} @@ -62,7 +62,9 @@ diff --git a/NUXT/pages/mods/updates.vue b/NUXT/pages/mods/updates.vue index ee67c6c..8fda1ad 100644 --- a/NUXT/pages/mods/updates.vue +++ b/NUXT/pages/mods/updates.vue @@ -1,53 +1,29 @@ diff --git a/NUXT/pages/settings.vue b/NUXT/pages/settings.vue index c58c6ab..099c6b4 100644 --- a/NUXT/pages/settings.vue +++ b/NUXT/pages/settings.vue @@ -51,7 +51,7 @@ export default { to: "/mods/tweaks", }, { name: "Startup Options", icon: "mdi-restart", to: "/mods/startup" }, - { name: "Plugins", icon: "mdi-puzzle", to: "", disabled: true }, + { name: "Plugins", icon: "mdi-puzzle", to: "", to: "/mods/plugins" }, { 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 new file mode 100644 index 0000000..8d94b50 --- /dev/null +++ b/NUXT/plugins/thirdPartyPluginLoader.js @@ -0,0 +1,26 @@ +//--- Modules/Imports ---// + +const module = { + + + //--- Get Plugins ---// + list: new Promise((resolve, reject) => { + let plugins = new Array(); + + // Temp Plugin List + plugins.push(require("~/plugins/tempPlugins/demoPlugin")) + // End Temp Plugin List + + resolve(plugins); + + }) + //--- End Get Plugins ---// + + + +}; + +//--- Start ---// +export default ({ app }, inject) => { + inject("tppl", module); +}; diff --git a/NUXT/plugins/utils.js b/NUXT/plugins/utils.js index 69b0e4f..b350ae2 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; +} module.exports = { getBetweenStrings, @@ -48,4 +54,5 @@ module.exports = { rgbToHex, getCpn, getMutationByKey, + linkParser, }; diff --git a/android/app/capacitor.build.gradle b/android/app/capacitor.build.gradle index 40f4113..0baaa26 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 a5785e8..b50480e 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -52,6 +52,8 @@ - + + + diff --git a/android/app/src/main/assets/capacitor.plugins.json b/android/app/src/main/assets/capacitor.plugins.json index 2f6bcbe..16515c0 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 093d158..ab0818a 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 c5f1516..f1483d5 100644 --- a/ios/App/Podfile +++ b/ios/App/Podfile @@ -9,15 +9,16 @@ install! 'cocoapods', :disable_input_output_paths => true def capacitor_pods pod 'Capacitor', :path => '../../node_modules/@capacitor/ios' pod 'CapacitorCordova', :path => '../../node_modules/@capacitor/ios' - pod 'CapacitorCommunityHttp', :path => '../../node_modules/@capacitor-community/http' - pod 'CapacitorApp', :path => '../../node_modules/@capacitor/app' - pod 'CapacitorBrowser', :path => '../../node_modules/@capacitor/browser' - pod 'CapacitorDevice', :path => '../../node_modules/@capacitor/device' - pod 'CapacitorHaptics', :path => '../../node_modules/@capacitor/haptics' - pod 'CapacitorShare', :path => '../../node_modules/@capacitor/share' - pod 'CapacitorSplashScreen', :path => '../../node_modules/@capacitor/splash-screen' - pod 'CapacitorStatusBar', :path => '../../node_modules/@capacitor/status-bar' - pod 'HugotomaziCapacitorNavigationBar', :path => '../../node_modules/@hugotomazi/capacitor-navigation-bar' + pod 'CapacitorCommunityHttp', :path => '..\..\node_modules\@capacitor-community\http' + 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' + pod 'CapacitorStatusBar', :path => '..\..\node_modules\@capacitor\status-bar' + pod 'HugotomaziCapacitorNavigationBar', :path => '..\..\node_modules\@hugotomazi\capacitor-navigation-bar' end target 'App' do diff --git a/package.json b/package.json index eb63cc0..54d65a9 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