diff --git a/js/plugins.js b/js/plugins.js
index dc02775..2140d3f 100644
--- a/js/plugins.js
+++ b/js/plugins.js
@@ -281,8 +281,8 @@ plugins.factory('userPlugins', function() {
if (url.indexOf("^https?://fukung.net/v/") != -1) {
url = url.replace(/.*\//, "http://media.fukung.net/imgs/");
} else if (url.match(/^http:\/\/(i\.)?imgur\.com\//i)) {
- // remove protocol specification to load over https if used by g-b
- url = url.replace(/http:/, "https:");
+ // imgur: always use https. avoids mixed content warnings
+ url = url.replace(/^http:/, "https:");
} else if (url.match(/^https:\/\/www\.dropbox\.com\/s\/[a-z0-9]+\//i)) {
// Dropbox requires a get parameter, dl=1
var dbox_url = document.createElement("a");
@@ -340,16 +340,29 @@ plugins.factory('userPlugins', function() {
var videoPlugin = new UrlPlugin('video', function(url) {
if (url.match(/\.(3gp|avi|flv|gifv|mkv|mp4|ogv|webm|wmv)\b/i)) {
if (url.match(/^http:\/\/(i\.)?imgur\.com\//i)) {
- // remove protocol specification to load over https if used by g-b
- url = url.replace(/\.(gifv)\b/i, ".webm");
+ // imgur: always use https. avoids mixed content warnings
+ url = url.replace(/^http:/, "https:");
}
return function() {
- var element = this.getElement();
+ var element = this.getElement(), src;
var velement = angular.element('')
.addClass('embed')
- .attr('width', '560')
- .append(angular.element('')
- .attr('src', url));
+ .attr('width', '560');
+ // imgur doesn't always have webm for gifv so add sources for webm and mp4
+ if (url.match(/^https:\/\/(i\.)?imgur\.com\/.*\.gifv/i)) {
+ src = angular.element('')
+ .attr('src', url.replace(/\.gifv\b/i, ".webm"))
+ .attr('type', 'video/webm');
+ velement.append(src);
+ src = angular.element('')
+ .attr('src', url.replace(/\.gifv\b/i, ".mp4"))
+ .attr('type', 'video/mp4');
+ velement.append(src);
+ } else {
+ src = angular.element('')
+ .attr('src', url);
+ velement.append(src);
+ }
element.innerHTML = velement.prop('outerHTML');
};
}