Fixed broken dailymotion embed video parser to match new webpage formatting
[embedvideo/.git] / ItemAddEmbedVideo.inc
index 46e290b2904cce8df84ef9154ef40e36cc34e1d4..ac3f12ad3d83091c4ea61e318440e957614ef3e7 100644 (file)
@@ -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<br>\n";
             print "watermarkImage=$watermarkImage<br>\n";
             print "watermarkAlignment=$watermarkAlignment<br>\n";
+            print "wordwrapSummary=$wordwrapSummary<br>\n";
+            print "wordwrapDescription=$wordwrapDescription<br>\n";
             print "<hr>\n";
           }
 
@@ -236,7 +240,6 @@ class ItemAddEmbedVideo extends ItemAddPlugin {
                     $description=preg_replace("/width='\d+'/","width='".$width."'",$description);
                     $description=preg_replace("/height='\d+'/","height='".$height."'",$description);
                   }
-                  $description.= "<br>$summary";
                 } else {
                   return array(GalleryCoreApi::error(ERROR_BAD_PATH,__FILE__,__LINE__,
                          "Unable to extract embedded video information from url: $url"),NULL,NULL);
@@ -316,7 +319,6 @@ class ItemAddEmbedVideo extends ItemAddPlugin {
                 $description.= $video_id.$autoStartStr.$youtubeShowRelatedStr;
                 $description.= '" type="application/x-shockwave-flash" wmode="transparent" ';
                 $description.= 'width="'.$width.'" height="'.$height.'"></embed></object>';
-                $description.= "<br>$summary";
               }
           /*
            **********************************
@@ -379,7 +381,6 @@ class ItemAddEmbedVideo extends ItemAddPlugin {
               $description.= 'type="application/x-shockwave-flash" ';
               $description.= 'src="'.$googlePlayer.'?docId='.$doc_id.$autoStartStr.'" flashvars=""> ';
               $description.= '</embed>';
-              $description.= "<br>$summary";
 
           /*
            **********************************
@@ -427,7 +428,6 @@ class ItemAddEmbedVideo extends ItemAddPlugin {
                   $description=preg_replace("/width='\d+'/","width='".$width."'",$description);
                   $description=preg_replace("/height='\d+'/","height='".$height."'",$description);
                 }
-                $description.= "<br>$summary";
               } else {
                 return array(GalleryCoreApi::error(ERROR_BAD_PATH,__FILE__,__LINE__,
                        "Unable to extract embedded video information from url: $url"),NULL,NULL);
@@ -479,7 +479,6 @@ class ItemAddEmbedVideo extends ItemAddPlugin {
                   $description=preg_replace("/\.swf/",".swf?playerVars=autoPlay=yes",$description);
                 }
                 $description.= "</embed>";
-                $description.= "<br>$summary";
               } else {
                 return array(GalleryCoreApi::error(ERROR_BAD_PATH,__FILE__,__LINE__,
                        "Unable to extract embedded video information from url: $url"),NULL,NULL);
@@ -538,7 +537,6 @@ class ItemAddEmbedVideo extends ItemAddPlugin {
                   $description=preg_replace("/$height/",$height.";autoplay:true",$description);
                 }
                 $description.= ">";
-                $description.= "<br>$summary";
               } else {
                 return array(GalleryCoreApi::error(ERROR_BAD_PATH,__FILE__,__LINE__,
                        "Unable to extract embedded video information from url: $url"),NULL,NULL);
@@ -570,18 +568,18 @@ class ItemAddEmbedVideo extends ItemAddPlugin {
               }
 
               /* Extract the summary from the webpage contents */
-              preg_match('/<meta name="description" content="(.+?)" \/>/i', $contents, $matches);
+              preg_match('/<div class="description\s+foreground">(.+?)<\/div>/i', $contents, $matches);
               $summary=$matches[1];
 
               /* Extract the title from the webpage contents */
               preg_match('/<meta name="title" content="Dailymotion : (.+?)" \/>/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('/<textarea id="video_player_embed_code_text".+?>(.+?)<\/textarea>/', $contents, $matches)) { 
                 $description=$matches[1];
                 $description=preg_replace("/&quot;/","'",$description);
                 $description=preg_replace("/&lt;/","<",$description);
@@ -590,7 +588,6 @@ class ItemAddEmbedVideo extends ItemAddPlugin {
                   $description=preg_replace("/width=\"\d+\"/","width=\"".$width."\"",$description);
                   $description=preg_replace("/height=\"\d+\"/","height=\"".$height."\"",$description);
                 }
-                $description.= "<br>$summary";
               } else {
                 return array(GalleryCoreApi::error(ERROR_BAD_PATH,__FILE__,__LINE__,
                        "Unable to extract embedded video information from url: $url"),NULL,NULL);
@@ -640,14 +637,11 @@ class ItemAddEmbedVideo extends ItemAddPlugin {
                   $description=preg_replace("/width=\"\d+\"/","width=\"".$width."\"",$description);
                   $description=preg_replace("/height=\"\d+\"/","height=\"".$height."\"",$description);
                 }
-                $description.= "<br>$summary";
               } else {
                 return array(GalleryCoreApi::error(ERROR_BAD_PATH,__FILE__,__LINE__,
                        "Unable to extract embedded video information from url: $url"),NULL,NULL);
               }
 
-
-
           /*
            **********************************
            * Embed a StickAm Video
@@ -701,7 +695,6 @@ class ItemAddEmbedVideo extends ItemAddPlugin {
                   $description=preg_replace("/width='\d+'/","width='".$width."'",$description);
                   $description=preg_replace("/height='\d+'/","height='".$height."'",$description);
                 }
-                $description.= "<br>$summary";
               } else {
                 return array(GalleryCoreApi::error(ERROR_BAD_PATH,__FILE__,__LINE__,
                        "Unable to extract embedded video information from url: $url"),NULL,NULL);
@@ -764,7 +757,6 @@ class ItemAddEmbedVideo extends ItemAddPlugin {
                   $description=preg_replace("/width='\d+'/","width='".$width."'",$description);
                   $description=preg_replace("/height='\d+'/","height='".$height."'",$description);
                 }
-                $description.= "<br>$summary";
               } else {
                 return array(GalleryCoreApi::error(ERROR_BAD_PATH,__FILE__,__LINE__,
                        "Unable to extract embedded video information from url: $url"),NULL,NULL);
@@ -958,6 +950,20 @@ class ItemAddEmbedVideo extends ItemAddPlugin {
           $fileName = preg_replace("/'/","",$fileName);
           $fileName = preg_replace("/\"/","",$fileName);
           $fileName = preg_replace("/&#\d+;/","",$fileName);
+
+          /* Wordwrap the description or summary as appropriate */
+          $description_summary = $summary;
+
+          if(strcmp($wordwrapSummary,"0")) {
+            $summary = wordwrap($summary,$wordwrapSummary,"<br>",FALSE);
+          }
+
+          if(strcmp($wordwrapDescription,"0")) {
+            $description_summary = wordwrap($description_summary,$wordwrapDescription,"<br>",FALSE);
+          }
+          
+          /* Tack on the summary to the end of the description */
+          $description.= "<br>$description_summary";
           
           /* General debug output */
           if(!strcmp($debugOutput,"true")) {
@@ -1207,7 +1213,8 @@ class ItemAddEmbedVideo extends ItemAddPlugin {
      global $gallery;
      
      $requestMethod='GET';
-
+     $requestBody='';
+     
      /* Convert illegal characters */
      $url = str_replace(' ', '%20', $url);