From f720567c446bf1a136c8b5bec303801931f5ae76 Mon Sep 17 00:00:00 2001 From: "Alan J. Pippin" Date: Wed, 28 May 2008 22:01:49 -0600 Subject: [PATCH] Added support for generic sites that have embedded videos on them. Fixed google video thumbnail parsing. --- ItemAddEmbedVideo.inc | 71 ++++++++++++++++++++++++++++++--- templates/ItemAddEmbedVideo.tpl | 1 + 2 files changed, 67 insertions(+), 5 deletions(-) diff --git a/ItemAddEmbedVideo.inc b/ItemAddEmbedVideo.inc index ac7b1cf..b2a4539 100644 --- a/ItemAddEmbedVideo.inc +++ b/ItemAddEmbedVideo.inc @@ -71,6 +71,7 @@ class ItemAddEmbedVideo extends ItemAddPlugin { global $width, $height, $externalFlvPlayer, $externalFlvPlayerVars; global $flvThumbnail, $useRemoteSize, $autoStart; global $watermarkVideos, $watermarkImage, $watermarkAlignment; + global $unsupported_url; /* Find out what value our parameters should have by looking to see if they * are defined in our overrides section or default section. If they are not @@ -169,6 +170,9 @@ class ItemAddEmbedVideo extends ItemAddPlugin { $gallery2_flv_thumbnail = "modules/embedvideo/images/G2video_thumbnail.jpg"; $gallery2_video_watermark = "modules/embedvideo/images/G2video_watermark1.png"; $gallery2_flv_player = "modules/flashvideo/lib/G2flv.swf"; + + /* Unsupported URLs */ + $unsupported_url=0; /* Store the passed URL in a shorter local variable */ $url = $form['webPage']['URL']; @@ -194,7 +198,7 @@ class ItemAddEmbedVideo extends ItemAddPlugin { /* If extra params were given, handle them here */ if(strcmp($extra_params,"")) { - /* Handle the HD format information */ + /* Handle the high quality format information */ if(preg_match("/fmt=(\d+)/",$extra_params,$matches)) { $extra_params="&ap=%2526fmt%3D".$matches[1]; } @@ -325,10 +329,11 @@ class ItemAddEmbedVideo extends ItemAddPlugin { } /* Extract the thumbnail URL from the webpage contents */ - preg_match('/"; + + /* Extract the summary from the webpage contents */ + $summary="Unknown"; + if(preg_match('/(.+?)<\/title>/i', $contents, $matches)) { + $title=$matches[1]; + } + + /* + * Set the thumbnail to some generic jpg image, + * since we can't extract it from a generic website. + * If no parameter is set, set it to a default value. + */ + if(preg_match("/\w+/", $flvThumbnail)) { + $thumbnail = $flvThumbnail; + } else { + $thumbnail = $gallery2_url.$gallery2_flv_thumbnail; + } + + /* Format the description to hold a reference to the embedded video */ + if(preg_match('/()/', $contents, $matches)) { + $description=$matches[1]; + if(!strcmp($useRemoteSize,"false")) { + $description=preg_replace("/width=\"\d+\"/","width=\"".$width."\"",$description); + $description=preg_replace("/height=\"\d+\"/","height=\"".$height."\"",$description); + } + $description=preg_replace("/src=\"\//","src=\"".$site."\/",$description); + } else { + $unsupported_url=1; + } + } + /* ********************************** * Unsupported URL to embed ********************************** */ - } else { + if($unsupported_url == 1) { return array(GalleryCoreApi::error(ERROR_UNSUPPORTED_FILE_TYPE,__FILE__,__LINE__, "Unable to embed video from: $url"),null,null); } diff --git a/templates/ItemAddEmbedVideo.tpl b/templates/ItemAddEmbedVideo.tpl index 4bb80b3..a4660a5 100644 --- a/templates/ItemAddEmbedVideo.tpl +++ b/templates/ItemAddEmbedVideo.tpl @@ -31,6 +31,7 @@ Myspace1: http://vids.myspace.com/index.cfm?fuseaction=vids.individual&VideoID=xxxxxxxx
Myspace2: http://myspacetv.com/index.cfm?fuseaction=vids.individual&videoid=xxxxxxxx
Vimeo: http://www.vimeo.com/xxxxxx
+ Generic: Any webpage with an '<object ... <embed ...' style video on its page

Supported File Types:
FlashVideo (.flv): http://aaa.bbb.ccc/video.flv
-- 2.34.1