From 81a9db835c44b6c1d8b7e4182f1f5597a50937b4 Mon Sep 17 00:00:00 2001 From: Alexey Date: Wed, 22 Apr 2026 12:42:58 +0300 Subject: [PATCH 1/5] replace dailymail.co.uk with dailymail.com --- plugins/domains/dailymail.co.uk/mol.im.js | 26 -------------- .../dailymail.embeddedvideo.js | 6 ++-- .../dailymail.galleryvideo.js | 5 +-- .../dailymail.video.js | 3 +- plugins/domains/dailymail.com/mol.im.js | 34 +++++++++++++++++++ 5 files changed, 42 insertions(+), 32 deletions(-) delete mode 100644 plugins/domains/dailymail.co.uk/mol.im.js rename plugins/domains/{dailymail.co.uk => dailymail.com}/dailymail.embeddedvideo.js (50%) rename plugins/domains/{dailymail.co.uk => dailymail.com}/dailymail.galleryvideo.js (64%) rename plugins/domains/{dailymail.co.uk => dailymail.com}/dailymail.video.js (90%) create mode 100644 plugins/domains/dailymail.com/mol.im.js diff --git a/plugins/domains/dailymail.co.uk/mol.im.js b/plugins/domains/dailymail.co.uk/mol.im.js deleted file mode 100644 index 1a51c2678..000000000 --- a/plugins/domains/dailymail.co.uk/mol.im.js +++ /dev/null @@ -1,26 +0,0 @@ -export default { - - // #v-1467332342001 isn't passed by Dailymail URL shortener - re: /^https:\/\/mol\.im\/a\/\d+(#v\-\d+)/i, - - getLink: function(urlMatch, headers, cb) { - if (headers.location) { - return cb(headers.location - && !/#/.test(headers.location) - ? { - redirect: headers.location + urlMatch[1] - } : null - ); - } else { - return cb(); - } - }, - - getData: function(options) { - options.exposeStatusCode = true; - }, - - tests: [{skipMethods: ['getData', 'getLink']}, - "https://mol.im/a/9343193#v-4206468436429980814" - ] -}; \ No newline at end of file diff --git a/plugins/domains/dailymail.co.uk/dailymail.embeddedvideo.js b/plugins/domains/dailymail.com/dailymail.embeddedvideo.js similarity index 50% rename from plugins/domains/dailymail.co.uk/dailymail.embeddedvideo.js rename to plugins/domains/dailymail.com/dailymail.embeddedvideo.js index 9c3cb49e3..a991a9d69 100644 --- a/plugins/domains/dailymail.co.uk/dailymail.embeddedvideo.js +++ b/plugins/domains/dailymail.com/dailymail.embeddedvideo.js @@ -2,7 +2,7 @@ export default { // direct "share" links to players from DailyMail articles. They end with #v-1467332342001 re: [ - /^https?:\/\/www\.dailymail\.co\.uk\/[^#]+#(v\-\d+)$/i + /^https?:\/\/www\.dailymail\.com\/[^#]+#(v\-\d+)$/i ], provides: 'dailymailVideoID', @@ -19,7 +19,7 @@ export default { tests: [{ noFeeds: true }, - "https://www.dailymail.co.uk/lifestyle/article-11847441/Watch-new-Duke-Edinburgh-introduces-Sophie-duchess-time.html#v-6755232965847660921", - "https://www.dailymail.co.uk/news/article-3556177/Was-MH17-shot-Ukrainian-fighter-jet-BBC-documentary-claims-Boeing-777-targeted-plane.html#v-8296301435444282732" + "https://www.dailymail.com/lifestyle/article-11847441/Watch-new-Duke-Edinburgh-introduces-Sophie-duchess-time.html#v-6755232965847660921", + "https://www.dailymail.com/news/article-3556177/Was-MH17-shot-Ukrainian-fighter-jet-BBC-documentary-claims-Boeing-777-targeted-plane.html#v-8296301435444282732", ] }; \ No newline at end of file diff --git a/plugins/domains/dailymail.co.uk/dailymail.galleryvideo.js b/plugins/domains/dailymail.com/dailymail.galleryvideo.js similarity index 64% rename from plugins/domains/dailymail.co.uk/dailymail.galleryvideo.js rename to plugins/domains/dailymail.com/dailymail.galleryvideo.js index 8c5fdfb66..b4a9181f7 100644 --- a/plugins/domains/dailymail.co.uk/dailymail.galleryvideo.js +++ b/plugins/domains/dailymail.com/dailymail.galleryvideo.js @@ -1,7 +1,7 @@ export default { re: [ - /^https?:\/\/www\.dailymail\.co\.uk\/video\/\w+\/video\-(\d+)\//i + /^https?:\/\/www\.dailymail\.com\/video\/\w+\/video\-(\d+)\//i ], provides: 'dailymailVideoID', @@ -20,6 +20,7 @@ export default { tests: [{ noFeeds: true }, - "https://www.dailymail.co.uk/video/news/video-1284607/Heart-rending-scenes-child-marriage-ceremonies-India.html" + "https://www.dailymail.co.uk/video/news/video-1284607/Heart-rending-scenes-child-marriage-ceremonies-India.html", + "https://www.dailymail.com/video/royals/video-3639009/Video-Celebrations-late-Queens-100th-birthday.html" ] }; \ No newline at end of file diff --git a/plugins/domains/dailymail.co.uk/dailymail.video.js b/plugins/domains/dailymail.com/dailymail.video.js similarity index 90% rename from plugins/domains/dailymail.co.uk/dailymail.video.js rename to plugins/domains/dailymail.com/dailymail.video.js index 0bcb22eaf..bfb92ad1a 100644 --- a/plugins/domains/dailymail.co.uk/dailymail.video.js +++ b/plugins/domains/dailymail.com/dailymail.video.js @@ -45,6 +45,7 @@ export default { tests: [{ noFeeds: true }, - "https://www.dailymail.co.uk/video/news/video-2895505/SVB-members-sets-bank-culture-apart-others.html" + "https://www.dailymail.co.uk/video/news/video-2895505/SVB-members-sets-bank-culture-apart-others.html", + "https://www.dailymail.com/video/news/video-3639123/Trump-says-expects-bomb-Iran-ceasefire-deal-ends.html" ] }; \ No newline at end of file diff --git a/plugins/domains/dailymail.com/mol.im.js b/plugins/domains/dailymail.com/mol.im.js new file mode 100644 index 000000000..66565a509 --- /dev/null +++ b/plugins/domains/dailymail.com/mol.im.js @@ -0,0 +1,34 @@ +export default { + + // #v-1467332342001 isn't passed by Dailymail URL shortener + // dailymail.co.uk 301 redirects to dailymail.com, stripping the hash fragment + re: [ + /^https:\/\/mol\.im\/a\/\d+(#v\-\d+)/i, + /^https?:\/\/www\.dailymail\.co\.uk\/[^#]+(#v\-\d+)/i + ], + + getLink: function(urlMatch, headers, cb) { + if (headers.location) { + return cb(headers.location + && !/#/.test(headers.location) + ? { + redirect: headers.location + urlMatch[1] + } : null + ); + } else { + return cb(); + } + }, + + getData: function(options) { + options.exposeStatusCode = true; + }, + + tests: [{skipMethods: ['getData', 'getLink']}, + "https://mol.im/a/9343193#v-4206468436429980814", + "https://www.dailymail.co.uk/lifestyle/article-11847441/Watch-new-Duke-Edinburgh-introduces-Sophie-duchess-time.html#v-6755232965847660921", + + "https://mol.im/a/15740741#v-6420720503543215467", // getLinks error is expected - no social-share embedUrl, falls back to generic parsers + "https://www.dailymail.co.uk/news/article-3556177/Was-MH17-shot-Ukrainian-fighter-jet-BBC-documentary-claims-Boeing-777-targeted-plane.html#v-8296301435444282732" // getLinks error is expected - no social-share embedUrl, falls back to generic parsers + ] +}; \ No newline at end of file From 98b9298b1fa59b1fe1628a83d9776e4bbffe9be0 Mon Sep 17 00:00:00 2001 From: Alexey Date: Wed, 22 Apr 2026 12:53:05 +0300 Subject: [PATCH 2/5] rename hash-redirect plugin --- plugins/domains/dailymail.com/dailymail.embeddedvideo.js | 2 +- .../dailymail.com/{mol.im.js => dailymail.hash-redirects.js} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename plugins/domains/dailymail.com/{mol.im.js => dailymail.hash-redirects.js} (100%) diff --git a/plugins/domains/dailymail.com/dailymail.embeddedvideo.js b/plugins/domains/dailymail.com/dailymail.embeddedvideo.js index a991a9d69..626e5a532 100644 --- a/plugins/domains/dailymail.com/dailymail.embeddedvideo.js +++ b/plugins/domains/dailymail.com/dailymail.embeddedvideo.js @@ -19,7 +19,7 @@ export default { tests: [{ noFeeds: true }, - "https://www.dailymail.com/lifestyle/article-11847441/Watch-new-Duke-Edinburgh-introduces-Sophie-duchess-time.html#v-6755232965847660921", + "https://www.dailymail.co.uk/lifestyle/article-11847441/Watch-new-Duke-Edinburgh-introduces-Sophie-duchess-time.html#v-6755232965847660921", "https://www.dailymail.com/news/article-3556177/Was-MH17-shot-Ukrainian-fighter-jet-BBC-documentary-claims-Boeing-777-targeted-plane.html#v-8296301435444282732", ] }; \ No newline at end of file diff --git a/plugins/domains/dailymail.com/mol.im.js b/plugins/domains/dailymail.com/dailymail.hash-redirects.js similarity index 100% rename from plugins/domains/dailymail.com/mol.im.js rename to plugins/domains/dailymail.com/dailymail.hash-redirects.js From 94c295252e5a576e4e9fa81538129463c79872cc Mon Sep 17 00:00:00 2001 From: Alexey Date: Wed, 22 Apr 2026 13:29:28 +0300 Subject: [PATCH 3/5] add followHTTPRedirect --- plugins/domains/dailymail.com/dailymail.embeddedvideo.js | 5 ++++- plugins/domains/dailymail.com/dailymail.hash-redirects.js | 1 + plugins/links/hosted/23video-hosted.js | 3 ++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/plugins/domains/dailymail.com/dailymail.embeddedvideo.js b/plugins/domains/dailymail.com/dailymail.embeddedvideo.js index 626e5a532..a3b061794 100644 --- a/plugins/domains/dailymail.com/dailymail.embeddedvideo.js +++ b/plugins/domains/dailymail.com/dailymail.embeddedvideo.js @@ -19,7 +19,10 @@ export default { tests: [{ noFeeds: true }, - "https://www.dailymail.co.uk/lifestyle/article-11847441/Watch-new-Duke-Edinburgh-introduces-Sophie-duchess-time.html#v-6755232965847660921", + "https://www.dailymail.com/lifestyle/article-11847441/Watch-new-Duke-Edinburgh-introduces-Sophie-duchess-time.html#v-6755232965847660921", "https://www.dailymail.com/news/article-3556177/Was-MH17-shot-Ukrainian-fighter-jet-BBC-documentary-claims-Boeing-777-targeted-plane.html#v-8296301435444282732", + + "https://www.dailymail.co.uk/lifestyle/article-11847441/Watch-new-Duke-Edinburgh-introduces-Sophie-duchess-time.html#v-6755232965847660921", + // co.uk redirects to com via dailymail.co.uk-hash-redirect plugin ] }; \ No newline at end of file diff --git a/plugins/domains/dailymail.com/dailymail.hash-redirects.js b/plugins/domains/dailymail.com/dailymail.hash-redirects.js index 66565a509..ba0083747 100644 --- a/plugins/domains/dailymail.com/dailymail.hash-redirects.js +++ b/plugins/domains/dailymail.com/dailymail.hash-redirects.js @@ -22,6 +22,7 @@ export default { getData: function(options) { options.exposeStatusCode = true; + options.followHTTPRedirect = false; }, tests: [{skipMethods: ['getData', 'getLink']}, diff --git a/plugins/links/hosted/23video-hosted.js b/plugins/links/hosted/23video-hosted.js index bfbf353cc..7f880cb7e 100644 --- a/plugins/links/hosted/23video-hosted.js +++ b/plugins/links/hosted/23video-hosted.js @@ -20,6 +20,7 @@ export default { "https://video.itu.dk/live/13796543", "https://video.ku.dk/video/11827941/visual-social-media-lab-farida-vis-anne", "https://video.nextconf.eu/video/1880845/data-without-limits", - "https://www.fftv.no/skipatruljen-s3e3-voss-resort", + "https://video.itu.dk/video/91172759/kandidat-i-softwaredesign-los", + // "https://www.fftv.no/skipatruljen-s3e3-voss-resort", No oEmbed discovery tags ] }; \ No newline at end of file From 8b9024daff293c0e060a6d46bd7a2a970b8645bf Mon Sep 17 00:00:00 2001 From: Alexey Date: Wed, 22 Apr 2026 16:56:41 +0300 Subject: [PATCH 4/5] no followHTTPRedirect only for dailymail.co.uk --- plugins/domains/dailymail.com/dailymail.hash-redirects.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/plugins/domains/dailymail.com/dailymail.hash-redirects.js b/plugins/domains/dailymail.com/dailymail.hash-redirects.js index ba0083747..6f8e40927 100644 --- a/plugins/domains/dailymail.com/dailymail.hash-redirects.js +++ b/plugins/domains/dailymail.com/dailymail.hash-redirects.js @@ -20,9 +20,11 @@ export default { } }, - getData: function(options) { + getData: function(urlMatch, options) { options.exposeStatusCode = true; - options.followHTTPRedirect = false; + if (/dailymail\.co\.uk/.test(urlMatch[0])) { + options.followHTTPRedirect = false; + } }, tests: [{skipMethods: ['getData', 'getLink']}, From 0df90f8621f29e2ab32df45e3152ccdc5ef81a6f Mon Sep 17 00:00:00 2001 From: Alexey Date: Wed, 22 Apr 2026 17:17:03 +0300 Subject: [PATCH 5/5] followHTTPRedirect true by default --- plugins/domains/dailymail.com/dailymail.hash-redirects.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/plugins/domains/dailymail.com/dailymail.hash-redirects.js b/plugins/domains/dailymail.com/dailymail.hash-redirects.js index 6f8e40927..66565a509 100644 --- a/plugins/domains/dailymail.com/dailymail.hash-redirects.js +++ b/plugins/domains/dailymail.com/dailymail.hash-redirects.js @@ -20,11 +20,8 @@ export default { } }, - getData: function(urlMatch, options) { + getData: function(options) { options.exposeStatusCode = true; - if (/dailymail\.co\.uk/.test(urlMatch[0])) { - options.followHTTPRedirect = false; - } }, tests: [{skipMethods: ['getData', 'getLink']},