From 1d9662f308eb8bc2ffcc0e11fbce79fef42f487d Mon Sep 17 00:00:00 2001 From: Ivan Paramonau Date: Fri, 4 Oct 2024 13:22:18 -0400 Subject: [PATCH] ld: try to find all videos attached to a main object --- lib/utils.js | 13 +++++++------ plugins/links/embedURL/ld-video.js | 20 ++++++++++++++------ 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/lib/utils.js b/lib/utils.js index f0f64777a..368ad9be6 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -1293,12 +1293,13 @@ function getWhitelistLogData(meta, oembed, uri) { var ld = meta.ld; if (ld) { - var json = ld.videoobject - || ld.mediaobject - || (ld.newsarticle && (ld.newsarticle.video || ld.newsarticle.videoobject)) - || (ld.tvepisode && (ld.tvepisode.video || ld.tvepisode.videoobject)) - || (ld.movie && (ld.movie.video || ld.movie.videoobject)) - || (ld.tvclip && (ld.tvclip.video || ld.tvclip.videoobject)); + var json = ld.videoobject || ld.mediaobject; + if (!json) { // try to find video attached to main object + var mainObjWithVideo = ld && Object.values(ld).find((obj) => obj.video || obj.videoobject); + if (mainObjWithVideo) { + json = mainObjWithVideo.video || mainObjWithVideo.videoobject; + } + } if (json) { var embedURL = json.embedurl || json.embedUrl || json.embedURL || json.contenturl || json.contentUrl || json.contentURL; diff --git a/plugins/links/embedURL/ld-video.js b/plugins/links/embedURL/ld-video.js index c55bc6f53..f44d83b2f 100644 --- a/plugins/links/embedURL/ld-video.js +++ b/plugins/links/embedURL/ld-video.js @@ -10,12 +10,20 @@ export default { getData: function(ld, whitelistRecord, url) { - var json = ld.videoobject - || ld.mediaobject - || (ld.newsarticle && (ld.newsarticle.video || ld.newsarticle.videoobject)) - || (ld.tvepisode && (ld.tvepisode.video || ld.tvepisode.videoobject)) - || (ld.movie && (ld.movie.video || ld.movie.videoobject)) - || (ld.tvclip && (ld.tvclip.video || ld.tvclip.videoobject)); + var json = ld.videoobject || ld.mediaobject; + + /* + || (ld.newsarticle && (ld.newsarticle.video || ld.newsarticle.videoobject)) + || (ld.tvepisode && (ld.tvepisode.video || ld.tvepisode.videoobject)) + || (ld.movie && (ld.movie.video || ld.movie.videoobject)) + || (ld.tvclip && (ld.tvclip.video || ld.tvclip.videoobject)); + */ + if (!json) { // try to find video attached to main object + var mainObjWithVideo = ld && Object.values(ld).find((obj) => obj.video || obj.videoobject); + if (mainObjWithVideo) { + json = mainObjWithVideo.video || mainObjWithVideo.videoobject; + } + } if (json) {