web/wp-includes/rss.php
changeset 194 32102edaa81b
parent 136 bde1974c263b
--- a/web/wp-includes/rss.php	Thu Sep 16 15:45:36 2010 +0000
+++ b/web/wp-includes/rss.php	Mon Nov 19 18:26:13 2012 +0100
@@ -12,6 +12,11 @@
  * @subpackage MagpieRSS
  */
 
+/**
+ * Deprecated. Use SimplePie (class-simplepie.php) instead.
+ */
+_deprecated_file( basename( __FILE__ ), '3.0', WPINC . '/class-simplepie.php' );
+
 /*
  * Hook to use another RSS object instead of MagpieRSS
  */
@@ -58,11 +63,10 @@
 		if ( !is_resource($parser) )
 			trigger_error( "Failed to create an instance of PHP's XML parser. http://www.php.net/manual/en/ref.xml.php");
 
-
 		$this->parser = $parser;
 
 		# pass in parser, and a reference to this object
-		# setup handlers
+		# set up handlers
 		#
 		xml_set_object( $this->parser, $this );
 		xml_set_element_handler($this->parser,
@@ -162,7 +166,6 @@
 
 			$this->incontent = $el;
 
-
 		}
 
 		// if inside an Atom content construct (e.g. content or summary) field treat tags as text
@@ -201,8 +204,6 @@
 		}
 	}
 
-
-
 	function feed_cdata ($p, $text) {
 
 		if ($this->feed_type == ATOM and $this->incontent)
@@ -389,7 +390,7 @@
 /**
  * Build Magpie object based on RSS from URL.
  *
- * @since unknown
+ * @since 1.5.0
  * @package External
  * @subpackage MagpieRSS
  *
@@ -431,7 +432,6 @@
 			debug($cache->ERROR, E_USER_WARNING);
 		}
 
-
 		$cache_status 	 = 0;		// response of check_cache
 		$request_headers = array(); // HTTP headers to send with fetch
 		$rss 			 = 0;		// parsed RSS object
@@ -456,7 +456,7 @@
 
 		// else attempt a conditional get
 
-		// setup headers
+		// set up headers
 		if ( $cache_status == 'STALE' ) {
 			$rss = $cache->get( $url );
 			if ( isset($rss->etag) and $rss->last_modified ) {
@@ -527,7 +527,7 @@
 /**
  * Retrieve URL headers and content using WP HTTP Request API.
  *
- * @since unknown
+ * @since 1.5.0
  * @package External
  * @subpackage MagpieRSS
  *
@@ -535,7 +535,7 @@
  * @param array $headers Optional. Headers to send to the URL.
  * @return Snoopy style response
  */
-function _fetch_remote_file ($url, $headers = "" ) {
+function _fetch_remote_file($url, $headers = "" ) {
 	$resp = wp_remote_request($url, array('headers' => $headers, 'timeout' => MAGPIE_FETCH_TIME_OUT));
 	if ( is_wp_error($resp) ) {
 		$error = array_shift($resp->errors);
@@ -546,11 +546,24 @@
 		$resp->error = $error[0] . "\n"; //\n = Snoopy compatibility
 		return $resp;
 	}
+
+	// Snoopy returns headers unprocessed.
+	// Also note, WP_HTTP lowercases all keys, Snoopy did not.
+	$return_headers = array();
+	foreach ( wp_remote_retrieve_headers( $resp ) as $key => $value ) {
+		if ( !is_array($value) ) {
+			$return_headers[] = "$key: $value";
+		} else {
+			foreach ( $value as $v )
+				$return_headers[] = "$key: $v";
+		}
+	}
+
 	$response = new stdClass;
-	$response->status = $resp['response']['code'];
-	$response->response_code = $resp['response']['code'];
-	$response->headers = $resp['headers'];
-	$response->results = $resp['body'];
+	$response->status = wp_remote_retrieve_response_code( $resp );
+	$response->response_code = wp_remote_retrieve_response_code( $resp );
+	$response->headers = $return_headers;
+	$response->results = wp_remote_retrieve_body( $resp );
 
 	return $response;
 }
@@ -558,7 +571,7 @@
 /**
  * Retrieve
  *
- * @since unknown
+ * @since 1.5.0
  * @package External
  * @subpackage MagpieRSS
  *
@@ -582,11 +595,11 @@
 				$val = "";
 			}
 
-			if ( $field == 'ETag' ) {
+			if ( $field == 'etag' ) {
 				$rss->etag = $val;
 			}
 
-			if ( $field == 'Last-Modified' ) {
+			if ( $field == 'last-modified' ) {
 				$rss->last_modified = $val;
 			}
 		}
@@ -606,9 +619,9 @@
 }
 
 /**
- * Setup constants with default values, unless user overrides.
+ * Set up constants with default values, unless user overrides.
  *
- * @since unknown
+ * @since 1.5.0
  * @package External
  * @subpackage MagpieRSS
  */
@@ -710,7 +723,6 @@
 	Output:		true on sucess
 \*=======================================================================*/
 	function set ($url, $rss) {
-		global $wpdb;
 		$cache_option = 'rss_' . $this->file_name( $url );
 
 		set_transient($cache_option, $rss, $this->MAX_AGE);
@@ -854,7 +866,7 @@
 /**
  * Display all RSS items in a HTML ordered list.
  *
- * @since unknown
+ * @since 1.5.0
  * @package External
  * @subpackage MagpieRSS
  *
@@ -874,7 +886,7 @@
 				'<li><a href="%1$s" title="%2$s">%3$s</a></li>',
 				esc_url( $item['link'] ),
 				esc_attr( strip_tags( $item['description'] ) ),
-				htmlentities( $item['title'] )
+				esc_html( $item['title'] )
 			);
 		}
 
@@ -894,7 +906,7 @@
  * to display. You can't display all of them like you can with wp_rss()
  * function.
  *
- * @since unknown
+ * @since 1.5.0
  * @package External
  * @subpackage MagpieRSS
  *
@@ -909,7 +921,7 @@
 		foreach ( (array) $rss->items as $item ) {
 			echo "<li>\n";
 			echo "<a href='$item[link]' title='$item[description]'>";
-			echo htmlentities($item['title']);
+			echo esc_html($item['title']);
 			echo "</a><br />\n";
 			echo "</li>\n";
 		}
@@ -918,5 +930,3 @@
 	}
 }
 endif;
-
-?>