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
$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'];
/* 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];
}
}
/* Extract the thumbnail URL from the webpage contents */
- preg_match('/<img src="(http:\/\/video\.google\.com\/ThumbnailServer2.+?)" /i',
+ preg_match('/thumbnail: \'(http:\/\/.*?\/ThumbnailServer2.+?)\'/i',
$contents, $matches);
$thumbnail=$matches[1];
- $thumbnail=preg_replace("/offsetms=0/","offsetms=0",$thumbnail);
+ $thumbnail=preg_replace("/\\\\x26/","&",$thumbnail);
+ $thumbnail=preg_replace("/\\\\x3d/","=",$thumbnail);
/* Determine what our width and height should be based on our useRemoteSize parameter */
if(!strcmp($useRemoteSize,"true")) {
$description.= 'pluginspage="http://www.macromedia.com/go/getflashplayer"/>';
$description.= '</object></div>';
}
-
+
+ /*
+ **********************************
+ * Embed a generic <object ... <embed ... video
+ **********************************
+ */
+ } else {
+
+ /* 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 URL base (site name) */
+ preg_match("/(http:\/\/.+?)\//i",$url,$matches);
+ $site = $matches[1];
+ print "site: $site<br>";
+
+ /* Extract the summary from the webpage contents */
+ $summary="Unknown";
+ if(preg_match('/<meta name="description" content="(.+?)"/si', $contents, $matches)) {
+ $summary=$matches[1];
+ }
+
+ /* Extract the title from the webpage contents */
+ $title="Unknown";
+ if(preg_match('/<title>(.+?)<\/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('/(<object.+?<embed.+?<\/object>)/', $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);
}