X-Git-Url: http://git.pippins.net/embedvideo/.git/static/gitweb.js?a=blobdiff_plain;f=ItemAddEmbedVideo.inc;h=6bb160fbc5b7ebaff3e94f00b1d1b6e0ece01a08;hb=c89207ee0c133a7176a21d0bca5d452a17977488;hp=319a98efc03848c0bd699d75a584c0d7585d8b87;hpb=1b1822456d66be4761748a02d9f1d9e8caefb8be;p=embedvideo%2F.git diff --git a/ItemAddEmbedVideo.inc b/ItemAddEmbedVideo.inc index 319a98e..6bb160f 100644 --- a/ItemAddEmbedVideo.inc +++ b/ItemAddEmbedVideo.inc @@ -34,7 +34,7 @@ class ItemAddEmbedVideo extends ItemAddPlugin { * @see ItemAddPlugin::handleRequest */ function handleRequest($form, &$item) { - global $gallery; + global $gallery, $url; $status = $error = array(); @@ -90,6 +90,8 @@ class ItemAddEmbedVideo extends ItemAddPlugin { $watermarkImage = $this->getParameter($ItemAddEmbedVideo, 'watermarkImage', ""); $watermarkVideos = $this->getParameter($ItemAddEmbedVideo, 'watermarkVideos', "false"); $watermarkAlignment = $this->getParameter($ItemAddEmbedVideo, 'watermarkAlignment', "left"); + $wordwrapSummary = $this->getParameter($ItemAddEmbedVideo, 'wordwrapSummary', "0"); + $wordwrapDescription = $this->getParameter($ItemAddEmbedVideo, 'wordwrapDescription', "0"); /* Print our stored/set Parameters */ if(!strcmp($debugOutput,"true")) { @@ -109,6 +111,8 @@ class ItemAddEmbedVideo extends ItemAddPlugin { print "watermarkVideos=$watermarkVideos
\n"; print "watermarkImage=$watermarkImage
\n"; print "watermarkAlignment=$watermarkAlignment
\n"; + print "wordwrapSummary=$wordwrapSummary
\n"; + print "wordwrapDescription=$wordwrapDescription
\n"; print "
\n"; } @@ -148,6 +152,15 @@ class ItemAddEmbedVideo extends ItemAddPlugin { /* divshare */ $divshareUrlPattern="divshare.com"; $divshareThumbnailUrl="http://www.divshare.com/direct/video_thumb/"; + + /* stickam */ + $stickamUrlPattern="stickam.com"; + $stickamThumbnailUrl="http://static.stickam.com/"; + + /* myspace */ + $myspaceUrlPattern="vids.myspace.com"; + $myspaceUrlPattern2="myspacetv.com"; + $myspaceThumbnailUrl="http://mediaservices.myspace.com/services/rss.ashx?type=video&videoID="; /* Gallery2 specific paths and variables */ $urlGenerator =& $gallery->getUrlGenerator(); @@ -165,14 +178,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 */ @@ -222,12 +254,12 @@ 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); } - $description.= "
$summary"; } else { return array(GalleryCoreApi::error(ERROR_BAD_PATH,__FILE__,__LINE__, "Unable to extract embedded video information from url: $url"),NULL,NULL); @@ -301,13 +333,12 @@ 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.= ''; - $description.= "
$summary"; } /* ********************************** @@ -370,7 +401,6 @@ class ItemAddEmbedVideo extends ItemAddPlugin { $description.= 'type="application/x-shockwave-flash" '; $description.= 'src="'.$googlePlayer.'?docId='.$doc_id.$autoStartStr.'" flashvars=""> '; $description.= ''; - $description.= "
$summary"; /* ********************************** @@ -418,7 +448,6 @@ class ItemAddEmbedVideo extends ItemAddPlugin { $description=preg_replace("/width='\d+'/","width='".$width."'",$description); $description=preg_replace("/height='\d+'/","height='".$height."'",$description); } - $description.= "
$summary"; } else { return array(GalleryCoreApi::error(ERROR_BAD_PATH,__FILE__,__LINE__, "Unable to extract embedded video information from url: $url"),NULL,NULL); @@ -470,7 +499,6 @@ class ItemAddEmbedVideo extends ItemAddPlugin { $description=preg_replace("/\.swf/",".swf?playerVars=autoPlay=yes",$description); } $description.= ""; - $description.= "
$summary"; } else { return array(GalleryCoreApi::error(ERROR_BAD_PATH,__FILE__,__LINE__, "Unable to extract embedded video information from url: $url"),NULL,NULL); @@ -529,7 +557,6 @@ class ItemAddEmbedVideo extends ItemAddPlugin { $description=preg_replace("/$height/",$height.";autoplay:true",$description); } $description.= ">"; - $description.= "
$summary"; } else { return array(GalleryCoreApi::error(ERROR_BAD_PATH,__FILE__,__LINE__, "Unable to extract embedded video information from url: $url"),NULL,NULL); @@ -561,18 +588,18 @@ class ItemAddEmbedVideo extends ItemAddPlugin { } /* Extract the summary from the webpage contents */ - preg_match('//i', $contents, $matches); + preg_match('/
(.+?)<\/div>/i', $contents, $matches); $summary=$matches[1]; /* Extract the title from the webpage contents */ preg_match('//i', $contents, $matches); - $title=$matches[1]; + $title=htmlentities($matches[1], ENT_QUOTES, "UTF-8"); /* Build the thumbnail URL from the item_id */ $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('/