X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/9e77185fafaf4e60e2b73821e0e4b9b1a11fb85f..aaf6ab9705b7f76e8b7d3a69f6fd52c173b6b3b8:/wp-includes/class-feed.php diff --git a/wp-includes/class-feed.php b/wp-includes/class-feed.php index 9aa144a5..62dd1195 100644 --- a/wp-includes/class-feed.php +++ b/wp-includes/class-feed.php @@ -1,140 +1,18 @@ name = 'feed_' . $filename; - $this->mod_name = 'feed_mod_' . $filename; - - $lifetime = $this->lifetime; - /** - * Filter the transient lifetime of the feed cache. - * - * @since 2.8.0 - * - * @param int $lifetime Cache duration in seconds. Default is 43200 seconds (12 hours). - * @param string $filename Unique identifier for the cache object. - */ - $this->lifetime = apply_filters( 'wp_feed_cache_transient_lifetime', $lifetime, $filename); - } - - public function save($data) { - if ( is_a($data, 'SimplePie') ) - $data = $data->data; - - set_transient($this->name, $data, $this->lifetime); - set_transient($this->mod_name, time(), $this->lifetime); - return true; - } - - public function load() { - return get_transient($this->name); - } - - public function mtime() { - return get_transient($this->mod_name); - } - - public function touch() { - return set_transient($this->mod_name, time(), $this->lifetime); - } - - public function unlink() { - delete_transient($this->name); - delete_transient($this->mod_name); - return true; - } -} - -class WP_SimplePie_File extends SimplePie_File { - - public function __construct($url, $timeout = 10, $redirects = 5, $headers = null, $useragent = null, $force_fsockopen = false) { - $this->url = $url; - $this->timeout = $timeout; - $this->redirects = $redirects; - $this->headers = $headers; - $this->useragent = $useragent; - - $this->method = SIMPLEPIE_FILE_SOURCE_REMOTE; - - if ( preg_match('/^http(s)?:\/\//i', $url) ) { - $args = array( - 'timeout' => $this->timeout, - 'redirection' => $this->redirects, - ); - - if ( !empty($this->headers) ) - $args['headers'] = $this->headers; - - if ( SIMPLEPIE_USERAGENT != $this->useragent ) //Use default WP user agent unless custom has been specified - $args['user-agent'] = $this->useragent; - - $res = wp_safe_remote_request($url, $args); - - if ( is_wp_error($res) ) { - $this->error = 'WP HTTP Error: ' . $res->get_error_message(); - $this->success = false; - } else { - $this->headers = wp_remote_retrieve_headers( $res ); - $this->body = wp_remote_retrieve_body( $res ); - $this->status_code = wp_remote_retrieve_response_code( $res ); - } - } else { - $this->error = ''; - $this->success = false; - } - } -} - /** - * WordPress SimplePie Sanitization Class - * - * Extension of the SimplePie_Sanitize class to use KSES, because - * we cannot universally count on DOMDocument being available + * Feed API * * @package WordPress - * @since 3.5.0 + * @subpackage Feed */ -class WP_SimplePie_Sanitize_KSES extends SimplePie_Sanitize { - public function sanitize( $data, $type, $base = '' ) { - $data = trim( $data ); - if ( $type & SIMPLEPIE_CONSTRUCT_MAYBE_HTML ) { - if (preg_match('/(&(#(x[0-9a-fA-F]+|[0-9]+)|[a-zA-Z0-9]+)|<\/[A-Za-z][^\x09\x0A\x0B\x0C\x0D\x20\x2F\x3E]*' . SIMPLEPIE_PCRE_HTML_ATTRIBUTE . '>)/', $data)) { - $type |= SIMPLEPIE_CONSTRUCT_HTML; - } - else { - $type |= SIMPLEPIE_CONSTRUCT_TEXT; - } - } - if ( $type & SIMPLEPIE_CONSTRUCT_BASE64 ) { - $data = base64_decode( $data ); - } - if ( $type & ( SIMPLEPIE_CONSTRUCT_HTML | SIMPLEPIE_CONSTRUCT_XHTML ) ) { - $data = wp_kses_post( $data ); - if ( $this->output_encoding !== 'UTF-8' ) { - $data = $this->registry->call( 'Misc', 'change_encoding', array( $data, 'UTF-8', $this->output_encoding ) ); - } - return $data; - } else { - return parent::sanitize( $data, $type, $base ); - } - } + +_deprecated_file( basename( __FILE__ ), '4.7.0', 'fetch_feed()' ); + +if ( ! class_exists( 'SimplePie', false ) ) { + require_once( ABSPATH . WPINC . '/class-simplepie.php' ); } + +require_once( ABSPATH . WPINC . '/class-wp-feed-cache.php' ); +require_once( ABSPATH . WPINC . '/class-wp-feed-cache-transient.php' ); +require_once( ABSPATH . WPINC . '/class-wp-simplepie-file.php' ); +require_once( ABSPATH . WPINC . '/class-wp-simplepie-sanitize-kses.php' ); \ No newline at end of file