\n";
}
@@ -174,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 */
@@ -231,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);
@@ -310,13 +333,12 @@ class ItemAddEmbedVideo extends ItemAddPlugin {
/* Format the description to hold a reference to the embedded video */
$description = '';
- $description.= " $summary";
}
/*
**********************************
@@ -379,7 +401,6 @@ class ItemAddEmbedVideo extends ItemAddPlugin {
$description.= 'type="application/x-shockwave-flash" ';
$description.= 'src="'.$googlePlayer.'?docId='.$doc_id.$autoStartStr.'" flashvars=""> ';
$description.= '';
- $description.= " $summary";
/*
**********************************
@@ -427,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);
@@ -479,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);
@@ -538,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);
@@ -570,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('/