From 317f8f8f0651488f226b5280a8f036c7c135c639 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isma=C3=ABl=20Bouya?= Date: Mon, 4 Dec 2017 17:54:04 +0100 Subject: Add oembed --- release/plugins/oembed/LICENSE.md | 21 +++ release/plugins/oembed/README.md | 201 +++++++++++++++++++++++ release/plugins/oembed/libs/jquery.oembed.min.js | 71 ++++++++ 3 files changed, 293 insertions(+) create mode 100644 release/plugins/oembed/LICENSE.md create mode 100644 release/plugins/oembed/README.md create mode 100644 release/plugins/oembed/libs/jquery.oembed.min.js (limited to 'release/plugins/oembed') diff --git a/release/plugins/oembed/LICENSE.md b/release/plugins/oembed/LICENSE.md new file mode 100644 index 0000000..be0064f --- /dev/null +++ b/release/plugins/oembed/LICENSE.md @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Ingo Herbote + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/release/plugins/oembed/README.md b/release/plugins/oembed/README.md new file mode 100644 index 0000000..64c729c --- /dev/null +++ b/release/plugins/oembed/README.md @@ -0,0 +1,201 @@ +CKEditor-oEmbed-Plugin +====================== + +oEmbed Plugin for CKEditor + +This Plugin allows to insert embedded content (such as photos, videos, audio, and other rich media) via the OEmbed API. You only have to provide the url to the site (It works also when the url is shortened) you want to embed and the plugin does the rest. + +This Plugin uses the jquery-oembed-all Plugin located at https://github.com/starfishmod/jquery-oembed-all. + +####Demo + +http://w8tcha.github.com/CKEditor-oEmbed-Plugin/ + +####Currently Supported Sites... + +###Video +* Youtube - oembed - YQL +* Blip - oEmbed +* Hulu - oEmbed +* Vimeo - oEmbed +* National film board of Canada - oEmbed +* Qik - oEmbed +* Dotsub - oEmbed +* Clikthrough - oEmbed +* Kino Map - oEmbed +* Funny Or Die - Embedded +* College Humour - Embedded +* Metacafe - Embedded +* embedr - Embedded +* 5min - oEmbed is XML only - using YQL to translate it +* ustream.tv - oEmbed is not JSONP enabled - using YQL to translate it +* viddler - OGP +* twitvid - Embedded +* bambuser - Embedded +* xtranormal - Embedded +* Gametrailers - Embedded +* Vzarr - Embedded +* VHX - oembed +* bambuser - oembed +* dailymotion.com - oembed +* animoto - oembed +* justin.tv - YQL JSON +* livestream - OGP +* scivee - embedded +* veoh - embedded +* minoto-video - oembed using YQL +* TrailerAddict - OGP +* vodpod - oembed YQL - broken as the oembed has absolute positioning which breaks the display +* fora.tv -OGP YQL +* TED - OGP YQL +* Aniboom - embedded +* Comedy Central - OGP +* snotr - embedded +* zapiks - OGP +* youku - embedded +* wistia - Oembed + +###Audio +* Soundcloud - oEmbed +* HuffDuffer - oEmbed +* BandCamp - YQL and Embedded +* podomatic - OGP +* rdio.com - oEmbed +* hark.com - OGP +* chirb.it - YQL and oembed +* official.fm - YQL and oembed +* mixcloud - YQL and oembed +* shoudio - oembed +* audioboo.fm - OGP +* Spotify - OGP YQL + +###Photo +* flickr - oEmbed +* photobucket - oEmbed +* instagram - oEmbed +* yfrog - oEmbed +* 23HQ - oEmbed +* Smugmug - oEmbed +* twitpic - OGP YQL +* 500px.com - OGP +* visual.ly - YQL Lookup +* img.ly - Thumbnail view +* imgur.com - Thumbnail view +* twitgoo.com - Thumbnail view +* gravatar - Thumbnail view when using mailto +* pintrest - YQL - Embedded view of a sort. +* circuitlab - image view +* skitch - YQL oembed +* graphic.ly - OGP +* dribble - jsonp lookup +* Lockerz - YQL lookup +* AsciiArtFarts - YQL Lookup +* lego cusoo - OGP over YQL +* plannary - OGP over YQL +* propic - OGP +* avairy.com - OGP +* lomography - ogp +* weheartit - ogp +* glogster - ogp +* chart.ly - embedded +* twitrpix - OGP +* chictopia - OGP + +###Rich +* Meetup - oEmbed +* gigapans - Embedded +* Slideshare - oEmbed +* ebay - Embedded +* scribd - Embedded +* screenr - Embedded +* tumblr- JSONP lookup +* imdb - JSONP lookup via imdbapi.com +* wikipedia- JSONP lookup +* github- JSONP lookup (CSS) +* eventful - OGP +* myspace - OGP +* live Journal - JSONP Lookup (CSS) +* wordpress - oEmbed (wordpress.com, wp.me, blogs.cnn.com, techcrunch.com). I can add other wordpress sites as well. +* circuitbee -Embedded +* stack overflow - JSONP Lookup (CSS) +* Facebook - JSONP Lookup (CSS) +* Pastebin - Embedded +* Pastie - YQL lookup +* kickstarter - Embedded +* issuu - OGP +* reelapp.com - Embedded +* Etsy - OGP over YQL +* Amazon - Embedded - Requires Affiliate code +* linkedin - Embedded IFRAME - found a link that works :) +* Lanyrd - YQL (CSS) +* twitter - Oembed - status only - but that is ok I think +* github gist - oembed +* speakerdeck - yql oembed +* dipity - yql oembed +* dailymile - oembed +* deviantart - oembed +* Roomshare Japan - oembed +* mobypictures - oembed +* prezi - embedded +* popplet - embedded +* authorstream - OGP +* googlecalendar - Iframe +* cacoo - oembed +* pearltrees - embedded +* urtak - oembed - is broken in iframe return atm -seems to be an embed.ly issue?? +* jotform - embedded +* Urban Dictionary - YQL lookup +* Ars Technica - YQL Lookup +* Eventbrite - OGP YQL +* last.fm OGP YQL +* Rotten Tomatoes - OGP YQL +* iFixit - OGP +* qwiki - OGP +* brighttalk - Meta info +* tinychat - OGP +* tourwrist - embedded +* bnter - OGP +* bigthink - OGP +* wirewax - OGP +* whosay - OGP +* timetoast - embedded +* tripline - OGP +* jsfiddle - embedded + + +####License + +Licensed under the terms of the MIT License. + +####Dependencies +This Plugin requires the following plugins to work: Widget, Dialog. + +####Installation + + 1. Before you can use the plugin you also need to download & install the widget plugin, if you have it not installed. http://ckeditor.com/addon/widget + 2. Extract the contents of the file into the "plugins" folder of CKEditor. + 3. In the CKEditor configuration file (config.js) add the following code: + +````js +config.extraPlugins = 'oembed,widget'; +```` + +2a. Additionally you can also set the default values vor the Max. Width/Height Values + +````js +config.oembed_maxWidth = '560'; +config.oembed_maxHeight = '315'; +```` + +and also you can define an css class for the embeded content wrapper (div), by default there is no Class defined + +````js +config.oembed_WrapperClass = 'embededContent'; +```` + + +3. and also include the plugin in the toolbar + +````js +toolbar :[ ... ['oembed']...] +```` diff --git a/release/plugins/oembed/libs/jquery.oembed.min.js b/release/plugins/oembed/libs/jquery.oembed.min.js new file mode 100644 index 0000000..5a64c0d --- /dev/null +++ b/release/plugins/oembed/libs/jquery.oembed.min.js @@ -0,0 +1,71 @@ +(function(b){function m(){return"file:"===window.location.protocol?"http://":"//"}function o(a,b){return b=b?b:"",a?o(--a,"0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz".charAt(Math.floor(60*Math.random()))+b):b}function q(a,b){var h=a.apiendpoint,d="",c,h=h+(0>=h.indexOf("?")?"?":"&"),h=h.replace("#","%23");null!==a.maxWidth&&("undefined"==typeof a.params.maxwidth||null===a.params.maxwidth)&&(a.params.maxwidth=a.maxWidth);null!==a.maxHeight&&("undefined"==typeof a.params.maxheight|| +null===a.params.maxheight)&&(a.params.maxheight=a.maxHeight);for(c in a.params)c!=a.callbackparameter&&null!==a.params[c]&&(d+="&"+escape(c)+"="+a.params[c]);return h+="format="+a.format+"&url="+escape(b)+d,"json"!=a.dataType&&(h+="&"+a.callbackparameter+"=?"),h}function n(a,l,h){b("#jqoembeddata").data(l,a.code);j.beforeEmbed.call(h,a);j.onEmbed.call(h,a);j.afterEmbed.call(h,a)}function e(a,l,h){var d,c,f;if(void 0!=b("#jqoembeddata").data(l)&&"iframe"!=h.embedtag.tag)c={code:b("#jqoembeddata").data(l)}, +n(c,l,a);else if(h.yql){c=h.yql.from||"htmlstring";var g=h.yql.url?h.yql.url(l):l;f="SELECT * FROM "+c+' WHERE url="'+g+'" and '+(/html/.test(c)?"xpath":"itemPath")+"='"+(h.yql.xpath||"/")+"'";"html"==c&&(f+=" and compat='html5'");f=b.extend({url:m()+"query.yahooapis.com/v1/public/yql",dataType:"jsonp",data:{q:f,format:"json",env:"store://datatables.org/alltableswithkeys",callback:"?"},success:function(c){var d,f,e,k,j;if(h.yql.xpath&&"//meta|//title|//link"==h.yql.xpath){d={};null==c.query.results&& +(c.query.results={meta:[]});e=0;for(k=c.query.results.meta.length;ej.maxWidth&&(r=j.maxWidth/d,s=j.maxWidth,t=e*r,e*=r,d*=r);e>j.maxHeight&&(r=j.maxHeight/e,t=j.maxHeight,s=d*r,d*=r);e=t;d=s}else e=j.maxHeight,d=j.maxWidth;d=b("<"+f+"/>").attr("src",p).attr("width",d).attr("height",e).attr("allowfullscreen", +h.embedtag.allowfullscreen||"true").attr("allowscriptaccess",h.embedtag.allowfullscreen||"always").css("max-height",j.maxHeight||"auto").css("max-width",j.maxWidth||"auto");"embed"==f&&d.attr("type",h.embedtag.type||"application/x-shockwave-flash").attr("flashvars",l.replace(h.templateRegex,c));"iframe"==f&&d.attr("scrolling",h.embedtag.scrolling||"no").attr("frameborder",h.embedtag.frameborder||"0");c={code:d};n(c,l,a)}else h.apiendpoint?(h.apikey&&(h.apiendpoint=h.apiendpoint.replace("_APIKEY_", +j.apikeys[h.name])),f=b.extend({url:l.replace(h.templateRegex,h.apiendpoint),dataType:"jsonp",success:function(c){var d=b.extend({},c);d.code=h.templateData(c);n(d,l,a)},error:function(){j.onError.call(a,l,h)}},j.ajaxOptions||{}),b.ajax(f)):(c={code:l.replace(h.templateRegex,h.template)},n(c,l,a));else c=q(h,l),f=b.extend({url:c,dataType:h.dataType||"jsonp",success:function(c){c=b.extend({},c);switch(c.type){case "file":case "photo":c.code=b.fn.oembed.getPhotoCode(l,c);break;case "link":c.code="Flickr"== +c.provider_name?b.fn.oembed.getPhotoCode(l,c):b.fn.oembed.getGenericCode(l,c);break;case "video":case "rich":c.code=b.fn.oembed.getRichCode(l,c);break;default:c.code=b.fn.oembed.getGenericCode(l,c)}n(c,l,a)},error:function(){j.onError.call(a,l,h)}},j.ajaxOptions||{}),b.ajax(f)}function p(a){if(null===a)return null;var b,e={};for(b in a)null!==b&&(e[b.toLowerCase()]=a[b]);return e}b.fn.oembed=function(a,l,h){j=b.extend(!0,b.fn.oembed.defaults,l);var d="0rz.tw 1link.in 1url.com 2.gp 2big.at 2tu.us 3.ly 307.to 4ms.me 4sq.com 4url.cc 6url.com 7.ly a.gg a.nf aa.cx abcurl.net ad.vu adf.ly adjix.com afx.cc all.fuseurl.com alturl.com amzn.to ar.gy arst.ch atu.ca azc.cc b23.ru b2l.me bacn.me bcool.bz binged.it bit.ly bizj.us bloat.me bravo.ly bsa.ly budurl.com canurl.com chilp.it chzb.gr cl.lk cl.ly clck.ru cli.gs cliccami.info clickthru.ca clop.in conta.cc cort.as cot.ag crks.me ctvr.us cutt.us dai.ly decenturl.com dfl8.me digbig.com http://digg.com/[^/]+$ disq.us dld.bz dlvr.it do.my doiop.com dopen.us easyuri.com easyurl.net eepurl.com eweri.com fa.by fav.me fb.me fbshare.me ff.im fff.to fire.to firsturl.de firsturl.net flic.kr flq.us fly2.ws fon.gs freak.to fuseurl.com fuzzy.to fwd4.me fwib.net g.ro.lt gizmo.do gl.am go.9nl.com go.ign.com go.usa.gov goo.gl goshrink.com gurl.es hex.io hiderefer.com hmm.ph href.in hsblinks.com htxt.it huff.to hulu.com hurl.me hurl.ws icanhaz.com idek.net ilix.in is.gd its.my ix.lt j.mp jijr.com kl.am klck.me korta.nu krunchd.com l9k.net lat.ms liip.to liltext.com linkbee.com linkbun.ch liurl.cn ln-s.net ln-s.ru lnk.gd lnk.ms lnkd.in lnkurl.com lru.jp lt.tl lurl.no macte.ch mash.to merky.de migre.me miniurl.com minurl.fr mke.me moby.to moourl.com mrte.ch myloc.me myurl.in n.pr nbc.co nblo.gs nn.nf not.my notlong.com nsfw.in nutshellurl.com nxy.in nyti.ms o-x.fr oc1.us om.ly omf.gd omoikane.net on.cnn.com on.mktw.net onforb.es orz.se ow.ly ping.fm pli.gs pnt.me politi.co post.ly pp.gg profile.to ptiturl.com pub.vitrue.com qlnk.net qte.me qu.tc qy.fi r.ebay.com r.im rb6.me read.bi readthis.ca reallytinyurl.com redir.ec redirects.ca redirx.com retwt.me ri.ms rickroll.it riz.gd rt.nu ru.ly rubyurl.com rurl.org rww.tw s4c.in s7y.us safe.mn sameurl.com sdut.us shar.es shink.de shorl.com short.ie short.to shortlinks.co.uk shorturl.com shout.to show.my shrinkify.com shrinkr.com shrt.fr shrt.st shrten.com shrunkin.com simurl.com slate.me smallr.com smsh.me smurl.name sn.im snipr.com snipurl.com snurl.com sp2.ro spedr.com srnk.net srs.li starturl.com stks.co su.pr surl.co.uk surl.hu t.cn t.co t.lh.com ta.gd tbd.ly tcrn.ch tgr.me tgr.ph tighturl.com tiniuri.com tiny.cc tiny.ly tiny.pl tinylink.in tinyuri.ca tinyurl.com tk. tl.gd tmi.me tnij.org tnw.to tny.com to.ly togoto.us totc.us toysr.us tpm.ly tr.im tra.kz trunc.it twhub.com twirl.at twitclicks.com twitterurl.net twitterurl.org twiturl.de twurl.cc twurl.nl u.mavrev.com u.nu u76.org ub0.cc ulu.lu updating.me ur1.ca url.az url.co.uk url.ie url360.me url4.eu urlborg.com urlbrief.com urlcover.com urlcut.com urlenco.de urli.nl urls.im urlshorteningservicefortwitter.com urlx.ie urlzen.com usat.ly use.my vb.ly vevo.ly vgn.am vl.am vm.lc w55.de wapo.st wapurl.co.uk wipi.es wp.me x.vu xr.com xrl.in xrl.us xurl.es xurl.jp y.ahoo.it yatuc.com ye.pe yep.it yfrog.com yhoo.it yiyd.com youtu.be yuarel.com z0p.de zi.ma zi.mu zipmyurl.com zud.me zurl.ws zz.gd zzang.kr ›.ws ✩.ws ✿.ws ❥.ws ➔.ws ➞.ws ➡.ws ➨.ws ➯.ws ➹.ws ➽.ws".split(" "); +return 0===b("#jqoembeddata").length&&b('').appendTo("body"),this.each(function(){var c=b(this),f=a&&(!a.indexOf("http://")||!a.indexOf("https://"))?a:c.attr("href"),g,l,m,n,o;if(h?j.onEmbed=h:j.onEmbed||(j.onEmbed=function(a){b.fn.oembed.insertCode(this,j.embedMethod,a)}),null!==f&&void 0!==f){l=0;for(m=d.length;l');l=a.parent();j.includeHandle&&b('').insertBefore(a).click(function(){var a= +encodeURIComponent(b(this).text());b(this).html("%E2%86%91"==a?"↓":"↑");b(this).parent().children().last().toggle()});l.append("
");try{e.code.clone().appendTo(l)}catch(d){l.append(e.code)}}};b.fn.oembed.getPhotoCode=function(a,b){var e,d=b.title?b.title:"",c;return d+=b.author_name?" - "+b.author_name:"",d+=b.provider_name?" - "+b.provider_name:"",b.url?e='
'+d+'
':b.thumbnail_url?(c=b.thumbnail_url.replace("_s", +"_b"),e='
'+d+'
'):e="Flickr"==b.provider_name?'

