Skip to content

Commit

Permalink
Merge pull request #4003 from alphagov/sengi/parse-urls-properly
Browse files Browse the repository at this point in the history
Make YoutubeLinkEnhancement URL parsing more robust.
  • Loading branch information
andysellick authored Sep 4, 2024
2 parents ea74c5d + fbcdeb5 commit 41c7e28
Showing 1 changed file with 10 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
link: $link
}

if (href.indexOf('/live_stream') >= 0) {
if (href.includes('/live_stream')) {
var channelId = YoutubeLinkEnhancement.parseLivestream(href)

if (!this.hasDisabledEmbed($link) && channelId) {
Expand Down Expand Up @@ -175,23 +175,16 @@
// This is a public class method so it can be used outside of this embed to
// check that user input for videos will be supported in govspeak
YoutubeLinkEnhancement.parseVideoId = function (url) {
var parts
var u

if (url.indexOf('youtube.com') > -1) {
var params = {}
parts = url.split('?')
if (parts.length === 1) {
return
}
parts = parts[1].split('&')
for (var i = 0; i < parts.length; i++) {
var part = parts[i].split('=')
params[part[0]] = part[1]
}
return params.v
} else if (url.indexOf('youtu.be') > -1) {
parts = url.split('/')
return parts.pop()
try {
u = new URL(url)
} catch (e) { return undefined }

if (u.host === 'www.youtube.com' || u.host === 'youtube.com') {
return u.searchParams.get('v') || undefined
} else if (u.host === 'youtu.be') {
return u.pathname.slice(1) // Trim the leading /
}
}

Expand Down

0 comments on commit 41c7e28

Please sign in to comment.