From d09b8e3a065302de8dc05df608f05cacdef2ca54 Mon Sep 17 00:00:00 2001 From: Ivan Paramonau Date: Tue, 22 Apr 2014 18:15:40 -0400 Subject: [PATCH 01/43] Fix Dribble (switched to SSL), and following its example - future-proof all domains with https regexps --- plugins/domains/56.com.js | 4 ++-- plugins/domains/9gag.com.js | 2 +- plugins/domains/about.me.js | 2 +- plugins/domains/angel.co/angel.co.js | 2 +- plugins/domains/bandcamp.com.js | 4 ++-- plugins/domains/behance.net.js | 4 ++-- plugins/domains/brightcove.com.js | 2 +- plugins/domains/cnn.com/cnn.video.js | 2 +- plugins/domains/codepen.io.js | 2 +- .../collegehumor.com/collegehumor.picture.js | 2 +- .../collegehumor.com/collegehumor.video.js | 2 +- plugins/domains/dribbble.com.js | 2 +- plugins/domains/ebaumsworld.com.js | 2 +- plugins/domains/ec.europa.eu.js | 2 +- .../funnyordie.com/funnyordie.video.js | 2 +- plugins/domains/gawker.js | 20 +++++++++---------- plugins/domains/gogoyoko.com.js | 2 +- .../huffingtonpost.com/huffingtonpost.live.js | 6 +++--- plugins/domains/instagram.com.js | 4 ++-- plugins/domains/jsfiddle.net.js | 2 +- plugins/domains/live.wsj.com.js | 2 +- plugins/domains/lockerz.com.js | 2 +- plugins/domains/lolwall.co.js | 2 +- plugins/domains/magnatune.com.js | 2 +- plugins/domains/mail.ru.js | 2 +- plugins/domains/mixbit.com.js | 2 +- plugins/domains/myvideo.de.js | 2 +- plugins/domains/pbs.org.js | 2 +- plugins/domains/prezi.com.js | 2 +- plugins/domains/reuters.com.js | 2 +- plugins/domains/screencast.com.js | 2 +- plugins/domains/ted.com.js | 2 +- .../theglobeandmail.com/globe.video.js | 2 +- .../domains/theguardian.com/guardian.video.js | 2 +- .../domains/theonion.com/theonion.video.js | 2 +- plugins/domains/tindeck.com.js | 2 +- .../travelchannel.com/travelchannel.video.js | 2 +- plugins/domains/tumblr.com/tumblr.api.js | 4 ++-- plugins/domains/tumblr.com/tumblr.text.js | 4 ++-- plugins/domains/tumblr.com/tumblr.video.js | 4 ++-- plugins/domains/twitter.status.js | 2 +- plugins/domains/v.qq.com.js | 6 +++--- plugins/domains/vevo.com.js | 4 ++-- plugins/domains/video.mit.edu.js | 2 +- plugins/domains/videos.nymag.com.js | 4 ++-- plugins/domains/vube.com.js | 2 +- plugins/domains/yfrog.com.js | 2 +- plugins/links/og-youtube.js | 2 +- 48 files changed, 70 insertions(+), 70 deletions(-) diff --git a/plugins/domains/56.com.js b/plugins/domains/56.com.js index 6e9ab332e..b7bba45e6 100644 --- a/plugins/domains/56.com.js +++ b/plugins/domains/56.com.js @@ -1,8 +1,8 @@ module.exports = { re: [ - /^http:\/\/www\.56\.com\/\w{3}\/v_([a-zA-Z0-9]+).html/i, - /^http:\/\/www\.56\.com\/\w{3}\/play_[a-zA-Z0-9\-]+_vid\-([a-zA-Z0-9]+).html/i + /^https?:\/\/www\.56\.com\/\w{3}\/v_([a-zA-Z0-9]+).html/i, + /^https?:\/\/www\.56\.com\/\w{3}\/play_[a-zA-Z0-9\-]+_vid\-([a-zA-Z0-9]+).html/i ], mixins: [ diff --git a/plugins/domains/9gag.com.js b/plugins/domains/9gag.com.js index dee11cae1..bdcdb600f 100644 --- a/plugins/domains/9gag.com.js +++ b/plugins/domains/9gag.com.js @@ -1,7 +1,7 @@ module.exports = { re: [ - /^http:\/\/9gag\.com\/gag\/([a-z0-9\-]+)/i + /^https?:\/\/9gag\.com\/gag\/([a-z0-9\-]+)/i ], mixins: [ diff --git a/plugins/domains/about.me.js b/plugins/domains/about.me.js index 60804a9e2..062002a48 100644 --- a/plugins/domains/about.me.js +++ b/plugins/domains/about.me.js @@ -1,6 +1,6 @@ module.exports = { - re: /http:\/\/about\.me\/([a-zA-Z0-9\-]+)/i, + re: /https?:\/\/about\.me\/([a-zA-Z0-9\-]+)/i, mixins: [ "twitter-image", diff --git a/plugins/domains/angel.co/angel.co.js b/plugins/domains/angel.co/angel.co.js index a6fd486d1..d11c3262d 100644 --- a/plugins/domains/angel.co/angel.co.js +++ b/plugins/domains/angel.co/angel.co.js @@ -1,6 +1,6 @@ module.exports = { - re: /^https:\/\/angel\.co\/([a-z-]+)/i, + re: /^https?:\/\/angel\.co\/([a-z-]+)/i, mixins: [ "keywords", diff --git a/plugins/domains/bandcamp.com.js b/plugins/domains/bandcamp.com.js index da641ec43..309f381d7 100644 --- a/plugins/domains/bandcamp.com.js +++ b/plugins/domains/bandcamp.com.js @@ -1,8 +1,8 @@ module.exports = { re: [ - /^http:\/\/([a-z0-9-]+\.bandcamp\.com)\/(album|track)\/(\w+)/i, - /^http:\/\/([a-z-\.]+)\/(album|track)\/([a-z-]+)/ + /^https?:\/\/([a-z0-9-]+\.bandcamp\.com)\/(album|track)\/(\w+)/i, + /^https?:\/\/([a-z-\.]+)\/(album|track)\/([a-z-]+)/ ], mixins: [ diff --git a/plugins/domains/behance.net.js b/plugins/domains/behance.net.js index 413d5032b..c5db75738 100644 --- a/plugins/domains/behance.net.js +++ b/plugins/domains/behance.net.js @@ -3,8 +3,8 @@ var jquery = require('jquery'); module.exports = { re: [ - /http:\/\/www\.behance\.net\/gallery\/([a-zA-Z0-9\-\(\)]+)\/([0-9]+)/i, - /http:\/\/([a-z-\.]+)\/gallery\/([a-zA-Z0-9\-\(\)]+)\/([0-9]+)/i, + /https?:\/\/www\.behance\.net\/gallery\/([a-zA-Z0-9\-\(\)]+)\/([0-9]+)/i, + /https?:\/\/([a-z-\.]+)\/gallery\/([a-zA-Z0-9\-\(\)]+)\/([0-9]+)/i, ], mixins: [ diff --git a/plugins/domains/brightcove.com.js b/plugins/domains/brightcove.com.js index 94f12a859..80abd426b 100644 --- a/plugins/domains/brightcove.com.js +++ b/plugins/domains/brightcove.com.js @@ -1,7 +1,7 @@ module.exports = { re: [ - /^http:\/\/link\.brightcove\.com\/services\/player\/bcpid(\d+)\?/i, + /^https?:\/\/link\.brightcove\.com\/services\/player\/bcpid(\d+)\?/i, /\.(com|org)\/services\/player\/bcpid(\d+)\?/i //the hosted players ], diff --git a/plugins/domains/cnn.com/cnn.video.js b/plugins/domains/cnn.com/cnn.video.js index 7b700f949..359dfc885 100644 --- a/plugins/domains/cnn.com/cnn.video.js +++ b/plugins/domains/cnn.com/cnn.video.js @@ -1,6 +1,6 @@ module.exports = { - re: /^http:\/\/((edition|www)\.)?cnn\.com\/video\//i, + re: /^https?:\/\/((edition|www)\.)?cnn\.com\/video\//i, mixins: [ "canonical", diff --git a/plugins/domains/codepen.io.js b/plugins/domains/codepen.io.js index 59ba4a7b7..c52ef8fbf 100644 --- a/plugins/domains/codepen.io.js +++ b/plugins/domains/codepen.io.js @@ -2,7 +2,7 @@ var jquery = require('jquery'); module.exports = { - re: /http:\/\/codepen\.io\/([a-z0-9\-]+)\/(pen|details)\/([a-z0-9\-]+)/i, + re: /https?:\/\/codepen\.io\/([a-z0-9\-]+)\/(pen|details)\/([a-z0-9\-]+)/i, mixins: [ "oembed-thumbnail", diff --git a/plugins/domains/collegehumor.com/collegehumor.picture.js b/plugins/domains/collegehumor.com/collegehumor.picture.js index 1951d8c3b..0d8bdeb39 100644 --- a/plugins/domains/collegehumor.com/collegehumor.picture.js +++ b/plugins/domains/collegehumor.com/collegehumor.picture.js @@ -1,4 +1,4 @@ -var re = /http:\/\/www\.collegehumor\.com\/(picture|post)\/([0-9]+)\.*/i; +var re = /https?:\/\/www\.collegehumor\.com\/(picture|post)\/([0-9]+)\.*/i; module.exports = { diff --git a/plugins/domains/collegehumor.com/collegehumor.video.js b/plugins/domains/collegehumor.com/collegehumor.video.js index f72bc36d5..5325a3993 100644 --- a/plugins/domains/collegehumor.com/collegehumor.video.js +++ b/plugins/domains/collegehumor.com/collegehumor.video.js @@ -1,6 +1,6 @@ var jquery = require('jquery'); -var re = /http:\/\/www\.collegehumor\.com\/(video|embed)\/([0-9]+)\.*/; +var re = /https?:\/\/www\.collegehumor\.com\/(video|embed)\/([0-9]+)\.*/; module.exports = { diff --git a/plugins/domains/dribbble.com.js b/plugins/domains/dribbble.com.js index 65e9e248f..f19de52f8 100644 --- a/plugins/domains/dribbble.com.js +++ b/plugins/domains/dribbble.com.js @@ -1,7 +1,7 @@ module.exports = { re: [ - /^http:\/\/dribbble\.com\/shots\/([a-zA-Z0-9\-]+)/i + /^https?:\/\/dribbble\.com\/shots\/([a-zA-Z0-9\-]+)/i ], mixins: [ diff --git a/plugins/domains/ebaumsworld.com.js b/plugins/domains/ebaumsworld.com.js index bf00fe4c8..d45739a61 100644 --- a/plugins/domains/ebaumsworld.com.js +++ b/plugins/domains/ebaumsworld.com.js @@ -1,7 +1,7 @@ module.exports = { re: [ - /^http:\/\/www\.ebaumsworld\.com\/video\/watch\/(\d+)/i + /^https?:\/\/www\.ebaumsworld\.com\/video\/watch\/(\d+)/i ], mixins: [ diff --git a/plugins/domains/ec.europa.eu.js b/plugins/domains/ec.europa.eu.js index 4a855fd54..6673dd0e0 100644 --- a/plugins/domains/ec.europa.eu.js +++ b/plugins/domains/ec.europa.eu.js @@ -1,7 +1,7 @@ module.exports = { re: [ - /http:\/\/ec\.europa\.eu\/avservices\/(video|focus)/i + /https?:\/\/ec\.europa\.eu\/avservices\/(video|focus)/i ], mixins: [ diff --git a/plugins/domains/funnyordie.com/funnyordie.video.js b/plugins/domains/funnyordie.com/funnyordie.video.js index e99340e0c..c398a0a32 100644 --- a/plugins/domains/funnyordie.com/funnyordie.video.js +++ b/plugins/domains/funnyordie.com/funnyordie.video.js @@ -1,6 +1,6 @@ var jquery = require('jquery'); -var re = /^http:\/\/www\.funnyordie\.com\/videos\//i; +var re = /^https?:\/\/www\.funnyordie\.com\/videos\//i; module.exports = { diff --git a/plugins/domains/gawker.js b/plugins/domains/gawker.js index 288db4f76..aa1e1a50a 100644 --- a/plugins/domains/gawker.js +++ b/plugins/domains/gawker.js @@ -3,16 +3,16 @@ module.exports = { notPlugin: !(CONFIG.providerOptions.readability && CONFIG.providerOptions.readability.enabled === true), re: [ - /^http:\/\/(\w+\.)?lifehacker\.com\/[a-z0-9\-]+/i, - /^http:\/\/(\w+\.)?gawker\.com\/[a-z0-9\-]+/i, - /^http:\/\/(\w+\.)?jezebel\.com\/[a-z0-9\-]+/i, - /^http:\/\/(\w+\.)?gizmodo\.com\/[a-z0-9\-]+/i, - /^http:\/\/(\w+\.)?deadspin\.com\/[a-z0-9\-]+/i, - /^http:\/\/(\w+\.)?io9\.com\/[a-z0-9\-]+/i, - /^http:\/\/(\w+\.)?kotaku\.com\/[a-z0-9\-]+/i, - /^http:\/\/(\w+\.)?jalopnik\.com\/[a-z0-9\-]+/i, - /^http:\/\/(\w+\.)?kinja\.com\/[a-z0-9\-]+/i, - /^http:\/\/(\w+\.)?cink\.hu\/[a-z0-9\-]+/i + /^https?:\/\/(\w+\.)?lifehacker\.com\/[a-z0-9\-]+/i, + /^https?:\/\/(\w+\.)?gawker\.com\/[a-z0-9\-]+/i, + /^https?:\/\/(\w+\.)?jezebel\.com\/[a-z0-9\-]+/i, + /^https?:\/\/(\w+\.)?gizmodo\.com\/[a-z0-9\-]+/i, + /^https?:\/\/(\w+\.)?deadspin\.com\/[a-z0-9\-]+/i, + /^https?:\/\/(\w+\.)?io9\.com\/[a-z0-9\-]+/i, + /^https?:\/\/(\w+\.)?kotaku\.com\/[a-z0-9\-]+/i, + /^https?:\/\/(\w+\.)?jalopnik\.com\/[a-z0-9\-]+/i, + /^https?:\/\/(\w+\.)?kinja\.com\/[a-z0-9\-]+/i, + /^https?:\/\/(\w+\.)?cink\.hu\/[a-z0-9\-]+/i ], diff --git a/plugins/domains/gogoyoko.com.js b/plugins/domains/gogoyoko.com.js index 8eb51d982..71fef5c2b 100644 --- a/plugins/domains/gogoyoko.com.js +++ b/plugins/domains/gogoyoko.com.js @@ -1,7 +1,7 @@ module.exports = { re: [ - /^http:\/\/www\.gogoyoko\.com\/song\/([0-9\-]+)/i + /^https?:\/\/www\.gogoyoko\.com\/song\/([0-9\-]+)/i ], mixins: [ diff --git a/plugins/domains/huffingtonpost.com/huffingtonpost.live.js b/plugins/domains/huffingtonpost.com/huffingtonpost.live.js index dff581d26..02ba1388f 100644 --- a/plugins/domains/huffingtonpost.com/huffingtonpost.live.js +++ b/plugins/domains/huffingtonpost.com/huffingtonpost.live.js @@ -1,9 +1,9 @@ module.exports = { re: [ - /^http:\/\/live\.huffingtonpost\.com\/r\/archive\/segment\/[\w-]+\/(\w+)/i, - /^http:\/\/live\.huffingtonpost\.com\/r\/segment\/[\w-]+\/(\w+)/i, - /^http:\/\/live\.huffingtonpost\.com\/r\/segment\/(\w+)/i + /^https?:\/\/live\.huffingtonpost\.com\/r\/archive\/segment\/[\w-]+\/(\w+)/i, + /^https?:\/\/live\.huffingtonpost\.com\/r\/segment\/[\w-]+\/(\w+)/i, + /^https?:\/\/live\.huffingtonpost\.com\/r\/segment\/(\w+)/i ], mixins: [ diff --git a/plugins/domains/instagram.com.js b/plugins/domains/instagram.com.js index b8a55e5bc..5a5374998 100644 --- a/plugins/domains/instagram.com.js +++ b/plugins/domains/instagram.com.js @@ -2,8 +2,8 @@ module.exports = { re: [ /^https?:\/\/[\w\.]*instagram\.com\/p\/([a-zA-Z0-9_-]+)/i, - /^http:\/\/instagr\.am\/p\/([a-zA-Z0-9_-]+)/i, - /^http:\/\/instagram\.com\/p\/([a-zA-Z0-9_-]+)$/i + /^https?:\/\/instagr\.am\/p\/([a-zA-Z0-9_-]+)/i, + /^https?:\/\/instagram\.com\/p\/([a-zA-Z0-9_-]+)$/i ], mixins: [ diff --git a/plugins/domains/jsfiddle.net.js b/plugins/domains/jsfiddle.net.js index 4644cd70e..0bad6ef6f 100644 --- a/plugins/domains/jsfiddle.net.js +++ b/plugins/domains/jsfiddle.net.js @@ -1,6 +1,6 @@ module.exports = { - re: /(http:\/\/jsfiddle.net\/(?:\w+\/)?\w+\/).*/i, + re: /(https?:\/\/jsfiddle.net\/(?:\w+\/)?\w+\/).*/i, mixins: [ "html-title", diff --git a/plugins/domains/live.wsj.com.js b/plugins/domains/live.wsj.com.js index f8bdf0bfc..ed4fc7392 100644 --- a/plugins/domains/live.wsj.com.js +++ b/plugins/domains/live.wsj.com.js @@ -1,6 +1,6 @@ module.exports = { - re: /^http:\/\/live\.wsj\.com\/#!([\w-]+)/i, + re: /^https?:\/\/live\.wsj\.com\/#!([\w-]+)/i, // TODO: make redirect to allthingsd. There is better meta. diff --git a/plugins/domains/lockerz.com.js b/plugins/domains/lockerz.com.js index 8377693b3..5a5ba903c 100644 --- a/plugins/domains/lockerz.com.js +++ b/plugins/domains/lockerz.com.js @@ -1,7 +1,7 @@ module.exports = { re: [ - /^http:\/\/lockerz\.com\/u\/([^/]+\/decalz\/[^/]+\/[a-z0-9_-]+)/i + /^https?:\/\/lockerz\.com\/u\/([^/]+\/decalz\/[^/]+\/[a-z0-9_-]+)/i ], mixins: [ diff --git a/plugins/domains/lolwall.co.js b/plugins/domains/lolwall.co.js index 2e2bcfae4..fccbee621 100644 --- a/plugins/domains/lolwall.co.js +++ b/plugins/domains/lolwall.co.js @@ -1,6 +1,6 @@ module.exports = { - re: /http:\/\/www.lolwall.co\/lol\/\d+/i, + re: /https?:\/\/www.lolwall.co\/lol\/\d+/i, mixins: [ "og-title", diff --git a/plugins/domains/magnatune.com.js b/plugins/domains/magnatune.com.js index 7986a0db5..24c81976f 100644 --- a/plugins/domains/magnatune.com.js +++ b/plugins/domains/magnatune.com.js @@ -4,7 +4,7 @@ var jQuery = require("jquery"); module.exports = { re: [ - /^http:\/\/magnatune\.com\/artists\/albums\/([-_a-z0-9]+)(?:\/(?:lofi_play)?)?(?:[\?#].*)?$/i + /^https?:\/\/magnatune\.com\/artists\/albums\/([-_a-z0-9]+)(?:\/(?:lofi_play)?)?(?:[\?#].*)?$/i ], mixins: [ diff --git a/plugins/domains/mail.ru.js b/plugins/domains/mail.ru.js index 20261d626..e3e853f77 100644 --- a/plugins/domains/mail.ru.js +++ b/plugins/domains/mail.ru.js @@ -1,7 +1,7 @@ module.exports = { re: [ - /^http:\/\/my\.mail\.ru\/video\//i + /^https?:\/\/my\.mail\.ru\/video\//i ], mixins: [ diff --git a/plugins/domains/mixbit.com.js b/plugins/domains/mixbit.com.js index cb4e2fb6f..b827710dd 100644 --- a/plugins/domains/mixbit.com.js +++ b/plugins/domains/mixbit.com.js @@ -1,6 +1,6 @@ module.exports = { - re: /^https:\/\/mixbit\.com\/v\/(\w+)(?:\/.+)?/i, + re: /^https?:\/\/mixbit\.com\/v\/(\w+)(?:\/.+)?/i, getMeta: function(mixbit) { return { diff --git a/plugins/domains/myvideo.de.js b/plugins/domains/myvideo.de.js index 8c3186700..e40e57d08 100644 --- a/plugins/domains/myvideo.de.js +++ b/plugins/domains/myvideo.de.js @@ -1,7 +1,7 @@ module.exports = { re: [ - /^http:\/\/www\.myvideo\.de\/watch\/([0-9]+)/i + /^https?:\/\/www\.myvideo\.de\/watch\/([0-9]+)/i ], mixins: [ diff --git a/plugins/domains/pbs.org.js b/plugins/domains/pbs.org.js index 959942fa9..18551096d 100644 --- a/plugins/domains/pbs.org.js +++ b/plugins/domains/pbs.org.js @@ -2,7 +2,7 @@ module.exports = { //http://video.pbs.org/video/1863101157/ re: [ - /^http:\/\/video\.(pbs|[a-zA-Z]+)\.org\/video\/(\d+)\//i // + Powered by PBS + /^https?:\/\/video\.(pbs|[a-zA-Z]+)\.org\/video\/(\d+)\//i // + Powered by PBS ], mixins: [ diff --git a/plugins/domains/prezi.com.js b/plugins/domains/prezi.com.js index cf68079ac..ad869d655 100644 --- a/plugins/domains/prezi.com.js +++ b/plugins/domains/prezi.com.js @@ -1,7 +1,7 @@ module.exports = { re: [ - /^http:\/\/prezi\.com\/([a-z0-9\-]+)\/([a-z0-9\-]+)/i + /^https?:\/\/prezi\.com\/([a-z0-9\-]+)\/([a-z0-9\-]+)/i ], mixins: [ diff --git a/plugins/domains/reuters.com.js b/plugins/domains/reuters.com.js index 0d5c27089..f5507e30a 100644 --- a/plugins/domains/reuters.com.js +++ b/plugins/domains/reuters.com.js @@ -1,7 +1,7 @@ module.exports = { re: [ - /^http:\/\/www\.reuters\.com\/video\/\d{4}\/\d{2}\/\d{2}\/[a-zA-Z0-9\-]+\?videoId=(\d+)/i + /^https?:\/\/www\.reuters\.com\/video\/\d{4}\/\d{2}\/\d{2}\/[a-zA-Z0-9\-]+\?videoId=(\d+)/i ], mixins: [ diff --git a/plugins/domains/screencast.com.js b/plugins/domains/screencast.com.js index e144f5df0..458ec65d0 100644 --- a/plugins/domains/screencast.com.js +++ b/plugins/domains/screencast.com.js @@ -1,7 +1,7 @@ module.exports = { re: [ - /^http:\/\/screencast\.com\/t\//i + /^https?:\/\/screencast\.com\/t\//i ], mixins: [ diff --git a/plugins/domains/ted.com.js b/plugins/domains/ted.com.js index 7752a3879..e5eeb29f3 100644 --- a/plugins/domains/ted.com.js +++ b/plugins/domains/ted.com.js @@ -1,6 +1,6 @@ module.exports = { - re: /^http:\/\/ted\.com\/talks\//i, + re: /^https?:\/\/(www\.)?ted\.com\/talks\//i, mixins: [ "canonical", diff --git a/plugins/domains/theglobeandmail.com/globe.video.js b/plugins/domains/theglobeandmail.com/globe.video.js index 7c482864d..462447075 100644 --- a/plugins/domains/theglobeandmail.com/globe.video.js +++ b/plugins/domains/theglobeandmail.com/globe.video.js @@ -1,7 +1,7 @@ module.exports = { re: [ - /^http:\/\/www\.theglobeandmail\.com\/[a-z\/\-]+video\/video+/i + /^https?:\/\/www\.theglobeandmail\.com\/[a-z\/\-]+video\/video+/i ], mixins: [ diff --git a/plugins/domains/theguardian.com/guardian.video.js b/plugins/domains/theguardian.com/guardian.video.js index 2634def23..ddc851ed5 100644 --- a/plugins/domains/theguardian.com/guardian.video.js +++ b/plugins/domains/theguardian.com/guardian.video.js @@ -1,6 +1,6 @@ module.exports = { - re: /http:\/\/www\.theguardian\.com\/\w+\/video\/\d+\/\w+\/\d+\/[\w-]+/i, + re: /https?:\/\/www\.theguardian\.com\/\w+\/video\/\d+\/\w+\/\d+\/[\w-]+/i, mixins: [ "canonical", diff --git a/plugins/domains/theonion.com/theonion.video.js b/plugins/domains/theonion.com/theonion.video.js index bff3d41f5..b34f78f9c 100644 --- a/plugins/domains/theonion.com/theonion.video.js +++ b/plugins/domains/theonion.com/theonion.video.js @@ -1,6 +1,6 @@ module.exports = { - re: /^http:\/\/www\.theonion\.com\/video\/*/i, + re: /^https?:\/\/www\.theonion\.com\/video\/*/i, mixins: [ "canonical", diff --git a/plugins/domains/tindeck.com.js b/plugins/domains/tindeck.com.js index be5f119cb..06d38b7b3 100644 --- a/plugins/domains/tindeck.com.js +++ b/plugins/domains/tindeck.com.js @@ -2,7 +2,7 @@ var URL = require("url"); module.exports = { - re: /^http:\/\/(?:www\.)?tindeck\.com\/listen\/([-_a-z0-9]+)\/?$/i, + re: /^https?:\/\/(?:www\.)?tindeck\.com\/listen\/([-_a-z0-9]+)\/?$/i, mixins: [ "og-image", diff --git a/plugins/domains/travelchannel.com/travelchannel.video.js b/plugins/domains/travelchannel.com/travelchannel.video.js index 17713814f..9cbdcafcb 100644 --- a/plugins/domains/travelchannel.com/travelchannel.video.js +++ b/plugins/domains/travelchannel.com/travelchannel.video.js @@ -1,6 +1,6 @@ module.exports = { - re: /^http:\/\/www\.travelchannel\.com\/video\/[\w-]+/i, + re: /^https?:\/\/www\.travelchannel\.com\/video\/[\w-]+/i, mixins: [ "og-title", diff --git a/plugins/domains/tumblr.com/tumblr.api.js b/plugins/domains/tumblr.com/tumblr.api.js index 1c579e5f6..544cd286e 100644 --- a/plugins/domains/tumblr.com/tumblr.api.js +++ b/plugins/domains/tumblr.com/tumblr.api.js @@ -4,8 +4,8 @@ var _ = require('underscore'); module.exports = { re: [ - /^http:\/\/([a-z0-9-]+\.tumblr\.com)\/(post|image)\/(\d+)(?:\/[a-z0-9-]+)?/i, - /^http:\/\/([a-z-\.]+)\/(post|post)\/(\d{11})(?:\/[a-z0-9-]+)?/i + /^https?:\/\/([a-z0-9-]+\.tumblr\.com)\/(post|image)\/(\d+)(?:\/[a-z0-9-]+)?/i, + /^https?:\/\/([a-z-\.]+)\/(post|post)\/(\d{11})(?:\/[a-z0-9-]+)?/i ], provides: 'tumblr_post', diff --git a/plugins/domains/tumblr.com/tumblr.text.js b/plugins/domains/tumblr.com/tumblr.text.js index eaeaa5535..838f28fa5 100644 --- a/plugins/domains/tumblr.com/tumblr.text.js +++ b/plugins/domains/tumblr.com/tumblr.text.js @@ -3,8 +3,8 @@ var jquery = require('jquery'); module.exports = { re: [ - /^http:\/\/([a-z0-9-]+\.tumblr\.com)\/(post|image)\/(\d+)(?:\/[a-z0-9-]+)?/i, - /^http:\/\/([a-z-\.]+)\/(post|post)\/(\d{11})(?:\/[a-z0-9-]+)?/i + /^https?:\/\/([a-z0-9-]+\.tumblr\.com)\/(post|image)\/(\d+)(?:\/[a-z0-9-]+)?/i, + /^https?:\/\/([a-z-\.]+)\/(post|post)\/(\d{11})(?:\/[a-z0-9-]+)?/i ], getData: function(tumblr_post) { diff --git a/plugins/domains/tumblr.com/tumblr.video.js b/plugins/domains/tumblr.com/tumblr.video.js index bdb1185af..ed1e1d73f 100644 --- a/plugins/domains/tumblr.com/tumblr.video.js +++ b/plugins/domains/tumblr.com/tumblr.video.js @@ -3,8 +3,8 @@ var jquery = require('jquery'); module.exports = { re: [ - /^http:\/\/([a-z0-9-]+\.tumblr\.com)\/(post|image)\/(\d+)(?:\/[a-z0-9-]+)?/i, - /^http:\/\/([a-z-\.]+)\/(post|post)\/(\d{11})(?:\/[a-z0-9-]+)?/i + /^https?:\/\/([a-z0-9-]+\.tumblr\.com)\/(post|image)\/(\d+)(?:\/[a-z0-9-]+)?/i, + /^https?:\/\/([a-z-\.]+)\/(post|post)\/(\d{11})(?:\/[a-z0-9-]+)?/i ], getLinks: function(tumblr_post, cb) { diff --git a/plugins/domains/twitter.status.js b/plugins/domains/twitter.status.js index 86b9ce5b6..869fdae83 100644 --- a/plugins/domains/twitter.status.js +++ b/plugins/domains/twitter.status.js @@ -12,7 +12,7 @@ var url = require("url"); module.exports = { re: [ - /https:\/\/twitter\.com\/(\w+)\/status(?:es)?\/(\w+)/i, + /https?:\/\/twitter\.com\/(\w+)\/status(?:es)?\/(\w+)/i, /https?:\/\/pic.twitter\.com\//i ], diff --git a/plugins/domains/v.qq.com.js b/plugins/domains/v.qq.com.js index 7ae22a6d2..54a0dccbf 100644 --- a/plugins/domains/v.qq.com.js +++ b/plugins/domains/v.qq.com.js @@ -1,9 +1,9 @@ module.exports = { re: [ - /^http:\/\/v\.qq\.com\/page\/\w\/\w\/\w\/(\w+)\.html$/i, - /^http:\/\/v\.qq\.com\/\w+\/page\/\w\/\w\/\w\/(\w+)\.html$/i, - /^http:\/\/v\.qq\.com\/\w+\/\w\/\w+\.html\?vid=(\w+)$/i + /^https?:\/\/v\.qq\.com\/page\/\w\/\w\/\w\/(\w+)\.html$/i, + /^https?:\/\/v\.qq\.com\/\w+\/page\/\w\/\w\/\w\/(\w+)\.html$/i, + /^https?:\/\/v\.qq\.com\/\w+\/\w\/\w+\.html\?vid=(\w+)$/i ], mixins: [ diff --git a/plugins/domains/vevo.com.js b/plugins/domains/vevo.com.js index 127362b12..2829e595c 100644 --- a/plugins/domains/vevo.com.js +++ b/plugins/domains/vevo.com.js @@ -1,8 +1,8 @@ module.exports = { re: [ - /^http:\/\/www\.vevo\.com\/watch\/([a-zA-Z0-9\-]+)\/([a-zA-Z0-9\-]+)\/([A-Z0-9]+)/i, - /^http:\/\/www\.vevo\.com\/watch\/([A-Z0-9]+)/i + /^https?:\/\/www\.vevo\.com\/watch\/([a-zA-Z0-9\-]+)\/([a-zA-Z0-9\-]+)\/([A-Z0-9]+)/i, + /^https?:\/\/www\.vevo\.com\/watch\/([A-Z0-9]+)/i ], mixins: [ diff --git a/plugins/domains/video.mit.edu.js b/plugins/domains/video.mit.edu.js index 582841dd8..3cea8ba97 100644 --- a/plugins/domains/video.mit.edu.js +++ b/plugins/domains/video.mit.edu.js @@ -1,7 +1,7 @@ module.exports = { re: [ - /^http:\/\/video\.mit\.edu\/watch\/[a-zA-Z\-]+\-(\d+)/i + /^https?:\/\/video\.mit\.edu\/watch\/[a-zA-Z\-]+\-(\d+)/i ], mixins: [ diff --git a/plugins/domains/videos.nymag.com.js b/plugins/domains/videos.nymag.com.js index 25536eb7c..fd54647ce 100644 --- a/plugins/domains/videos.nymag.com.js +++ b/plugins/domains/videos.nymag.com.js @@ -1,8 +1,8 @@ module.exports = { re: [ - /^http:\/\/videos\.nymag\.com\/video\/([a-zA-Z0-9\-]+)/i, - /^http:\/\/videos\.nymag\.com\/list\/\w+\/video\/([a-zA-Z0-9\-]+)/i + /^https?:\/\/videos\.nymag\.com\/video\/([a-zA-Z0-9\-]+)/i, + /^https?:\/\/videos\.nymag\.com\/list\/\w+\/video\/([a-zA-Z0-9\-]+)/i ], mixins: [ diff --git a/plugins/domains/vube.com.js b/plugins/domains/vube.com.js index f4c4fce93..f2422a198 100644 --- a/plugins/domains/vube.com.js +++ b/plugins/domains/vube.com.js @@ -1,6 +1,6 @@ module.exports = { - re: /^http:\/\/vube\.com\/([^\/]+)\/([a-zA-Z0-9_-]+)/i, + re: /^https?:\/\/vube\.com\/([^\/]+)\/([a-zA-Z0-9_-]+)/i, provides: 'vube', diff --git a/plugins/domains/yfrog.com.js b/plugins/domains/yfrog.com.js index 8c1479b90..f54839116 100644 --- a/plugins/domains/yfrog.com.js +++ b/plugins/domains/yfrog.com.js @@ -2,7 +2,7 @@ module.exports = { re: [ /^https?:\/\/(?:[a-z]+\.)?yfrog\.com\/([a-zA-Z0-9]+)/i, - /^http:\/\/twitter\.yfrog\.com\/([a-zA-Z0-9]+)/i + /^https?:\/\/twitter\.yfrog\.com\/([a-zA-Z0-9]+)/i ], mixins: [ diff --git a/plugins/links/og-youtube.js b/plugins/links/og-youtube.js index 4f55540ad..5878700bf 100644 --- a/plugins/links/og-youtube.js +++ b/plugins/links/og-youtube.js @@ -2,7 +2,7 @@ module.exports = { getLink: function(og) { - if (!(og.video || og.video.url)) return; + if (!og.video || !og.video.url) return; var video_src = og.video.url || og.video; From 9b6aa45af0c30f0f87a8f7467788cb70ed81d4d2 Mon Sep 17 00:00:00 2001 From: Ivan Paramonau Date: Tue, 22 Apr 2014 18:18:02 -0400 Subject: [PATCH 02/43] missed some domains while ssl future-proofing --- plugins/domains/issuu.com.js | 2 +- plugins/domains/trutv.com.js | 2 +- plugins/domains/tumblr.com/tumblr.photo.js | 4 ++-- plugins/domains/vk.com.js | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/plugins/domains/issuu.com.js b/plugins/domains/issuu.com.js index aba8e3451..e4ec9d4ab 100644 --- a/plugins/domains/issuu.com.js +++ b/plugins/domains/issuu.com.js @@ -1,6 +1,6 @@ module.exports = { - re: /http:\/\/issuu\.com\/[\w_.-]+\/docs\/([\w_.-]+)/i, + re: /https?:\/\/issuu\.com\/[\w_.-]+\/docs\/([\w_.-]+)/i, mixins: [ "site", diff --git a/plugins/domains/trutv.com.js b/plugins/domains/trutv.com.js index 8355164cb..863a26a61 100644 --- a/plugins/domains/trutv.com.js +++ b/plugins/domains/trutv.com.js @@ -1,6 +1,6 @@ module.exports = { - re: /http:\/\/www\.trutv\.com\/(shows\/[\w-]+\/videos\/[\w-]+)\.html/i, + re: /https?:\/\/www\.trutv\.com\/(shows\/[\w-]+\/videos\/[\w-]+)\.html/i, mixins: [ "og-title", diff --git a/plugins/domains/tumblr.com/tumblr.photo.js b/plugins/domains/tumblr.com/tumblr.photo.js index 87ff85773..d0fcec344 100644 --- a/plugins/domains/tumblr.com/tumblr.photo.js +++ b/plugins/domains/tumblr.com/tumblr.photo.js @@ -3,8 +3,8 @@ var _ = require('underscore'); module.exports = { re: [ - /^http:\/\/([a-z0-9-]+\.tumblr\.com)\/(post|image)\/(\d+)(?:\/[a-z0-9-]+)?/i, - /^http:\/\/([a-z-\.]+)\/(post|post)\/(\d{11})(?:\/[a-z0-9-]+)?/i + /^https?:\/\/([a-z0-9-]+\.tumblr\.com)\/(post|image)\/(\d+)(?:\/[a-z0-9-]+)?/i, + /^https?:\/\/([a-z-\.]+)\/(post|post)\/(\d{11})(?:\/[a-z0-9-]+)?/i ], getLinks: function(tumblr_post) { diff --git a/plugins/domains/vk.com.js b/plugins/domains/vk.com.js index 34a36ac6e..18f98dbe5 100644 --- a/plugins/domains/vk.com.js +++ b/plugins/domains/vk.com.js @@ -1,7 +1,7 @@ module.exports = { re: [ - /^http:\/\/vk\.com\/video\-/i + /^https?:\/\/vk\.com\/video\-/i ], mixins: [ From 7c163d92b3ccd68f9ec038385962d860db3c13f6 Mon Sep 17 00:00:00 2001 From: Ivan Paramonau Date: Tue, 22 Apr 2014 18:30:54 -0400 Subject: [PATCH 03/43] [domains] fix telly & fiddler tests --- plugins/domains/telly.com.js | 8 ++++---- plugins/domains/viddler.com.js | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/plugins/domains/telly.com.js b/plugins/domains/telly.com.js index ac5a70d85..e5029f650 100644 --- a/plugins/domains/telly.com.js +++ b/plugins/domains/telly.com.js @@ -9,7 +9,6 @@ module.exports = { "og-site", "og-title", "twitter-image", - "twitter-player-responsive", "favicon" ], @@ -17,12 +16,13 @@ module.exports = { return { href: "https://telly.com/embed.php?guid=" + urlMatch[1] + "&autoplay=0", type: CONFIG.T.text_html, - rel: [CONFIG.R.player, CONFIG.R.twitter], - "aspect-ratio": meta.twitter.player.width / meta.twitter.player.height + rel: CONFIG.R.player, + "aspect-ratio": 480/360 }; }, tests: [ - "http://telly.com/Q84DI7" + "http://telly.com/Q84DI7", + "http://telly.com/1AUHUCN" ] }; \ No newline at end of file diff --git a/plugins/domains/viddler.com.js b/plugins/domains/viddler.com.js index 5f257dd15..9876eb1e6 100644 --- a/plugins/domains/viddler.com.js +++ b/plugins/domains/viddler.com.js @@ -22,6 +22,6 @@ module.exports = { }, tests: [ - "http://www.viddler.com/v/5b70e34a" + "http://www.viddler.com/v/3027cd1f" ] }; \ No newline at end of file From a2d656b976b1c91667cf8b7907a6bc3570829212 Mon Sep 17 00:00:00 2001 From: Nazar Leush Date: Wed, 23 Apr 2014 15:00:26 +0300 Subject: [PATCH 04/43] remove getWhitelist method --- lib/core.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/lib/core.js b/lib/core.js index 3df624090..7604948f0 100644 --- a/lib/core.js +++ b/lib/core.js @@ -1165,8 +1165,5 @@ }; exports.getOembed = oembedUtils.getOembed; - exports.getWhitelist = function() { - return require('./whitelist'); - }; })(exports); \ No newline at end of file From cb19be857f8b713cd69c37b57dcab85b0dc1204c Mon Sep 17 00:00:00 2001 From: Nazar Leush Date: Wed, 23 Apr 2014 21:01:53 +0300 Subject: [PATCH 05/43] fix global config override if using as lib --- lib/utils.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/utils.js b/lib/utils.js index 4a25a3c24..8a30f0144 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -7,7 +7,9 @@ var imagesize = require('imagesize'); var moment = require('moment'); var cache = require('./cache'); -GLOBAL.CONFIG = require('../config'); +if (!GLOBAL.CONFIG) { + GLOBAL.CONFIG = require('../config'); +} /** * @private From 311478b917749d1b3c067880c95ba163e69ed2f6 Mon Sep 17 00:00:00 2001 From: Nazar Leush Date: Fri, 25 Apr 2014 18:52:30 +0300 Subject: [PATCH 06/43] fix oembed xml response --- modules/api/views.js | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/api/views.js b/modules/api/views.js index 49461f1fc..b20442ddf 100644 --- a/modules/api/views.js +++ b/modules/api/views.js @@ -6,6 +6,7 @@ var cache = require('../../lib/cache'); var oembedUtils = require('../../lib/oembed'); var whitelist = require('../../lib/whitelist'); var pluginLoader = require('../../lib/loader/pluginLoader'); +var jsonxml = require('jsontoxml'); function prepareUri(uri) { From 4bbec70c118c6e871d285e39717bee351b9266fe Mon Sep 17 00:00:00 2001 From: Nazar Leush Date: Fri, 25 Apr 2014 19:10:38 +0300 Subject: [PATCH 07/43] fix rounding aspect in special case --- lib/plugins/validators/media.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/plugins/validators/media.js b/lib/plugins/validators/media.js index 4160e3836..2fd8b7e6e 100644 --- a/lib/plugins/validators/media.js +++ b/lib/plugins/validators/media.js @@ -16,6 +16,10 @@ function makeMediaResponsive(link) { } else { m["aspect-ratio"] = 4 / 3; } + + if (typeof m["aspect-ratio"] === 'number') { + m["aspect-ratio"] = Math.round(m["aspect-ratio"] * 1000) / 1000; + } } function isEmpty(obj) { From b0b11f7d552ee0528715a04edb231af8be1a333f Mon Sep 17 00:00:00 2001 From: Ivan Paramonau Date: Mon, 28 Apr 2014 18:51:18 -0400 Subject: [PATCH 08/43] [Domains] Do not return rel=image for instagram videos --- plugins/domains/instagram.com.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/domains/instagram.com.js b/plugins/domains/instagram.com.js index 5a5374998..c29b87da5 100644 --- a/plugins/domains/instagram.com.js +++ b/plugins/domains/instagram.com.js @@ -42,7 +42,7 @@ module.exports = { }, { href: src + 'l', type: CONFIG.T.image, - rel: CONFIG.R.image, + rel: (meta.og && meta.og.video) ? CONFIG.R.thumbnail : CONFIG.R.image, width: 612, height: 612 }]; From 2a6a55d8cd17b828dbf5225ebbb8c8a892ac1ece Mon Sep 17 00:00:00 2001 From: Ivan Paramonau Date: Mon, 28 Apr 2014 21:10:08 -0400 Subject: [PATCH 09/43] [domains] simplify Imgur (they fixed kittens in oEmbed) --- plugins/domains/imgur.com.js | 57 ++++++++++++++++++------------------ 1 file changed, 28 insertions(+), 29 deletions(-) diff --git a/plugins/domains/imgur.com.js b/plugins/domains/imgur.com.js index c8264f623..423e13f96 100644 --- a/plugins/domains/imgur.com.js +++ b/plugins/domains/imgur.com.js @@ -1,11 +1,15 @@ +var jquery = require('jquery'); + module.exports = { re: /https?:\/\/imgur\.com\/(?:\w+\/)?(\w+).*/i, mixins: [ "favicon", - "oembed-video-responsive", - "og-site" + "canonical", + "oembed-author", + "twitter-image", // both as fall back, and as thumbnails for galleries + "oembed-site" ], getMeta: function(meta) { @@ -14,53 +18,48 @@ module.exports = { }; }, - getLink: function(oembed, meta) { - - var links = []; + getLink: function(oembed) { - // processing photos. - // But in some cases, oembed photo shows the kitten instead of proper image. - // In this cases - fall back to twitter photo - if (oembed.type === "photo" && oembed.url && oembed.url === meta.twitter.image.url) { + if (oembed.type === "photo" && oembed.url) { - links.push({ + return { href: oembed.url.replace("http://", "//"), type: CONFIG.T.image, rel: [CONFIG.R.image, CONFIG.R.thumbnail, CONFIG.R.oembed], width: oembed.width, height: oembed.height - }); + }; + } - } else if (meta.twitter.image && meta.twitter.image.url) { // the kitten! - links.push({ - href: meta.twitter.image.url.replace("http://", "//"), - type: CONFIG.T.image, - rel: [CONFIG.R.image, CONFIG.R.thumbnail, CONFIG.R.twitter], - width: meta.twitter.image.width, - height: meta.twitter.image.height - }); + if (oembed.type == "rich") { + var $container = jquery('
'); + try{ + $container.html(oembed.html5 || oembed.html); + } catch(ex) {} - } else { // likely a gallery, push thumbnail + var $iframe = $container.find('iframe'); - links.push({ - href: meta.image_src, - type: CONFIG.T.image, - rel: [CONFIG.R.thumbnail, CONFIG.R.og], - }); + if ($iframe.length == 1) { + return { + href: $iframe.attr('src').replace("http://","//"), + type: CONFIG.T.text_html, + rel: [CONFIG.R.player, CONFIG.R.oembed], + "aspect-ratio": oembed.width / oembed.height + }; + } } - - return links; }, tests: [{ pageWithFeed: "http://imgur.com/" }, { - skipMixins: ["oembed-video-responsive"] + skipMixins: ["oembed-author"] // Available for Galleries only }, "http://imgur.com/Ks3qs", "http://imgur.com/gallery/IiDwq", + "http://imgur.com/a/yMoaT", "https://imgur.com/gallery/B3X48s9", - "http://imgur.com/r/aww/tFKv2zQ" // kitten bomb + "http://imgur.com/r/aww/tFKv2zQ" // kitten bomb before, doesn't seem to show up any longer ] }; \ No newline at end of file From 277ab6bb9bc24794fae9d9e987a16c648c084f90 Mon Sep 17 00:00:00 2001 From: Ivan Paramonau Date: Mon, 28 Apr 2014 22:26:37 -0400 Subject: [PATCH 10/43] [domains] thumbnail for articles on Tumblr --- plugins/domains/tumblr.com/tumblr.text.js | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/plugins/domains/tumblr.com/tumblr.text.js b/plugins/domains/tumblr.com/tumblr.text.js index 838f28fa5..3d7282d7e 100644 --- a/plugins/domains/tumblr.com/tumblr.text.js +++ b/plugins/domains/tumblr.com/tumblr.text.js @@ -7,7 +7,24 @@ module.exports = { /^https?:\/\/([a-z-\.]+)\/(post|post)\/(\d{11})(?:\/[a-z0-9-]+)?/i ], - getData: function(tumblr_post) { + getLink: function (tumblr_post) { + if (tumblr_post.thumbnail_url) { + return; + }; + + var $post = jquery('
').html(tumblr_post.body); + var $images = $post.find('img'); + + // Could be more than 1 image, true. + return { // But the response time will be unacceptable as post-processing will check alll image sizes. + href: $images[0].src, + title: $images[0].alt, + type: CONFIG.T.image, + rel: CONFIG.R.thumbnail + }; + }, + + getData: function (tumblr_post) { if (tumblr_post.type !== "text") { @@ -21,8 +38,8 @@ module.exports = { }, tests: [ + "http://blog.dribbble.com/post/83410866615", "http://tiffany-anc.tumblr.com/post/58056730720/truth-what-filthy-thought-are-you-thinking-right-now", - "http://starsshinetoobrightly.tumblr.com/post/58055596742/17", "http://asimpleweirdlass.tumblr.com/post/58054585454/nakakatakot-kanina-ang-dilim-sa-street-tapos", "http://soupsoup.tumblr.com/post/41952443284/think-of-yourself-less-of-a-journalist-and-more" ] From 907c1c133e4d58467823cc0bc5e7cd4efd7367c5 Mon Sep 17 00:00:00 2001 From: Ivan Paramonau Date: Mon, 28 Apr 2014 23:52:24 -0400 Subject: [PATCH 11/43] [domains] properly process smaller images on Flickr --- plugins/domains/flickr.com/flickr.photo.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/domains/flickr.com/flickr.photo.js b/plugins/domains/flickr.com/flickr.photo.js index f54236e35..29996e62e 100644 --- a/plugins/domains/flickr.com/flickr.photo.js +++ b/plugins/domains/flickr.com/flickr.photo.js @@ -25,7 +25,7 @@ module.exports = { width: size.width, height: size.height, type: "image/jpeg", - rel: size.width > 500 ? CONFIG.R.image : CONFIG.R.thumbnail + rel: size.width >= 800 || size.label == "Original" ? CONFIG.R.image : CONFIG.R.thumbnail }; }) || []; From e3d08cc0a9963dcdbc0a684147a3b8ef3eed3008 Mon Sep 17 00:00:00 2001 From: Ivan Paramonau Date: Tue, 29 Apr 2014 00:20:10 -0400 Subject: [PATCH 12/43] [domains] support Flickr videos --- plugins/domains/flickr.com/flickr.photo.js | 29 ++++++++++++++++------ 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/plugins/domains/flickr.com/flickr.photo.js b/plugins/domains/flickr.com/flickr.photo.js index 29996e62e..bb298310d 100644 --- a/plugins/domains/flickr.com/flickr.photo.js +++ b/plugins/domains/flickr.com/flickr.photo.js @@ -20,13 +20,28 @@ module.exports = { } var result = sizes && sizes.map(function(size) { - return { - href: size.source.replace(/^https?:/i, ""), - width: size.width, - height: size.height, - type: "image/jpeg", - rel: size.width >= 800 || size.label == "Original" ? CONFIG.R.image : CONFIG.R.thumbnail - }; + + if (size.media == "photo") { + + return { + href: size.source.replace(/^https?:/i, ""), + width: size.width, + height: size.height, + type: CONFIG.T.image_jpeg, + rel: size.width >= 800 || /original/i.test(size.label) ? CONFIG.R.image : CONFIG.R.thumbnail + } + + } else if (size.media == "video") { + + return { + href: size.source, + "aspect-ratio": size.width / size.height, + type: /mp4/i.test(size.label) ? CONFIG.T.video_mp4 : CONFIG.T.flash, + rel: CONFIG.R.player + } + + } + }) || []; result.push({ From 4a20737b1b9d40a246b6349c25533f58989229c6 Mon Sep 17 00:00:00 2001 From: Ivan Paramonau Date: Tue, 29 Apr 2014 10:46:54 -0400 Subject: [PATCH 13/43] [domains] support new URL structure of Behance --- plugins/domains/behance.net.js | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/domains/behance.net.js b/plugins/domains/behance.net.js index c5db75738..cc3b18949 100644 --- a/plugins/domains/behance.net.js +++ b/plugins/domains/behance.net.js @@ -4,6 +4,7 @@ module.exports = { re: [ /https?:\/\/www\.behance\.net\/gallery\/([a-zA-Z0-9\-\(\)]+)\/([0-9]+)/i, + /https?:\/\/www\.behance\.net\/gallery\/([0-9]+)\/([a-zA-Z0-9\-\(\)]+)/i, /https?:\/\/([a-z-\.]+)\/gallery\/([a-zA-Z0-9\-\(\)]+)\/([0-9]+)/i, ], From f908ecd60be5cbcfb95ff215379e891e42913e2e Mon Sep 17 00:00:00 2001 From: Ivan Paramonau Date: Tue, 29 Apr 2014 11:33:29 -0400 Subject: [PATCH 14/43] [Domains] add Slidecaptain --- plugins/domains/slidecaptain.com.js | 39 +++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 plugins/domains/slidecaptain.com.js diff --git a/plugins/domains/slidecaptain.com.js b/plugins/domains/slidecaptain.com.js new file mode 100644 index 000000000..486c76aff --- /dev/null +++ b/plugins/domains/slidecaptain.com.js @@ -0,0 +1,39 @@ + +module.exports = { + + re: [ + /https?:\/\/www\.slidecaptain\.com\/flows\/([a-zA-Z0-9]+)\/([a-zA-Z0-9\-]+)/i + ], + + mixins: [ + "og-image", + "favicon", + "canonical", + "keywords", + "og-title" + ], + + getMeta: function (meta) { + return { + "site": meta["generator"] + } + }, + + getLink: function(meta) { + if (meta.og.url) { + + return { + href: meta.og.url + "/embed", + type: CONFIG.T.text_html, + rel: CONFIG.R.player, + "aspect-ratio": 4/3 // It's actually more flexible, but it'll be better handled at oEmbed endpoint this way. + }; + } + }, + + tests: [ + "http://www.slidecaptain.com/flows/51dbfee3896082260f0001f5/background-images-and-colors/embed", + "http://www.slidecaptain.com/flows/51dbfee3896082260f0001f5/background-images-and-colors/" + ] + +}; \ No newline at end of file From 484e73b8b42d968e17f34fe9e8779515b0b327e1 Mon Sep 17 00:00:00 2001 From: Ivan Paramonau Date: Wed, 30 Apr 2014 21:24:52 -0400 Subject: [PATCH 15/43] Improve oEmbed rich according to new tags in whitelist record --- lib/plugins/validators/00_init/01_qa_rels.js | 2 +- plugins/links/oembed-rich.js | 34 ++++++++++++-------- 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/lib/plugins/validators/00_init/01_qa_rels.js b/lib/plugins/validators/00_init/01_qa_rels.js index 9c0b4014c..eb1920c40 100644 --- a/lib/plugins/validators/00_init/01_qa_rels.js +++ b/lib/plugins/validators/00_init/01_qa_rels.js @@ -16,7 +16,7 @@ module.exports = { var rawMeta = {}; // Proxy QA tags, but ignore the ones from the config wildcard - if (whitelistRecord && whitelistRecord.getQATags && !whitelistRecord.isDefault) { + if (whitelistRecord && whitelistRecord.getQATags && !whitelistRecord.isDefault && link.rel.indexOf('allow') == -1) { var tags = whitelistRecord.getQATags(rawMeta, link.rel); link.rel = link.rel.concat(tags); } diff --git a/plugins/links/oembed-rich.js b/plugins/links/oembed-rich.js index a36810e26..c7e261682 100644 --- a/plugins/links/oembed-rich.js +++ b/plugins/links/oembed-rich.js @@ -9,11 +9,19 @@ module.exports = { return; } - var inline = whitelistRecord.isAllowed('oembed.rich', "reader") || whitelistRecord.isAllowed('oembed.rich', "inline"); + var rels = [CONFIG.R.oembed]; + + if (whitelistRecord.isAllowed('oembed.rich', "reader")) rels.push(CONFIG.R.reader); + if (whitelistRecord.isAllowed('oembed.rich', "player")) rels.push(CONFIG.R.player); + if (rels.length == 1) rels.push(CONFIG.R.app); + // if (whitelistRecord.isAllowed('oembed.rich', "responsive")) rels.push("responsive"); + if (whitelistRecord.isAllowed('oembed.rich', "inline")) rels.push(CONFIG.R.inline); + rels.push ("allow"); // otherwise, rich->players get denied by oembed:video whitelist record + var widget = { - type: CONFIG.T.text_html, - rel:[CONFIG.R.oembed, CONFIG.R.app] + rel: rels, + type: CONFIG.T.text_html }; var $container = jquery('
'); @@ -23,25 +31,23 @@ module.exports = { var $iframe = $container.find('iframe'); - // if embed code contains