"+a+"

":"
Error loading this picture
",e};b.fn.oembed.getRichCode=function(a,b){return b.html};b.fn.oembed.getGenericCode=function(a,b){var e=''+(null!==b.title?b.title:a)+"";return b.html&&(e+="
"+b.html+"
"),e};b.fn.oembed.getOEmbedProvider=function(a){for(var e,h,d,c=0;c$/, +"$1")||""}}:{from:"json",apiendpoint:this.apiendpoint,url:function(a){return this.apiendpoint+"?format=json&url="+a},datareturn:function(a){var c,d,e;if("video"!=a.json.type&&(a.json.url||a.json.thumbnail_url)&&!a.json.html.indexOf("iframe"))return'';if(a.json.html.indexOf("iframe")){a.json.html.indexOf("allowfullscreen>")&&(a.json.html=a.json.html.replace("allowfullscreen>",'allowfullscreen="false">'));var a=b.parseHTML(a.json.html),f=a[0].width, +l=a[0].height;return j.maxHeight&&j.maxWidth&&(j.useResponsiveResize?(d=f,e=l,f>j.maxWidth&&(c=j.maxWidth/f,d=j.maxWidth,e=l*c,l*=c,f*=c),l>j.maxHeight&&(c=j.maxHeight/l,e=j.maxHeight,d=f*c),l=e,f=d):(l=j.maxHeight,f=j.maxWidth)),a[0].width=f,a[0].height=l,a[0].outerHTML}return a.json.html||""}},this.apiendpoint=null);for(var f in c)this[f]=c[f];this.format=this.format||"json";this.callbackparameter=this.callbackparameter||"callback";this.embedtag=this.embedtag||{tag:""}};b.fn.updateOEmbedProvider= +function(a,e,h,d,c){for(var f,g=0;g':!1}}}),new b.fn.oembed.OEmbedProvider("deviantart","photo",["deviantart.com/.+","fav.me/.+","deviantart.com/.+"],"http://backend.deviantart.com/oembed",{format:"jsonp"}),new b.fn.oembed.OEmbedProvider("skitch", +"photo",["skitch.com/.+"],null,{yql:{xpath:"json",from:"json",url:function(a){return"http://skitch.com/oembed/?format=json&url="+a},datareturn:function(a){return b.fn.oembed.getPhotoCode(a.json.url,a.json)}}}),new b.fn.oembed.OEmbedProvider("mobypicture","photo",["mobypicture.com/user/.+/view/.+","moby.to/.+"],"http://api.mobypicture.com/oEmbed"),new b.fn.oembed.OEmbedProvider("flickr","photo",["flickr\\.com/photos/.+"],"http://flickr.com/services/oembed",{callbackparameter:"jsoncallback"}),new b.fn.oembed.OEmbedProvider("photobucket", +"photo",["photobucket\\.com/(albums|groups)/.+"],m()+"photobucket.com/oembed/"),new b.fn.oembed.OEmbedProvider("instagram","photo",["instagr\\.?am(\\.com)?/.+"],m()+"api.instagram.com/oembed"),new b.fn.oembed.OEmbedProvider("SmugMug","photo",["smugmug.com/[-.\\w@]+/.+"],"http://api.smugmug.com/services/oembed/"),new b.fn.oembed.OEmbedProvider("dribbble","photo",["dribbble.com/shots/.+"],"http://api.dribbble.com/shots/$1?callback=?",{templateRegex:/.*shots\/([\d]+).*/,templateData:function(a){return a.image_teaser_url? +'':!1}}),new b.fn.oembed.OEmbedProvider("chart.ly","photo",["chart\\.ly/[a-z0-9]{6,8}"],"http://chart.ly/uploads/large_$1.png",{templateRegex:/.*ly\/([^\/]+).*/,embedtag:{tag:"img"},nocache:1}),new b.fn.oembed.OEmbedProvider("circuitlab","photo",["circuitlab.com/circuit/.+"],"https://www.circuitlab.com/circuit/$1/screenshot/540x405/",{templateRegex:/.*circuit\/([^\/]+).*/,embedtag:{tag:"img"},nocache:1}),new b.fn.oembed.OEmbedProvider("23hq","photo",["23hq.com/[-.\\w@]+/photo/.+"], +"http://www.23hq.com/23/oembed",{useYQL:"json"}),new b.fn.oembed.OEmbedProvider("img.ly","photo",["img\\.ly/.+"],"http://img.ly/show/thumb/$1",{templateRegex:/.*ly\/([^\/]+).*/,embedtag:{tag:"img"},nocache:1}),new b.fn.oembed.OEmbedProvider("twitgoo.com","photo",["twitgoo\\.com/.+"],"http://twitgoo.com/show/thumb/$1",{templateRegex:/.*com\/([^\/]+).*/,embedtag:{tag:"img"},nocache:1}),new b.fn.oembed.OEmbedProvider("imgur.com","photo",["imgur\\.com/gallery/.+"],m()+"imgur.com/$1l.jpg",{templateRegex:/.*gallery\/([^\/]+).*/, +embedtag:{tag:"img"},nocache:1}),new b.fn.oembed.OEmbedProvider("visual.ly","rich",["visual\\.ly/.+"],null,{yql:{xpath:"//a[@id=\\'gc_article_graphic_image\\']/img",from:"htmlstring"}}),new b.fn.oembed.OEmbedProvider("gravtar","photo",["mailto:.+"],null,{templateRegex:/mailto:([^\/]+).*/,template:function(a,b){return'on Gravtar'}}),new b.fn.oembed.OEmbedProvider("twitter","rich",["twitter.com/.+"],"https://api.twitter.com/1/statuses/oembed.json?id="), +new b.fn.oembed.OEmbedProvider("gmep","rich",["gmep.imeducate.com/.*","gmep.org/.*"],"http://gmep.org/oembed.json"),new b.fn.oembed.OEmbedProvider("urtak","rich",["urtak.com/(u|clr)/.+"],"http://oembed.urtak.com/1/oembed"),new b.fn.oembed.OEmbedProvider("cacoo","rich",["cacoo.com/.+"],"http://cacoo.com/oembed.json"),new b.fn.oembed.OEmbedProvider("dailymile","rich",["dailymile.com/people/.*/entries/.*"],"http://api.dailymile.com/oembed"),new b.fn.oembed.OEmbedProvider("dipity","rich",["dipity.com/timeline/.+"], +"http://www.dipity.com/oembed/timeline/",{useYQL:"json"}),new b.fn.oembed.OEmbedProvider("sketchfab","rich",["sketchfab.com/show/.+"],"http://sketchfab.com/oembed",{useYQL:"json"}),new b.fn.oembed.OEmbedProvider("speakerdeck","rich",["speakerdeck.com/.+"],"http://speakerdeck.com/oembed.json",{useYQL:"json"}),new b.fn.oembed.OEmbedProvider("popplet","rich",["popplet.com/app/.*"],"http://popplet.com/app/Popplet_Alpha.swf?page_id=$1&em=1",{templateRegex:/.*#\/([^\/]+).*/,embedtag:{width:460,height:460}}), +new b.fn.oembed.OEmbedProvider("pearltrees","rich",["pearltrees.com/.*"],"http://cdn.pearltrees.com/s/embed/getApp?",{templateRegex:/.*N-f=1_(\d+).*N-p=(\d+).*/,embedtag:{width:460,height:460,flashvars:"lang=en_US&embedId=pt-embed-$1-693&treeId=$1&pearlId=$2&treeTitle=Diagrams%2FVisualization&site=www.pearltrees.com%2FF"}}),new b.fn.oembed.OEmbedProvider("prezi","rich",["prezi.com/.*"],"http://prezi.com/bin/preziloader.swf?",{templateRegex:/.*com\/([^\/]+)\/.*/,embedtag:{width:550, +height:400,flashvars:"prezi_id=$1&lock_to_path=0&color=ffffff&autoplay=no&autohide_ctrls=0"}}),new b.fn.oembed.OEmbedProvider("tourwrist","rich",["tourwrist.com/tours/.+"],null,{templateRegex:/.*tours.([\d]+).*/,template:function(a,b){return setTimeout(function(){loadEmbeds&&loadEmbeds()},2E3),"