From 5be8ecb32b3a69ebd083686d3b711f5e38131c2d Mon Sep 17 00:00:00 2001 From: Ajay Ramachandran Date: Sat, 10 Aug 2019 19:55:39 -0400 Subject: [PATCH] Fixed up formatting and style. Added more detailed error messages. Changed from var to let. Co-author worked on creating this url parser. Co-Authored-By: Giacomo Rossetto --- utils.js | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/utils.js b/utils.js index 2134c1af..1a2374b7 100644 --- a/utils.js +++ b/utils.js @@ -1,24 +1,24 @@ function getYouTubeVideoID(url) { - //Attempt to parse url try { - var obj = new URL(url); + let urlObject = new URL(url); } catch (e) { - console.error("[SB] Unable to parser URL"); + console.error("[SB] Unable to parse URL: " + url); return false } //Check if valid hostname - if(!["www.youtube.com","www.youtube-nocookie.com"].includes(obj.host)) return false; + if(!["www.youtube.com","www.youtube-nocookie.com"].includes(urlObject.host)) return false; - if (obj.pathname == "/watch" && obj.searchParams.has("v")) { - id = obj.searchParams.get("v"); // Get ID from searchParam + //Get ID from searchParam + if ((urlObject.pathname == "/watch" || urlObject.pathname == "/watch/") && urlObject.searchParams.has("v")) { + id = urlObject.searchParams.get("v"); return id.length == 11 ? id : false; - } else if (obj.pathname.startsWith("/embed/")) { + } else if (urlObject.pathname.startsWith("/embed/")) { try { - return obj.pathname.substr(7, 11); + return urlObject.pathname.substr(7, 11); } catch (e) { - console.error("[SB] Video ID not valid"); + console.error("[SB] Video ID not valid for " + url); return false; } } @@ -27,7 +27,7 @@ function getYouTubeVideoID(url) { //returns the start time of the video if there was one specified (ex. ?t=5s) function getYouTubeVideoStartTime(url) { let searchParams = new URL(url).searchParams; - var startTime = searchParams.get("t"); + let startTime = searchParams.get("t"); if (startTime == null) { startTime = searchParams.get("time_continue"); }