From 43ff6ac3f4cef97440442703922b6b1017e3c26a Mon Sep 17 00:00:00 2001 From: Alex Date: Sat, 26 Mar 2022 16:54:34 +1300 Subject: [PATCH 1/7] fix: error that broke switching between recommendations --- NUXT/pages/watch.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NUXT/pages/watch.vue b/NUXT/pages/watch.vue index 0e463e3..291a9b4 100644 --- a/NUXT/pages/watch.vue +++ b/NUXT/pages/watch.vue @@ -141,7 +141,7 @@ export default { handler(newRt, oldRt) { if (newRt.query.v != oldRt.query.v) { // Exit fullscreen if currently in fullscreen - this.$refs.player.webkitExitFullscreen(); + if (this.$refs.player) this.$refs.player.webkitExitFullscreen(); // Reset player and run getVideo function again this.vidSrc = ""; this.getVideo(); From 98102c2614a6d5f309704b80af66d81aae1f9c51 Mon Sep 17 00:00:00 2001 From: Alex Date: Sat, 26 Mar 2022 21:24:40 +1300 Subject: [PATCH 2/7] fix: problems relating to the search feature --- NUXT/layouts/default.vue | 1 + NUXT/plugins/youtube.js | 20 +++++++++++++------- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/NUXT/layouts/default.vue b/NUXT/layouts/default.vue index 652206f..14293fc 100644 --- a/NUXT/layouts/default.vue +++ b/NUXT/layouts/default.vue @@ -128,6 +128,7 @@ export default { methods: { textChanged(text) { + if (text.length <= 0) this.response = []; // No text found, no point in calling API this.$youtube.autoComplete(text, (res) => { const data = res.replace(/^.*?\(/, "").replace(/\)$/, ""); //Format Response this.response = JSON.parse(data)[1]; diff --git a/NUXT/plugins/youtube.js b/NUXT/plugins/youtube.js index a32618a..cdc534f 100644 --- a/NUXT/plugins/youtube.js +++ b/NUXT/plugins/youtube.js @@ -3,6 +3,8 @@ import { Http } from "@capacitor-community/http"; import Innertube from "./innertube"; import constants from "./constants"; import useRender from "./renderers"; +import iconv from "iconv-lite"; +import { Buffer } from "buffer"; //--- Logger Function ---// function logger(func, data, isError = false) { @@ -16,17 +18,21 @@ function logger(func, data, isError = false) { const searchModule = { logs: new Array(), - //--- Get YouTube's Search Auto Complete ---// autoComplete(text, callback) { - Http.request({ - method: "GET", - url: `${constants.URLS.YT_SUGGESTIONS}/search`, - params: { client: "youtube", q: text }, + Http.get({ + url: `${constants.URLS.YT_SUGGESTIONS}/search?q=${encodeURIComponent( + text + )}&client=youtube&ds=yt`, + responseType: "arraybuffer", }) .then((res) => { - logger(constants.LOGGER_NAMES.autoComplete, res); - callback(res.data); + // make a new buffer object from res.data + const buffer = Buffer.from(res.data, "base64"); + // convert res.data from iso-8859-1 to utf-8 + const data = buffer.toString("latin1"); + logger(constants.LOGGER_NAMES.autoComplete, data); + callback(data); }) .catch((err) => { logger(constants.LOGGER_NAMES.autoComplete, err, true); From 0baa3611ccbfdd23779533c57d46a1650e619807 Mon Sep 17 00:00:00 2001 From: Alex Date: Sat, 26 Mar 2022 23:39:40 +1300 Subject: [PATCH 3/7] chore: remove unneeded iconv import --- NUXT/plugins/youtube.js | 1 - 1 file changed, 1 deletion(-) diff --git a/NUXT/plugins/youtube.js b/NUXT/plugins/youtube.js index cdc534f..d9d1446 100644 --- a/NUXT/plugins/youtube.js +++ b/NUXT/plugins/youtube.js @@ -3,7 +3,6 @@ import { Http } from "@capacitor-community/http"; import Innertube from "./innertube"; import constants from "./constants"; import useRender from "./renderers"; -import iconv from "iconv-lite"; import { Buffer } from "buffer"; //--- Logger Function ---// From 123a28b9a3171070cf52576e8f2175a3adf878ec Mon Sep 17 00:00:00 2001 From: Alex Date: Sun, 27 Mar 2022 17:31:32 +1300 Subject: [PATCH 4/7] feat: added description rendering --- .../slimVideoDescriptionRenderer.vue | 33 +++++++++++++++++++ .../gridRenderers/gridVideoRenderer.vue | 4 --- NUXT/pages/watch.vue | 7 ++-- NUXT/plugins/constants.js | 1 - NUXT/plugins/innertube.js | 10 +++--- 5 files changed, 43 insertions(+), 12 deletions(-) create mode 100644 NUXT/components/UtilRenderers/slimVideoDescriptionRenderer.vue diff --git a/NUXT/components/UtilRenderers/slimVideoDescriptionRenderer.vue b/NUXT/components/UtilRenderers/slimVideoDescriptionRenderer.vue new file mode 100644 index 0000000..90f6eae --- /dev/null +++ b/NUXT/components/UtilRenderers/slimVideoDescriptionRenderer.vue @@ -0,0 +1,33 @@ + + + + + diff --git a/NUXT/components/gridRenderers/gridVideoRenderer.vue b/NUXT/components/gridRenderers/gridVideoRenderer.vue index a7aee1d..cb4aedc 100644 --- a/NUXT/components/gridRenderers/gridVideoRenderer.vue +++ b/NUXT/components/gridRenderers/gridVideoRenderer.vue @@ -137,9 +137,5 @@ export default { return bottomText.join(" ยท "); }, }, - - mounted() { - console.log("gridVideoRenderer received: ", this.video); - }, }; diff --git a/NUXT/pages/watch.vue b/NUXT/pages/watch.vue index 3a1bf04..f87658b 100644 --- a/NUXT/pages/watch.vue +++ b/NUXT/pages/watch.vue @@ -60,7 +60,7 @@

Channel Stuff

- {{ description }} +