From: Alan J. Pippin Date: Wed, 14 Oct 2009 04:45:06 +0000 (-0600) Subject: Added support for animoto videos. X-Git-Tag: 1_1_5 X-Git-Url: http://git.pippins.net/embedvideo/.git/%22%22.%24thumbnail.%22/.%24link.?a=commitdiff_plain;h=7ec319c1b7a2ab44287ac3d6ecbd6f2e773533c9;p=embedvideo%2F.git Added support for animoto videos. Added new centerVideo parameter. --- diff --git a/ItemAddEmbedVideo.inc b/ItemAddEmbedVideo.inc index 8049610..544c522 100644 --- a/ItemAddEmbedVideo.inc +++ b/ItemAddEmbedVideo.inc @@ -93,6 +93,7 @@ class ItemAddEmbedVideo extends ItemAddPlugin { $wordwrapSummary = $this->getParameter($ItemAddEmbedVideo, 'wordwrapSummary', "0"); $wordwrapDescription = $this->getParameter($ItemAddEmbedVideo, 'wordwrapDescription', "0"); $allowFullScreen = $this->getParameter($ItemAddEmbedVideo, 'allowFullScreen', "false"); + $centerVideo = $this->getParameter($ItemAddEmbedVideo, 'centerVideo', "false"); /* Print our stored/set Parameters */ if(!strcmp($debugOutput,"true")) { @@ -114,6 +115,7 @@ class ItemAddEmbedVideo extends ItemAddPlugin { print "wordwrapSummary=$wordwrapSummary
\n"; print "wordwrapDescription=$wordwrapDescription
\n"; print "allowFullScreen=$allowFullScreen
\n"; + print "centerVideo=$centerVideo\n"; print "
\n"; } @@ -165,6 +167,9 @@ class ItemAddEmbedVideo extends ItemAddPlugin { /* vimeo */ $vimeoUrlPattern="vimeo.com"; + + /* animoto */ + $animotoUrlPattern="animoto.com"; /* Gallery2 specific paths and variables */ $urlGenerator =& $gallery->getUrlGenerator(); @@ -480,7 +485,6 @@ class ItemAddEmbedVideo extends ItemAddPlugin { ********************************** * Embed a Revver Video ********************************** - * TODO: The autoStart parameter doesn't work with the yahoo video player */ } else if(preg_match("/$revverUrlPattern/",$url)) { @@ -538,7 +542,6 @@ class ItemAddEmbedVideo extends ItemAddPlugin { ********************************** * Embed a DailyMotion Video ********************************** - * TODO: The autoStart parameter doesn't work with the yahoo video player */ } else if(preg_match("/$dailymotionUrlPattern/",$url)) { @@ -828,7 +831,70 @@ class ItemAddEmbedVideo extends ItemAddPlugin { $description.= 'type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always"'; $description.= 'width="'.$width.'" height="'.$height.'">'; $description.= ''; - + + /* + ********************************** + * Embed an Animoto Video + ********************************** + */ + } else if(preg_match("/$animotoUrlPattern/",$url)) { + + /* Make sure we can extract a itemID */ + if(preg_match("/\/play\/(.+)/",$url,$matches)) { + $item_id = $matches[1]; + $item_id=preg_replace("/\/$/","",$item_id); + } else { + return array(GalleryCoreApi::error(ERROR_BAD_PARAMETER,__FILE__,__LINE__, + "Unable to extract item id from url: $url"),null,null); + } + + /* Grab the contents of the webpage used to display the video */ + list ($successfullyCopied, $contents, $response, $headers) = + GalleryCoreApi::fetchWebPage($url, $extraHeaders); + if (!$successfullyCopied) { + return array(GalleryCoreApi::error(ERROR_BAD_PATH,__FILE__,__LINE__, + "Unable to get video information at url: $url - $response"),NULL,NULL); + } + + /* Extract the embed video xml page from the webpage contents */ + if(preg_match('/type="text\/xml\+oembed" href="(.+?)"/', $contents, $matches)) { + $xml_url=$matches[1]; + } else { + return array(GalleryCoreApi::error(ERROR_BAD_PATH,__FILE__,__LINE__, + "Unable to extract xml information from url: $url"),NULL,NULL); + } + + /* Get the xml page contents */ + list ($successfullyCopied, $contents, $response, $headers) = + GalleryCoreApi::fetchWebPage($xml_url, $extraHeaders); + if (!$successfullyCopied) { + return array(GalleryCoreApi::error(ERROR_BAD_PATH,__FILE__,__LINE__, + "Unable to get video information at url: $xml_url - $response"),NULL,NULL); + } + + /* Extract the title from the webpage contents */ + preg_match('/(.+?)<\/title>/i', $contents, $matches); + $title=htmlentities($matches[1], ENT_QUOTES, "UTF-8"); + + /* Extract the thumbnail from the webpage contents */ + preg_match('/<thumbnail_url>(.+?)<\/thumbnail_url>/i', $contents, $matches); + $thumbnail=$matches[1]; + + /* Format the description to hold a reference to the embedded video */ + if(preg_match('/<html>(.+?)<\/html>/ism', $contents, $matches)) { + $description=$matches[1]; + $description=preg_replace("/"/","'",$description); + $description=preg_replace("/</","<",$description); + $description=preg_replace("/>h;/",">",$description); + $description=preg_replace("/\\\\\"/","\"",$description); + if(!strcmp($useRemoteSize,"false")) { + $description=preg_replace("/width=\"\d+\"/","width=\"".$width."\"",$description); + $description=preg_replace("/height=\"\d+\"/","height=\"".$height."\"",$description); + } + } else { + return array(GalleryCoreApi::error(ERROR_BAD_PATH,__FILE__,__LINE__, + "Unable to extract embedded video information from url: $url"),NULL,NULL); + } /* ********************************** * Embed a remote .swf file @@ -1088,6 +1154,11 @@ class ItemAddEmbedVideo extends ItemAddPlugin { /* Tack on the summary to the end of the description */ $description.= "<br>$description_summary"; + + /* Add centering tags to the description if requested */ + if(!strcmp($centerVideo,"true")) { + $description = "<center>" . $description . "</center>"; + } /* General debug output */ if(!strcmp($debugOutput,"true")) { diff --git a/module.inc b/module.inc index 8f589b1..4f91f89 100644 --- a/module.inc +++ b/module.inc @@ -33,7 +33,7 @@ class EmbedVideoModule extends GalleryModule { $this->setId('embedvideo'); $this->setName($gallery->i18n('Embed Video')); $this->setDescription($gallery->i18n('Add embedded videos from the web')); - $this->setVersion('1.1.4'); + $this->setVersion('1.1.5'); $this->setGroup('import', $gallery->i18n('Import')); $this->setCallbacks('getSiteAdminViews'); $this->setRequiredCoreApi(array(7, 3)); diff --git a/templates/EmbedVideoSiteAdmin.tpl b/templates/EmbedVideoSiteAdmin.tpl index f19e2a2..18ce8f6 100644 --- a/templates/EmbedVideoSiteAdmin.tpl +++ b/templates/EmbedVideoSiteAdmin.tpl @@ -160,6 +160,9 @@ <tr class="gbOdd"><td>wordwrapDescription</td><td>0 - N</td> <td>{g->text text="If non-zero, sets the maximum line width when displaying the item's description"}</td></tr> + <tr class="gbEven"><td>centerVideo</td><td>true/false</td> + <td>{g->text text="If set to true, video playback will be centered on the photo page"}</td></tr> + </table> diff --git a/templates/ItemAddEmbedVideo.tpl b/templates/ItemAddEmbedVideo.tpl index 1ea2807..d2633ad 100644 --- a/templates/ItemAddEmbedVideo.tpl +++ b/templates/ItemAddEmbedVideo.tpl @@ -32,6 +32,7 @@ <b>Myspace1:</b> http://vids.myspace.com/index.cfm?fuseaction=vids.individual&VideoID=xxxxxxxx<br> <b>Myspace2:</b> http://myspacetv.com/index.cfm?fuseaction=vids.individual&videoid=xxxxxxxx<br> <b>Vimeo:</b> http://www.vimeo.com/xxxxxx<br> + <b>Animoto:</b> http://www.animoto.com/play/xxxxxxxxxxxxxxxxxxxxxx<br> <b>Generic:</b> Any webpage with an '<object ... <embed ...' style video on its page<br> <br> <b><u>Supported File Types:</u></b><br>