From 12aedded878face3b4c06f1d0886f9f4fd1b96bc Mon Sep 17 00:00:00 2001
From: Alan Jack Pippin <ajp@pippin.(none)>
Date: Mon, 11 Jun 2007 19:59:11 -0600
Subject: [PATCH] Removed reliance on cURL. Replaced these calls with Gallery
 internals.

---
 ItemAddEmbedVideo.inc             | 46 ++++++++++++-------------------
 templates/EmbedVideoSiteAdmin.tpl |  2 +-
 2 files changed, 19 insertions(+), 29 deletions(-)

diff --git a/ItemAddEmbedVideo.inc b/ItemAddEmbedVideo.inc
index eb15456..c0d355d 100644
--- a/ItemAddEmbedVideo.inc
+++ b/ItemAddEmbedVideo.inc
@@ -38,7 +38,11 @@ class ItemAddEmbedVideo extends ItemAddPlugin {
    if (isset($form['action']['addEmbedVideoPage'])) {
      
        $platform =& $gallery->getPlatform();
-      
+
+       if (empty($extraHeaders)) {
+	   $extraHeaders = array('Referer' => str_replace('&amp;', '&', $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 = $this->_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,8 +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);
-	       $contents = $this->_getFeed($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',
@@ -215,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) {
@@ -328,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) {
@@ -413,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;    
- }
  
 }	
 ?>
diff --git a/templates/EmbedVideoSiteAdmin.tpl b/templates/EmbedVideoSiteAdmin.tpl
index c580ed5..6a7c967 100644
--- a/templates/EmbedVideoSiteAdmin.tpl
+++ b/templates/EmbedVideoSiteAdmin.tpl
@@ -130,7 +130,7 @@
     <tr class="gbEven"><td>height</td><td>240</td>
       <td>{g->text text="specify the height dimension of the embedded video player"}</td></tr>
 
-    <tr class="gbEven"><td>debugOutput</td><td>true|false</td>
+    <tr class="gbEven"><td>debugOutput</td><td>true/false</td>
       <td>{g->text text="turn on module debug output"}</td></tr>
 
     <tr class="gbEven"><td>flvThumbnail</td><td>URL path</td>
-- 
2.34.1