]> git.immae.eu Git - github/shaarli/Shaarli.git/blobdiff - plugins/pubsubhubbub/pubsubhubbub.php
Process main page (linklist) through Slim controller
[github/shaarli/Shaarli.git] / plugins / pubsubhubbub / pubsubhubbub.php
index 03b6757bd3687f9f46c2402c72beb6f8641392bb..8fe6799ce6d00933445a9b7b7f1652dc13387af8 100644 (file)
@@ -6,10 +6,14 @@
  * PubSub is a protocol which fasten up RSS fetching:
  *   - Every time a new link is posted, Shaarli notify the hub.
  *   - The hub notify all feed subscribers that a new link has been posted.
- *   - Subscribers retrieve the new link. 
+ *   - Subscribers retrieve the new link.
  */
 
 use pubsubhubbub\publisher\Publisher;
+use Shaarli\Config\ConfigManager;
+use Shaarli\Feed\FeedBuilder;
+use Shaarli\Plugin\PluginManager;
+use Shaarli\Render\TemplatePage;
 
 /**
  * Plugin init function - set the hub to the default appspot one.
@@ -37,7 +41,7 @@ function pubsubhubbub_init($conf)
  */
 function hook_pubsubhubbub_render_feed($data, $conf)
 {
-    $feedType = $data['_PAGE_'] == Router::$PAGE_FEED_RSS ? FeedBuilder::$FEED_RSS : FeedBuilder::$FEED_ATOM;
+    $feedType = $data['_PAGE_'] == TemplatePage::FEED_RSS ? FeedBuilder::$FEED_RSS : FeedBuilder::$FEED_ATOM;
     $template = file_get_contents(PluginManager::$PLUGINS_PATH . '/pubsubhubbub/hub.'. $feedType .'.xml');
     $data['feed_plugins_header'][] = sprintf($template, $conf->get('plugins.PUBSUBHUB_URL'));
 
@@ -56,8 +60,8 @@ function hook_pubsubhubbub_render_feed($data, $conf)
 function hook_pubsubhubbub_save_link($data, $conf)
 {
     $feeds = array(
-        index_url($_SERVER) .'?do=atom',
-        index_url($_SERVER) .'?do=rss',
+        index_url($_SERVER) .'feed/atom',
+        index_url($_SERVER) .'feed/rss',
     );
 
     $httpPost = function_exists('curl_version') ? false : 'nocurl_http_post';
@@ -65,7 +69,7 @@ function hook_pubsubhubbub_save_link($data, $conf)
         $p = new Publisher($conf->get('plugins.PUBSUBHUB_URL'));
         $p->publish_update($feeds, $httpPost);
     } catch (Exception $e) {
-        error_log('Could not publish to PubSubHubbub: ' . $e->getMessage());
+        error_log(sprintf(t('Could not publish to PubSubHubbub: %s'), $e->getMessage()));
     }
 
     return $data;
@@ -81,7 +85,8 @@ function hook_pubsubhubbub_save_link($data, $conf)
  *
  * @throws Exception An error occurred.
  */
-function nocurl_http_post($url, $postString) {
+function nocurl_http_post($url, $postString)
+{
     $params = array('http' => array(
         'method' => 'POST',
         'content' => $postString,
@@ -91,11 +96,20 @@ function nocurl_http_post($url, $postString) {
     $context = stream_context_create($params);
     $fp = @fopen($url, 'rb', false, $context);
     if (!$fp) {
-        throw new Exception('Could not post to '. $url);
+        throw new Exception(sprintf(t('Could not post to %s'), $url));
     }
     $response = @stream_get_contents($fp);
     if ($response === false) {
-        throw new Exception('Bad response from the hub '. $url);
+        throw new Exception(sprintf(t('Bad response from the hub %s'), $url));
     }
     return $response;
 }
+
+/**
+ * This function is never called, but contains translation calls for GNU gettext extraction.
+ */
+function pubsubhubbub_dummy_translation()
+{
+    // meta
+    t('Enable PubSubHubbub feed publishing.');
+}