-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathfoojitsu.vid.min.js
More file actions
8 lines (8 loc) · 5.23 KB
/
foojitsu.vid.min.js
File metadata and controls
8 lines (8 loc) · 5.23 KB
1
2
3
4
5
6
7
8
/*!
* FooJitsu.vid - A plugin to retrieve additional video information from supported API's.
* @version 1.0.0
* @link https://github.com/fooplugins/foojitsu.vid
* @copyright FooPlugins 2016
* @license Released under the MIT license.
*/
!function(a){a.vid=function(b,c){return(b instanceof a.Video?b:new a.Video(b,c)).fetch()},a.vid.defaults={autoPlay:!1,mimeTypes:{"video/mp4":/\.mp4/i,"video/webm":/\.webm/i,"video/wmv":/\.wmv/i,"video/ogg":/\.ogv/i},mimeTypeGroup:{custom:["video/mp4","video/wmv","video/ogg","video/webm"],ie:["video/mp4","video/wmv"],other:["video/mp4","video/ogg","video/webm"]}},a.vid.config=function(b){a.extend(!0,a.vid.defaults,b)},a.vid.registerMimeType=function(b,c){a.is.string(b)&&(c instanceof RegExp||a.is.hash(c)&&c.regex instanceof RegExp)?a.vid.defaults.mimeTypes[b]=c:console.log("Failed to register mime type: ",b,c)},a.Video=function(b,c){return this instanceof a.Video?(this.options={},this.url=null,this.id="",this.api="",this.mimeType="",this.mimeTypeOptions=null,this.custom=!1,this.supported=!1,this.fetchable=!1,this.fetched=!1,this.title="",this.description="",this.credits="",this.thumbSmall="",this.thumbLarge="",void this.init(b,c)):new a.Video(b,c)},a.Video.prototype.init=function(b,c){if(a.is.string(b)&&""!==b){this.url=new a.Url(b),this.options=a.extend(!0,{},a.vid.defaults,c);var d=this.url.pathname.match(/.*\/(.*)$/);this.id=d&&d.length>=2?d[1]:null,this.parseMimeType(b)}},a.Video.prototype.parseMimeType=function(b){for(var c in this.options.mimeTypes)if(this.options.mimeTypes.hasOwnProperty(c)){var d=this.options.mimeTypes[c],e=d instanceof RegExp,f=a.is.hash(d),g=e?d:d.regex;if(g instanceof RegExp&&g.test(b)&&(f&&a.is.fn(d.enabled)?d.enabled.call(d,this):!0)){this.mimeType=c,this.mimeTypeOptions=d,this.custom=-1!==a.inArray(c,this.options.mimeTypeGroup.custom),this.supported=-1!==a.inArray(c,a.browser.isIE?this.options.mimeTypeGroup.ie:this.options.mimeTypeGroup.other),f&&a.is.fn(d.init)&&(d.init.call(d,this),this.supported=!0),this.fetchable=""!==this.api&&f&&a.is.fn(d.parse);break}}},a.Video.prototype.fetch=function(){var b=this;return a.Deferred(function(c){return b.fetched?void c.resolve(b):b.fetchable?void a.ajax({url:b.api,dataType:"jsonp"}).then(function(a){b.mimeTypeOptions.parse.call(b.mimeTypeOptions,a,b),b.fetched=!0,c.resolve(b)},function(a){b.fetched=!0,c.reject(a,b)}):void c.reject(Error("No additional information can be retrieved for this video."),b)})}}(FooJitsu),function(a){a.vid.registerMimeType("video/daily",{regex:/(?:dailymotion\.com(?:\/|\/embed\/)video\/|dai\.ly\/)(.+?)(?=_|&|\/|\?|$)/i,init:function(a){a.id=a.url.href.match(this.regex)[1],a.embed=a.url.protocol+"//www.dailymotion.com/embed/video/"+a.id+"?wmode=opaque&info=0&logo=0&related=0"+(a.options.autoPlay?"&autoplay=1":""),a.api="https://www.dailymotion.com/services/oembed?url=https://dai.ly/"+a.id},parse:function(a,b){a.title&&a.author_name&&a.thumbnail_url&&(b.title=a.title,b.description=a.description,b.credits=a.author_name,b.thumbSmall=a.thumbnail_url,b.thumbLarge=a.thumbnail_url)}})}(FooJitsu),function(a){a.vid.registerMimeType("video/vimeo",{regex:/(player.)?vimeo\.com/i,init:function(a){a.id=a.url.pathname.substr(a.url.pathname.lastIndexOf("/")+1),a.embed=a.url.protocol+"//player.vimeo.com/video/"+a.id+"?badge=0&portrait=0"+(a.options.autoPlay?"&autoplay=1":""),a.api="https://vimeo.com/api/v2/video/"+a.id+".json"},parse:function(a,b){a.length&&(b.title=a[0].title,b.description=a[0].description,b.credits=a[0].user_name,b.thumbSmall=a[0].thumbnail_small,b.thumbLarge=a[0].thumbnail_large)}})}(FooJitsu),function(a){a.vid.registerMimeType("video/wistia",{regex:/wistia\.(?:com|net)\/(?:medias|embed\/(?:iframe|playlists))\/(.+?)(?=&|\/|\?|$)/i,init:function(a){a.id=a.url.href.match(this.regex)[1];var b=/\/playlists\//i.test(a.url.href);a.embed=a.url.protocol+"//fast.wistia.net/embed/"+(b?"playlists":"iframe")+"/"+a.id+"?theme="+(a.options.autoPlay?b?"&media_0_0[autoPlay]=1":"$autoPlay=1":""),a.api="https://fast.wistia.net/oembed.json?url="+a.url.href},parse:function(b,c){if(b.title&&b.provider_name&&b.thumbnail_url){var d=new a.Url(b.thumbnail_url);c.title=b.title,c.credits=b.provider_name,c.thumbSmall=d.param("image_crop_resized","100x60").toString(),c.thumbLarge=d.param("image_crop_resized","800x480").toString()}}})}(FooJitsu),function(a){a.vid.config({youTubeKey:null}),a.vid.registerMimeType("video/youtube",{regex:/(?:embed\/|youtu\.be\/|(?:\?|&)v=)(.+?)(?=&|\/|\?|$)/i,enabled:function(a){return null!==a.options.youTubeKey},init:function(a){a.id=a.url.href.match(this.regex)[1],a.embed=a.url.protocol+"//www.youtube.com/embed/"+a.id+"?modestbranding=1&rel=0&wmode=transparent&showinfo=0"+(a.options.autoPlay?"&autoplay=1":""),a.api="https://www.googleapis.com/youtube/v3/videos?id="+a.id+"&fields=items(snippet(title,description,channelTitle,thumbnails))&part=snippet&key="+a.options.youTubeKey},parse:function(a,b){if(a.items&&a.items.length){var c=a.items[0].snippet;b.title=c.title,b.description=c.description,b.credits=c.channelTitle,b.thumbSmall=this.thumb(c),b.thumbLarge=this.thumb(c,!0)}},thumb_sizes:["default","medium","high","standard","maxres"],thumb:function(a,b){var c=JSON.parse(JSON.stringify(this.thumb_sizes)),d=a.thumbnails;b&&c.reverse();for(var e=0,f=c.length;f>e;e++)if(d.hasOwnProperty(c[e]))return d[c[e]].url;return""}})}(FooJitsu);