X-Git-Url: http://git.pippins.net/embedvideo/.git/?a=blobdiff_plain;f=ItemAddEmbedVideo.inc;h=0e277a490427e598fda49ef8a32c2473ca12118b;hb=64b39254630e685dc3a8b6c9f2b8bda3b27e88f6;hp=7103c3715ecc234aced11a029baa43ac49b8ac4e;hpb=eb0134debd4c65ec664ca25e07b9f16edb839842;p=embedvideo%2F.git diff --git a/ItemAddEmbedVideo.inc b/ItemAddEmbedVideo.inc index 7103c37..0e277a4 100644 --- a/ItemAddEmbedVideo.inc +++ b/ItemAddEmbedVideo.inc @@ -161,6 +161,9 @@ class ItemAddEmbedVideo extends ItemAddPlugin { $myspaceUrlPattern="vids.myspace.com"; $myspaceUrlPattern2="myspacetv.com"; $myspaceThumbnailUrl="http://mediaservices.myspace.com/services/rss.ashx?type=video&videoID="; + + /* vimeo */ + $vimeoUrlPattern="www.vimeo.com"; /* Gallery2 specific paths and variables */ $urlGenerator =& $gallery->getUrlGenerator(); @@ -178,14 +181,33 @@ class ItemAddEmbedVideo extends ItemAddPlugin { ***************************** */ if(preg_match("/$youtubeUrlPattern/",$url)) { - + /* Make sure we can find a video_id in the URL */ - if(preg_match("/watch\?v=(.*)/",$url,$matches)) { + $extra_params = ""; + if(preg_match("/watch\?v=(.*?)(&\S+=\S+)/",$url,$matches)) { + $video_id = $matches[1]; + $extra_params = $matches[2]; + } else if (preg_match("/watch\?v=(.*)/",$url,$matches)) { $video_id = $matches[1]; } else { return array(GalleryCoreApi::error(ERROR_BAD_PARAMETER,__FILE__,__LINE__, "Unable to extract video id from url: $url"),null,null); } + + /* If extra params were given, handle them here */ + if(strcmp($extra_params,"")) { + /* Handle the HD format information */ + if(preg_match("/fmt=(\d+)/",$extra_params,$matches)) { + $extra_params="&ap=%2526fmt%3D".$matches[1]; + } + } + + if(!strcmp($debugOutput,"true")) { + print "

URL Parsing Results

"; + print "video_id: $video_id
"; + print "extra_embed_params: $extra_params
"; + print "
"; + } /* If we have a valid youtube developer id, use that to get information about the video */ /* Otherwise, just parse it directly from the HTML page */ @@ -235,7 +257,8 @@ class ItemAddEmbedVideo extends ItemAddPlugin { $description=preg_replace("/</","<",$description); $description=preg_replace("/>/",">",$description); $description=preg_replace("/&/","&",$description); - $description=preg_replace("/&rel=1/",$autoStartStr.$youtubeShowRelatedStr,$description); + $description=preg_replace("/$video_id/",$video_id.$autoStartStr.$youtubeShowRelatedStr,$description); + $description=preg_replace("/$video_id/",$video_id.$extra_params,$description); if(!strcmp($useRemoteSize,"false")) { $description=preg_replace("/width='\d+'/","width='".$width."'",$description); $description=preg_replace("/height='\d+'/","height='".$height."'",$description); @@ -313,10 +336,10 @@ class ItemAddEmbedVideo extends ItemAddPlugin { /* Format the description to hold a reference to the embedded video */ $description = ''; $description.= ''; + $description.= 'value="http://www.youtube.com/v/'.$video_id.$extra_params.'">'; $description.= ''; $description.= ''; } @@ -568,7 +591,7 @@ class ItemAddEmbedVideo extends ItemAddPlugin { } /* Extract the summary from the webpage contents */ - preg_match('/
(.+?)<\/div>/i', $contents, $matches); + preg_match('/
(.+?)<\/div>/i', $contents, $matches); $summary=$matches[1]; /* Extract the title from the webpage contents */ @@ -579,7 +602,7 @@ class ItemAddEmbedVideo extends ItemAddPlugin { $thumbnail=$dailymotionThumbnailUrl.$item_id; /* Format the description to hold a reference to the embedded video */ - if(preg_match('/Embeddable Player:.+?value="(.+?)"/', $contents, $matches)) { + if(preg_match('/