]> git.wh0rd.org - tt-rss.git/commitdiff
lib: Upgrade php-publisher from ??? to a5d6a0e (2016-11-15)
authorAnders Kaseorg <andersk@mit.edu>
Fri, 20 Jan 2017 20:58:12 +0000 (15:58 -0500)
committerAnders Kaseorg <andersk@mit.edu>
Sat, 21 Jan 2017 20:01:14 +0000 (15:01 -0500)
https://github.com/pubsubhubbub/php-publisher

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
include/functions.php
lib/pubsubhubbub/Publisher.php [new file with mode: 0644]
lib/pubsubhubbub/README.txt [deleted file]
lib/pubsubhubbub/publisher.php [deleted file]

index ce7627d5a77cd859600304b989c359a4b50e651e..de93267eecf0ec6a90b93ed6e0eeb46cf0234160 100755 (executable)
        define('SELF_USER_AGENT', 'Tiny Tiny RSS/' . VERSION . ' (http://tt-rss.org/)');
        ini_set('user_agent', SELF_USER_AGENT);
 
-       require_once 'lib/pubsubhubbub/publisher.php';
+       require_once 'lib/pubsubhubbub/Publisher.php';
 
        $schema_version = false;
 
diff --git a/lib/pubsubhubbub/Publisher.php b/lib/pubsubhubbub/Publisher.php
new file mode 100644 (file)
index 0000000..df7c192
--- /dev/null
@@ -0,0 +1,125 @@
+<?php
+/**
+ * a PHP client library for pubsubhubbub.
+ *
+ * @link    https://github.com/pubsubhubbub/
+ *
+ * @author  Josh Fraser | joshfraser.com | josh@eventvue.com
+ * @license Apache License 2.0
+ */
+namespace pubsubhubbub\publisher;
+
+use InvalidArgumentException;
+
+class Publisher
+{
+    /**
+     * @var string
+     */
+    protected $hub_url;
+
+    /**
+     * @var string
+     */
+    protected $last_response;
+
+    /**
+     * Create a new Publisher.
+     *
+     * @param string $hub_url
+     */
+    public function __construct($hub_url)
+    {
+        if (! isset($hub_url)) {
+            throw new InvalidArgumentException('Please specify a hub url');
+        }
+
+        if (! preg_match('|^https?://|i', $hub_url)) {
+            throw new InvalidArgumentException('The specified hub url does not appear to be valid: ' . $hub_url);
+        }
+
+        $this->hub_url = $hub_url;
+    }
+
+    /**
+     * Accepts either a single url or an array of urls.
+     *
+     * @param string|array $topic_urls
+     * @param callable     $http_function
+     *
+     * @return mixed
+     */
+    public function publish_update($topic_urls, $http_function = false)
+    {
+        if (! isset($topic_urls)) {
+            throw new InvalidArgumentException('Please specify a topic url');
+        }
+
+        // check that we're working with an array
+        if (! is_array($topic_urls)) {
+            $topic_urls = [$topic_urls];
+        }
+
+        // set the mode to publish
+        $post_string = 'hub.mode=publish';
+        // loop through each topic url
+        foreach ($topic_urls as $topic_url) {
+
+            // lightweight check that we're actually working w/ a valid url
+            if (! preg_match('|^https?://|i', $topic_url)) {
+                throw new InvalidArgumentException('The specified topic url does not appear to be valid: ' . $topic_url);
+            }
+
+            // append the topic url parameters
+            $post_string .= '&hub.url=' . urlencode($topic_url);
+        }
+
+        // make the http post request and return true/false
+        // easy to over-write to use your own http function
+        if ($http_function) {
+            return $http_function($this->hub_url, $post_string);
+        }
+
+        return $this->http_post($this->hub_url, $post_string);
+    }
+
+    /**
+     * Returns any error message from the latest request.
+     *
+     * @return string
+     */
+    public function last_response()
+    {
+        return $this->last_response;
+    }
+
+    /**
+     * Default http function that uses curl to post to the hub endpoint.
+     *
+     * @param string $url
+     * @param string $post_string
+     *
+     * @return bool
+     */
+    private function http_post($url, $post_string)
+    {
+        // add any additional curl options here
+        $options = [
+            CURLOPT_URL        => $url,
+            CURLOPT_POST       => true,
+            CURLOPT_POSTFIELDS => $post_string,
+            CURLOPT_USERAGENT  => 'PubSubHubbub-Publisher-PHP/1.0',
+        ];
+
+        $ch = curl_init();
+        curl_setopt_array($ch, $options);
+
+        $response = curl_exec($ch);
+        $this->last_response = $response;
+        $info = curl_getinfo($ch);
+
+        curl_close($ch);
+
+        return $info['http_code'] == 204;
+    }
+}
diff --git a/lib/pubsubhubbub/README.txt b/lib/pubsubhubbub/README.txt
deleted file mode 100644 (file)
index 3d27c40..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-This PHP library for PubSubHubbub was written by Josh Fraser (joshfraser.com) and is released under the Apache 2.0 License
-
-Usage:
-// specify which hub you want to use. in this case we'll use the demo hub on app engine.
-$hub_url = "http://pubsubhubbub.appspot.com/";
-
-// create a new pubsubhubbub publisher
-$p = new Publisher($hub_url);
-
-// specify the feed that has been updated
-$topic_url = "http://www.onlineaspect.com";
-
-// notify the hub that the specified topic_url (ATOM feed) has been updated
-// alternatively, publish_update() also accepts an array of topic urls
-if ($p->publish_update($topic_url)) {
-    echo "$topic_url was successfully published to $hub_url";
-} else {
-    echo "Ooops...";
-    print_r($p->last_response());
-}
\ No newline at end of file
diff --git a/lib/pubsubhubbub/publisher.php b/lib/pubsubhubbub/publisher.php
deleted file mode 100644 (file)
index f176a9b..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-<?php
-
-// a PHP client library for pubsubhubbub
-// as defined at http://code.google.com/p/pubsubhubbub/
-// written by Josh Fraser | joshfraser.com | josh@eventvue.com
-// Released under Apache License 2.0
-
-class Publisher {
-    
-    protected $hub_url;
-    protected $last_response;
-    
-    // create a new Publisher
-    public function __construct($hub_url) {
-        
-        if (!isset($hub_url))
-            throw new Exception('Please specify a hub url');
-        
-        if (!preg_match("|^https?://|i",$hub_url)) 
-            throw new Exception('The specified hub url does not appear to be valid: '.$hub_url);
-            
-        $this->hub_url = $hub_url;
-    }
-
-    // accepts either a single url or an array of urls
-    public function publish_update($topic_urls, $http_function = false) {
-        if (!isset($topic_urls))
-            throw new Exception('Please specify a topic url');
-        
-        // check that we're working with an array
-        if (!is_array($topic_urls)) {
-            $topic_urls = array($topic_urls);
-        }
-        
-        // set the mode to publish
-        $post_string = "hub.mode=publish";
-        // loop through each topic url 
-        foreach ($topic_urls as $topic_url) {
-
-            // lightweight check that we're actually working w/ a valid url
-            if (!preg_match("|^https?://|i",$topic_url)) 
-                throw new Exception('The specified topic url does not appear to be valid: '.$topic_url);
-            
-            // append the topic url parameters
-            $post_string .= "&hub.url=".urlencode($topic_url);
-        }
-        
-        // make the http post request and return true/false
-        // easy to over-write to use your own http function
-        if ($http_function)
-            return $http_function($this->hub_url,$post_string);
-        else
-            return $this->http_post($this->hub_url,$post_string);
-    }
-
-    // returns any error message from the latest request
-    public function last_response() {
-        return $this->last_response;
-    }
-    
-    // default http function that uses curl to post to the hub endpoint
-    private function http_post($url, $post_string) {
-        
-        // add any additional curl options here
-        $options = array(CURLOPT_URL => $url,
-                         CURLOPT_POST => true,
-                         CURLOPT_POSTFIELDS => $post_string,
-                         CURLOPT_USERAGENT => "PubSubHubbub-Publisher-PHP/1.0");
-
-       $ch = curl_init();
-       curl_setopt_array($ch, $options);
-
-        $response = curl_exec($ch);
-        $this->last_response = $response;
-        $info = curl_getinfo($ch);
-
-        curl_close($ch);
-        
-        // all good
-        if ($info['http_code'] == 204) 
-            return true;
-        return false;  
-    }
-}
-
-?>
\ No newline at end of file