Removed reliance on cURL. Replaced these calls with Gallery internals.
[embedvideo/.git] / ItemAddEmbedVideo.inc
index 418bbcbdb048ca8cc56adcc5e8aaf627335026d5..c0d355dc927a11fa18e5b6bb49a3a3486b5ccd32 100644 (file)
@@ -38,7 +38,11 @@ class ItemAddEmbedVideo extends ItemAddPlugin {
    if (isset($form['action']['addEmbedVideoPage'])) {
      
        $platform =& $gallery->getPlatform();
-      
+
+       if (empty($extraHeaders)) {
+          $extraHeaders = array('Referer' => str_replace('&', '&', $url));
+       }
+
        if(isset($form['webPage']['URL'])) {
         
           /* Load any stored/set Parameters */
@@ -110,7 +114,13 @@ class ItemAddEmbedVideo extends ItemAddPlugin {
               $feed.= "&dev_id=$dev_id&video_id=$video_id";
               
               /* Get the youtube xml feed as a string data source */
-              $xml = _getFeed($feed);  
+              list ($successfullyCopied, $xml, $response, $headers) =
+                GalleryCoreApi::fetchWebPage($feed, $extraHeaders);
+              if (!$successfullyCopied) {
+                  return array(GalleryCoreApi::error(ERROR_BAD_PATH,__FILE__,__LINE__,
+                               "Unable to get video information at url: $url"),null,null);
+              }
+
 
               if($debugOutput) {
                 print "$xml";
@@ -162,7 +172,12 @@ class ItemAddEmbedVideo extends ItemAddPlugin {
               }
 
               /* Grab the contents of the webpage used to display the video on video.google.com */
-              $contents=file_get_contents($url);
+              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"),null,null);
+              }
 
               /* Extract the summary from the webpage contents */
               preg_match('/<meta content="(.+?)\. \w+ \d+, \d+.*" name="description">/i',
@@ -184,7 +199,7 @@ class ItemAddEmbedVideo extends ItemAddPlugin {
               $description = '<embed FlashVars="autoPlay=true" ';
               $description.= 'style="width:'.$width.'px; height:'.$height.'px;" id="VideoPlayback" ';
               $description.= 'type="application/x-shockwave-flash" ';
-              $description.= 'src="'.$googlePlayer.'"?docId='.$doc_id.'"> ';
+              $description.= 'src="'.$googlePlayer.'?docId='.$doc_id.'"> ';
               $description.= '</embed>';
               $description.= "<br>$summary";
         
@@ -214,9 +229,6 @@ class ItemAddEmbedVideo extends ItemAddPlugin {
                 * Check to make sure the URL to the remote flv file is valid
                * (That the file exists at the URL given)
                 */
-              if (empty($extraHeaders)) {
-                  $extraHeaders = array('Referer' => str_replace('&amp;', '&', $url));
-              }
               list ($successfullyCopied, $response, $headers) =
                 GalleryCoreApi::fetchWebPage($url, $extraHeaders);
               if (!$successfullyCopied) {
@@ -327,9 +339,6 @@ class ItemAddEmbedVideo extends ItemAddPlugin {
           }
           
           /* Fetch the thumbnail and save it to a local file */
-          if (empty($extraHeaders)) {
-              $extraHeaders = array('Referer' => str_replace('&amp;', '&', $url));
-          }
           list ($successfullyCopied, $response, $headers) =
             GalleryCoreApi::fetchWebFile($thumbnail, $tmpFile, $extraHeaders);
           if (!$successfullyCopied) {
@@ -412,24 +421,6 @@ class ItemAddEmbedVideo extends ItemAddPlugin {
     
     return array(null, $module->translate('Embed Video'));
  }
-
-
- /**
-  * ItemAddEmbedVideo::_getFeed
-  */
- function _getFeed($feed) {
-  
-     /* Open and return Feed with cURL for parsing */
-    $ch = curl_init();
-    $timeout = 0;
-    curl_setopt ($ch, CURLOPT_URL, $feed);
-    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
-    curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
-    $xml = curl_exec($ch);
-    curl_close($ch);
-    
-    return $xml;    
- }
  
 }      
 ?>