diff options
| author | 2018-12-16 17:02:03 +0100 | |
|---|---|---|
| committer | 2018-12-16 17:02:03 +0100 | |
| commit | 512d047f02b601dcf21f8c807117ea154967e58f (patch) | |
| tree | c0825b4d1fc0c9e68efa0424de57476329a7d071 | |
| parent | e0e96d6a13788c539be1bcce3cde0a1d614ff2c3 (diff) | |
Update naming to WebSub (#2184)
Instead of PubSubHubbub / PuSH
| -rw-r--r-- | README.fr.md | 7 | ||||
| -rw-r--r-- | README.md | 7 | ||||
| -rwxr-xr-x | app/Controllers/feedController.php | 12 | ||||
| -rw-r--r-- | app/Models/Feed.php | 18 | ||||
| -rw-r--r-- | app/i18n/cz/sub.php | 2 | ||||
| -rw-r--r-- | app/i18n/de/sub.php | 2 | ||||
| -rw-r--r-- | app/i18n/en/sub.php | 2 | ||||
| -rwxr-xr-x | app/i18n/es/sub.php | 2 | ||||
| -rw-r--r-- | app/i18n/fr/sub.php | 2 | ||||
| -rw-r--r-- | app/i18n/he/sub.php | 2 | ||||
| -rw-r--r-- | app/i18n/it/sub.php | 2 | ||||
| -rw-r--r-- | app/i18n/kr/sub.php | 2 | ||||
| -rw-r--r-- | app/i18n/nl/sub.php | 2 | ||||
| -rw-r--r-- | app/i18n/oc/sub.php | 2 | ||||
| -rw-r--r-- | app/i18n/pt-br/sub.php | 2 | ||||
| -rw-r--r-- | app/i18n/ru/sub.php | 2 | ||||
| -rw-r--r-- | app/i18n/tr/sub.php | 2 | ||||
| -rw-r--r-- | app/i18n/zh-cn/sub.php | 2 | ||||
| -rw-r--r-- | app/views/helpers/feed/update.phtml | 2 | ||||
| -rw-r--r-- | cli/README.md | 2 | ||||
| -rw-r--r-- | config.default.php | 2 | ||||
| -rw-r--r-- | docs/en/users/05_Configuration.md | 2 | ||||
| -rw-r--r-- | docs/fr/contributing.md | 2 | ||||
| -rw-r--r-- | docs/fr/users/08_PubSubHubbub.md | 23 | ||||
| -rw-r--r-- | p/api/pshb.php | 4 |
25 files changed, 62 insertions, 47 deletions
diff --git a/README.fr.md b/README.fr.md index 9db5907a0..14d780b18 100644 --- a/README.fr.md +++ b/README.fr.md @@ -8,9 +8,12 @@ FreshRSS est un agrégateur de flux RSS à auto-héberger à l’image de [Leed] Il se veut léger et facile à prendre en main tout en étant un outil puissant et paramétrable. -Il permet de gérer plusieurs utilisateurs, et dispose d’un mode de lecture anonyme. -Il supporte les étiquettes personnalisées, et [PubSubHubbub](https://github.com/pubsubhubbub/PubSubHubbub) pour des notifications instantanées depuis les sites compatibles. +Il permet de gérer plusieurs utilisateurs, dispose d’un mode de lecture anonyme, et supporte les étiquettes personnalisées. Il y a une API pour les clients (mobiles), ainsi qu’une [interface en ligne de commande](cli/README.md). + +Grâce au standard [WebSub](https://www.w3.org/TR/websub/) (anciennement [PubSubHubbub](https://github.com/pubsubhubbub/PubSubHubbub)), +FreshRSS est capable de recevoir des notifications push instantanées depuis les sources compatibles, telles [Mastodon](https://joinmastodon.org), [Friendica](https://friendi.ca), [WordPress](https://wordpress.org/plugins/pubsubhubbub/), Blogger, FeedBurner, etc. + Enfin, il permet l’ajout d’[extensions](#extensions) pour encore plus de personnalisation. Les demandes de fonctionnalités, rapports de bugs, et autres contributions sont les bienvenues. Privilégiez pour cela des [demandes sur GitHub](https://github.com/FreshRSS/FreshRSS/issues). @@ -8,9 +8,12 @@ FreshRSS is a self-hosted RSS feed aggregator like [Leed](http://leed.idleman.fr It is lightweight, easy to work with, powerful, and customizable. -It is a multi-user application with an anonymous reading mode. -It supports custom tags, and [PubSubHubbub](https://github.com/pubsubhubbub/PubSubHubbub) for instant notifications from compatible Web sites. +It is a multi-user application with an anonymous reading mode. It supports custom tags. There is an API for (mobile) clients, and a [Command-Line Interface](cli/README.md). + +Thanks to the [WebSub](https://www.w3.org/TR/websub/) standard (formerly [PubSubHubbub](https://github.com/pubsubhubbub/PubSubHubbub)), +FreshRSS is able to receive instant push notifications from compatible sources, such as [Mastodon](https://joinmastodon.org), [Friendica](https://friendi.ca), [WordPress](https://wordpress.org/plugins/pubsubhubbub/), Blogger, FeedBurner, etc. + Finally, it supports [extensions](#extensions) for further tuning. Feature requests, bug reports, and other contributions are welcome. The best way to contribute is to [open an issue on GitHub](https://github.com/FreshRSS/FreshRSS/issues). diff --git a/app/Controllers/feedController.php b/app/Controllers/feedController.php index f2b1b8960..74c9eacfa 100755 --- a/app/Controllers/feedController.php +++ b/app/Controllers/feedController.php @@ -266,7 +266,7 @@ class FreshRSS_feed_Controller extends Minz_ActionController { $nb_month_old = max(FreshRSS_Context::$user_conf->old_entries, 1); $date_min = time() - (3600 * 24 * 30 * $nb_month_old); - // PubSubHubbub support + // WebSub (PubSubHubbub) support $pubsubhubbubEnabledGeneral = FreshRSS_Context::$system_conf->pubsubhubbub_enabled; $pshbMinAge = time() - (3600 * 24); //TODO: Make a configuration. @@ -437,13 +437,13 @@ class FreshRSS_feed_Controller extends Minz_ActionController { $entryDAO->commit(); } - if ($feed->hubUrl() && $feed->selfUrl()) { //selfUrl has priority for PubSubHubbub + if ($feed->hubUrl() && $feed->selfUrl()) { //selfUrl has priority for WebSub if ($feed->selfUrl() !== $url) { //https://code.google.com/p/pubsubhubbub/wiki/MovingFeedsOrChangingHubs $selfUrl = checkUrl($feed->selfUrl()); if ($selfUrl) { - Minz_Log::debug('PubSubHubbub unsubscribe ' . $feed->url(false)); + Minz_Log::debug('WebSub unsubscribe ' . $feed->url(false)); if (!$feed->pubSubHubbubSubscribe(false)) { //Unsubscribe - Minz_Log::warning('Error while PubSubHubbub unsubscribing from ' . $feed->url(false)); + Minz_Log::warning('Error while WebSub unsubscribing from ' . $feed->url(false)); } $feed->_url($selfUrl, false); Minz_Log::notice('Feed ' . $url . ' canonical address moved to ' . $feed->url(false)); @@ -457,9 +457,9 @@ class FreshRSS_feed_Controller extends Minz_ActionController { $feed->faviconPrepare(); if ($pubsubhubbubEnabledGeneral && $feed->pubSubHubbubPrepare()) { - Minz_Log::notice('PubSubHubbub subscribe ' . $feed->url(false)); + Minz_Log::notice('WebSub subscribe ' . $feed->url(false)); if (!$feed->pubSubHubbubSubscribe(true)) { //Subscribe - Minz_Log::warning('Error while PubSubHubbub subscribing to ' . $feed->url(false)); + Minz_Log::warning('Error while WebSub subscribing to ' . $feed->url(false)); } } $feed->unlock(); diff --git a/app/Models/Feed.php b/app/Models/Feed.php index fc7ed8c68..b21a8bbbe 100644 --- a/app/Models/Feed.php +++ b/app/Models/Feed.php @@ -498,7 +498,7 @@ class FreshRSS_Feed extends Minz_Model { @unlink($this->lockPath); } - //<PubSubHubbub> + //<WebSub> public function pubSubHubbubEnabled() { $url = $this->selfUrl ? $this->selfUrl : $this->url; @@ -534,13 +534,13 @@ class FreshRSS_Feed extends Minz_Model { if ($hubFile = @file_get_contents($hubFilename)) { $hubJson = json_decode($hubFile, true); if (!$hubJson || empty($hubJson['key']) || !ctype_xdigit($hubJson['key'])) { - $text = 'Invalid JSON for PubSubHubbub: ' . $this->url; + $text = 'Invalid JSON for WebSub: ' . $this->url; Minz_Log::warning($text); Minz_Log::warning($text, PSHB_LOG); return false; } if ((!empty($hubJson['lease_end'])) && ($hubJson['lease_end'] < (time() + (3600 * 23)))) { //TODO: Make a better policy - $text = 'PubSubHubbub lease ends at ' + $text = 'WebSub lease ends at ' . date('c', empty($hubJson['lease_end']) ? time() : $hubJson['lease_end']) . ' and needs renewal: ' . $this->url; Minz_Log::warning($text); @@ -560,7 +560,7 @@ class FreshRSS_Feed extends Minz_Model { file_put_contents($hubFilename, json_encode($hubJson)); @mkdir(PSHB_PATH . '/keys/'); file_put_contents(PSHB_PATH . '/keys/' . $key . '.txt', base64url_encode($this->selfUrl)); - $text = 'PubSubHubbub prepared for ' . $this->url; + $text = 'WebSub prepared for ' . $this->url; Minz_Log::debug($text); Minz_Log::debug($text, PSHB_LOG); } @@ -579,17 +579,17 @@ class FreshRSS_Feed extends Minz_Model { $hubFilename = PSHB_PATH . '/feeds/' . base64url_encode($url) . '/!hub.json'; $hubFile = @file_get_contents($hubFilename); if ($hubFile === false) { - Minz_Log::warning('JSON not found for PubSubHubbub: ' . $this->url); + Minz_Log::warning('JSON not found for WebSub: ' . $this->url); return false; } $hubJson = json_decode($hubFile, true); if (!$hubJson || empty($hubJson['key']) || !ctype_xdigit($hubJson['key']) || empty($hubJson['hub'])) { - Minz_Log::warning('Invalid JSON for PubSubHubbub: ' . $this->url); + Minz_Log::warning('Invalid JSON for WebSub: ' . $this->url); return false; } $callbackUrl = checkUrl(Minz_Request::getBaseUrl() . '/api/pshb.php?k=' . $hubJson['key']); if ($callbackUrl == '') { - Minz_Log::warning('Invalid callback for PubSubHubbub: ' . $this->url); + Minz_Log::warning('Invalid callback for WebSub: ' . $this->url); return false; } if (!$state) { //unsubscribe @@ -618,7 +618,7 @@ class FreshRSS_Feed extends Minz_Model { $response = curl_exec($ch); $info = curl_getinfo($ch); - Minz_Log::warning('PubSubHubbub ' . ($state ? 'subscribe' : 'unsubscribe') . ' to ' . $url . + Minz_Log::warning('WebSub ' . ($state ? 'subscribe' : 'unsubscribe') . ' to ' . $url . ' via hub ' . $hubJson['hub'] . ' with callback ' . $callbackUrl . ': ' . $info['http_code'] . ' ' . $response, PSHB_LOG); @@ -634,5 +634,5 @@ class FreshRSS_Feed extends Minz_Model { return false; } - //</PubSubHubbub> + //</WebSub> } diff --git a/app/i18n/cz/sub.php b/app/i18n/cz/sub.php index ec4c6f374..ad02f6f49 100644 --- a/app/i18n/cz/sub.php +++ b/app/i18n/cz/sub.php @@ -45,7 +45,7 @@ return array( 'main_stream' => 'Zobrazit ve “Všechny kanály”', 'normal' => 'Show in its category', //TODO - Translation ), - 'pubsubhubbub' => 'Okamžité oznámení s PubSubHubbub', + 'websub' => 'Okamžité oznámení s WebSub', 'show' => array( 'all' => 'Show all feeds', //TODO - Translation 'error' => 'Show only feeds with error', //TODO - Translation diff --git a/app/i18n/de/sub.php b/app/i18n/de/sub.php index c4455c4be..aa408e8c7 100644 --- a/app/i18n/de/sub.php +++ b/app/i18n/de/sub.php @@ -45,7 +45,7 @@ return array( 'main_stream' => 'In Haupt-Feeds zeigen', 'normal' => 'Zeige in eigener Kategorie', ), - 'pubsubhubbub' => 'Sofortbenachrichtigung mit PubSubHubbub', + 'websub' => 'Sofortbenachrichtigung mit WebSub', 'show' => array( 'all' => 'Show all feeds', //TODO - Translation 'error' => 'Show only feeds with error', //TODO - Translation diff --git a/app/i18n/en/sub.php b/app/i18n/en/sub.php index 1dac808b0..9acbcbf33 100644 --- a/app/i18n/en/sub.php +++ b/app/i18n/en/sub.php @@ -45,7 +45,7 @@ return array( 'main_stream' => 'Show in main stream', 'normal' => 'Show in its category', ), - 'pubsubhubbub' => 'Instant notification with PubSubHubbub', + 'websub' => 'Instant notification with WebSub', 'show' => array( 'all' => 'Show all feeds', 'error' => 'Show only feeds with error', diff --git a/app/i18n/es/sub.php b/app/i18n/es/sub.php index b6a7eb568..64e420dc1 100755 --- a/app/i18n/es/sub.php +++ b/app/i18n/es/sub.php @@ -45,7 +45,7 @@ return array( 'main_stream' => 'Mostrar en salida principal', 'normal' => 'Show in its category', //TODO - Translation ), - 'pubsubhubbub' => 'Notificación inmedaiata con PubSubHubbub', + 'websub' => 'Notificación inmedaiata con WebSub', 'show' => array( 'all' => 'Show all feeds', //TODO - Translation 'error' => 'Show only feeds with error', //TODO - Translation diff --git a/app/i18n/fr/sub.php b/app/i18n/fr/sub.php index b5eaccef4..6cb31414d 100644 --- a/app/i18n/fr/sub.php +++ b/app/i18n/fr/sub.php @@ -45,7 +45,7 @@ return array( 'main_stream' => 'Afficher dans le flux principal', 'normal' => 'Afficher dans sa catégorie', ), - 'pubsubhubbub' => 'Notification instantanée par PubSubHubbub', + 'websub' => 'Notification instantanée par WebSub', 'show' => array( 'all' => 'Montrer tous les flux', 'error' => 'Montrer seulement les flux en erreur', diff --git a/app/i18n/he/sub.php b/app/i18n/he/sub.php index f467df28c..e4c487b84 100644 --- a/app/i18n/he/sub.php +++ b/app/i18n/he/sub.php @@ -45,7 +45,7 @@ return array( 'main_stream' => 'הצגה בזרם המרכזי', 'normal' => 'Show in its category', //TODO - Translation ), - 'pubsubhubbub' => 'Instant notification with PubSubHubbub', //TODO - Translation + 'websub' => 'Instant notification with WebSub', //TODO - Translation 'show' => array( 'all' => 'Show all feeds', //TODO - Translation 'error' => 'Show only feeds with error', //TODO - Translation diff --git a/app/i18n/it/sub.php b/app/i18n/it/sub.php index cbb488f3e..6faa48d63 100644 --- a/app/i18n/it/sub.php +++ b/app/i18n/it/sub.php @@ -45,7 +45,7 @@ return array( 'main_stream' => 'Mostra in homepage', //TODO - Translation 'normal' => 'Show in its category', //TODO - Translation ), - 'pubsubhubbub' => 'Notifica istantanea con PubSubHubbub', + 'websub' => 'Notifica istantanea con WebSub', 'show' => array( 'all' => 'Show all feeds', //TODO - Translation 'error' => 'Show only feeds with error', //TODO - Translation diff --git a/app/i18n/kr/sub.php b/app/i18n/kr/sub.php index 785a3ea96..463496c57 100644 --- a/app/i18n/kr/sub.php +++ b/app/i18n/kr/sub.php @@ -45,7 +45,7 @@ return array( 'main_stream' => '메인 스트림에 표시하기', 'normal' => '피드가 속한 카테고리에만 표시하기', ), - 'pubsubhubbub' => 'PubSubHubbub을 사용한 즉시 알림', + 'websub' => 'WebSub을 사용한 즉시 알림', 'show' => array( 'all' => 'Show all feeds', //TODO - Translation 'error' => 'Show only feeds with error', //TODO - Translation diff --git a/app/i18n/nl/sub.php b/app/i18n/nl/sub.php index 53954ad3f..36c96b53f 100644 --- a/app/i18n/nl/sub.php +++ b/app/i18n/nl/sub.php @@ -45,7 +45,7 @@ return array( 'main_stream' => 'Zichtbaar in het overzicht', 'normal' => 'Toon in categorie', ), - 'pubsubhubbub' => 'Directe notificaties met PubSubHubbub', + 'websub' => 'Directe notificaties met WebSub', 'show' => array( 'all' => 'Show all feeds', //TODO - Translation 'error' => 'Show only feeds with error', //TODO - Translation diff --git a/app/i18n/oc/sub.php b/app/i18n/oc/sub.php index 1d2e0007b..f9ddf339a 100644 --- a/app/i18n/oc/sub.php +++ b/app/i18n/oc/sub.php @@ -44,7 +44,7 @@ return array( 'main_stream' => 'Mostar al flux màger', 'normal' => 'Mostar dins sa categoria', ), - 'pubsubhubbub' => 'Notificaciones instantáneas amb PubSubHubbub', + 'websub' => 'Notificaciones instantáneas amb WebSub', 'show' => array( 'all' => 'Show all feeds', //TODO - Translation 'error' => 'Show only feeds with error', //TODO - Translation diff --git a/app/i18n/pt-br/sub.php b/app/i18n/pt-br/sub.php index 03ae9d014..78684c14c 100644 --- a/app/i18n/pt-br/sub.php +++ b/app/i18n/pt-br/sub.php @@ -45,7 +45,7 @@ return array( 'main_stream' => 'Mostrar na tela principal', 'normal' => 'Show in its category', //TODO - Translation ), - 'pubsubhubbub' => 'Notificação instantânea com PubSubHubbub', + 'websub' => 'Notificação instantânea com WebSub', 'show' => array( 'all' => 'Show all feeds', //TODO - Translation 'error' => 'Show only feeds with error', //TODO - Translation diff --git a/app/i18n/ru/sub.php b/app/i18n/ru/sub.php index ccd3b0020..7de80586b 100644 --- a/app/i18n/ru/sub.php +++ b/app/i18n/ru/sub.php @@ -45,7 +45,7 @@ return array( 'main_stream' => 'Show in main stream', //TODO - Translation 'normal' => 'Show in its category', //TODO - Translation ), - 'pubsubhubbub' => 'Instant notification with PubSubHubbub', //TODO - Translation + 'websub' => 'Instant notification with WebSub', //TODO - Translation 'show' => array( 'all' => 'Show all feeds', //TODO - Translation 'error' => 'Show only feeds with error', //TODO - Translation diff --git a/app/i18n/tr/sub.php b/app/i18n/tr/sub.php index 4d71e3dbf..b5b56f4b8 100644 --- a/app/i18n/tr/sub.php +++ b/app/i18n/tr/sub.php @@ -45,7 +45,7 @@ return array( 'main_stream' => 'Ana akışda göster', 'normal' => 'Show in its category', //TODO - Translation ), - 'pubsubhubbub' => 'PubSubHubbub ile anlık bildirim', + 'websub' => 'WebSub ile anlık bildirim', 'show' => array( 'all' => 'Show all feeds', //TODO - Translation 'error' => 'Show only feeds with error', //TODO - Translation diff --git a/app/i18n/zh-cn/sub.php b/app/i18n/zh-cn/sub.php index 49b6e4304..e1c176bc6 100644 --- a/app/i18n/zh-cn/sub.php +++ b/app/i18n/zh-cn/sub.php @@ -45,7 +45,7 @@ return array( 'main_stream' => '在首页中显示', 'normal' => '在分类中显示', ), - 'pubsubhubbub' => 'PubSubHubbub 即时通知', + 'websub' => 'WebSub 即时通知', 'show' => array( 'all' => 'Show all feeds', //TODO - Translation 'error' => 'Show only feeds with error', //TODO - Translation diff --git a/app/views/helpers/feed/update.phtml b/app/views/helpers/feed/update.phtml index 4dbaacd04..bc90ba456 100644 --- a/app/views/helpers/feed/update.phtml +++ b/app/views/helpers/feed/update.phtml @@ -133,7 +133,7 @@ </div> </div> <div class="form-group"> - <label class="group-name" for="pubsubhubbub"><?php echo _t('sub.feed.pubsubhubbub'); ?></label> + <label class="group-name" for="pubsubhubbub"><?php echo _t('sub.feed.websub'); ?></label> <div class="group-controls"> <label class="checkbox" for="pubsubhubbub"> <input type="checkbox" name="pubsubhubbub" id="pubsubhubbub" disabled="disabled" value="1"<?php echo $this->feed->pubSubHubbubEnabled() ? ' checked="checked"' : ''; ?> /> diff --git a/cli/README.md b/cli/README.md index 148e15be5..9c87c394e 100644 --- a/cli/README.md +++ b/cli/README.md @@ -38,7 +38,7 @@ cd /usr/share/FreshRSS ./cli/do-install.php --default_user admin ( --auth_type form --environment production --base_url https://rss.example.net --language en --title FreshRSS --allow_anonymous --api_enabled --db-type mysql --db-host localhost:3306 --db-user freshrss --db-password dbPassword123 --db-base freshrss --db-prefix freshrss ) # --auth_type can be: 'form' (default), 'http_auth' (using the Web server access control), 'none' (dangerous) # --db-type can be: 'sqlite' (default), 'mysql' (MySQL or MariaDB), 'pgsql' (PostgreSQL) -# --base_url should be a public (routable) URL if possible, and is used for push (PubSubHubbub), for some API functions (e.g. favicons), and external URLs in FreshRSS. +# --base_url should be a public (routable) URL if possible, and is used for push (WebSub), for some API functions (e.g. favicons), and external URLs in FreshRSS. # --environment can be: 'production' (default), 'development' (for additional log messages) # --language can be: 'en' (default), 'fr', or one of the [supported languages](../app/i18n/) # --db-prefix is an optional prefix in front of the names of the tables. We suggest using 'freshrss_' diff --git a/config.default.php b/config.default.php index 5b993f9e5..49f0cf1af 100644 --- a/config.default.php +++ b/config.default.php @@ -12,7 +12,7 @@ return array( 'salt' => '', # Specify address of the FreshRSS instance, - # used when building absolute URLs, e.g. for PubSubHubbub. + # used when building absolute URLs, e.g. for WebSub. # Examples: # https://example.net/FreshRSS/p/ # https://freshrss.example.net/ diff --git a/docs/en/users/05_Configuration.md b/docs/en/users/05_Configuration.md index f71cb15bc..225c1e5f9 100644 --- a/docs/en/users/05_Configuration.md +++ b/docs/en/users/05_Configuration.md @@ -132,7 +132,7 @@ At the moment, there is no helper to build a user query from here. 1. User control is based on the `.htaccess` file. 2. It is best practice to place the `.htaccess` file in the `./i/` subdirectory so the API and other third party services can work. - 3. If you want to limit all access to registered users only, place the file in the FreshRSS directory itself or in a parent directory. Note that PubsubHubbub and API will not work! + 3. If you want to limit all access to registered users only, place the file in the FreshRSS directory itself or in a parent directory. Note that WebSub and API will not work! 4. Example `.htaccess` file for a user "marie": ``` diff --git a/docs/fr/contributing.md b/docs/fr/contributing.md index c7ccb4d8a..b74f2e673 100644 --- a/docs/fr/contributing.md +++ b/docs/fr/contributing.md @@ -15,6 +15,6 @@ Vous pouvez notamment regarder [les tickets ouverts avec le tag "Documentation"] ## Contribuer au blog -Vous souhaitez écrire un article à propos des technologies RSS/Atom/PubSubHubbub ou tout simplement nous donner un coup de main à la rédaction d'un billet ? Vous pouvez nous aider ! +Vous souhaitez écrire un article à propos des technologies RSS/Atom/WebSub ou tout simplement nous donner un coup de main à la rédaction d'un billet ? Vous pouvez nous aider ! Pour cela, il suffit de vous rendre sur le dépôt GitHub [FreshRSS/freshrss.org](https://github.com/FreshRSS/freshrss.org) et de nous proposer une « Pull Request ». Les articles de blog doivent se trouver dans le répertoire `./blog` et être écrits en Markdown. diff --git a/docs/fr/users/08_PubSubHubbub.md b/docs/fr/users/08_PubSubHubbub.md index 0f2f14794..6e220b25b 100644 --- a/docs/fr/users/08_PubSubHubbub.md +++ b/docs/fr/users/08_PubSubHubbub.md @@ -1,15 +1,24 @@ -# Qu'est-ce que PubSubHubbub ? +# Qu’est-ce que [WebSub](https://www.w3.org/TR/websub/) ? -Derrière ce nom barbare se cache un protocole qui vient compléter Atom et RSS. En effet, le fonctionnement de base de ces deux derniers implique de vérifier à intervalles réguliers s'il existe de nouveaux articles sur les sites suivis. Cela même si le site concerné n'a rien publié depuis la dernière synchronisation. Le protocole PubSubHubbub permet d'éviter des synchronisations inutiles en notifiant en temps réel l'agrégateur de la présence de nouveaux articles. +Derrière ce nom (anciennement [PubSubHubbub](https://github.com/pubsubhubbub/PubSubHubbub)) se cache un protocole qui vient compléter Atom et RSS. +En effet, le fonctionnement de base de ces deux derniers implique de vérifier à intervalles réguliers s’il existe de nouveaux articles sur les sites suivis. +Cela même si le site concerné n’a rien publié depuis la dernière synchronisation. +Le [protocole WebSub](https://www.w3.org/TR/websub/) permet d’éviter des synchronisations inutiles en notifiant en temps réel l’agrégateur de la présence de nouveaux articles. -# Fonctionnement de PubSubHubbub +# Fonctionnement de WebSub -On va retrouver trois notions dans PubSubHubbub : les éditeurs (les sites qui publient du contenu), les abonnés (les agrégateurs de flux RSS) et les hubs. +On va retrouver trois notions dans WebSub : les éditeurs (les sites qui publient du contenu), les abonnés (les agrégateurs de flux RSS) et les hubs. -Lorsqu'un agrégateur s'abonne à un site et récupère son flux RSS, il peut y trouver l'adresse d'un hub. Si c'est le cas — car un site peut ne pas en préciser —, l'agrégateur va s'abonner au hub et non pas à l'éditeur directement. Ainsi, lorsqu'un éditeur va publier du contenu, il va notifier le hub qui va lui-même notifier et envoyer le contenu à tous ses abonnés. +Lorsqu’un agrégateur s’abonne à un site et récupère son flux RSS, il peut y trouver l’adresse d’un hub. +Si c’est le cas — car un site peut ne pas en préciser —, l’agrégateur va s’abonner au hub et non pas à l’éditeur directement. +Ainsi, lorsqu’un éditeur va publier du contenu, il va notifier le hub qui va lui-même notifier et envoyer le contenu à tous ses abonnés. Pour pouvoir être notifié, les abonnés doivent fournir une adresse accessible publiquement sur Internet. -# PubSubHubbub et FreshRSS +# WebSub et FreshRSS -Depuis la version 1.1.2-beta, FreshRSS supporte officiellement PubSubHubbub. Vous pouvez donc recevoir en temps réel les articles des sites qui affichent dans leur flux RSS un « hub ». +Depuis la version 1.1.2-beta, FreshRSS supporte officiellement WebSub. +Vous pouvez donc recevoir en temps réel les articles des sites qui affichent dans leur flux RSS un « hub », +tels [Mastodon](https://joinmastodon.org), [Friendica](https://friendi.ca), WordPress (WordPress.com ou avec [une extension](https://wordpress.org/plugins/pubsubhubbub/)), Blogger, FeedBurner, Slashdot, etc. + +Vous pouvez tester avec http://push-pub.appspot.com. diff --git a/p/api/pshb.php b/p/api/pshb.php index ac78bfd74..b6f03593d 100644 --- a/p/api/pshb.php +++ b/p/api/pshb.php @@ -79,7 +79,7 @@ if (!empty($_REQUEST['hub_mode']) && $_REQUEST['hub_mode'] === 'subscribe') { } $hubJson['lease_start'] = time(); if (!isset($hubJson['error'])) { - $hubJson['error'] = true; //Do not assume that PubSubHubbub works until the first successul push + $hubJson['error'] = true; //Do not assume that WebSub works until the first successul push } file_put_contents('./!hub.json', json_encode($hubJson)); header('Connection: close'); @@ -162,5 +162,5 @@ if ($nb === 0) { file_put_contents('./!hub.json', json_encode($hubJson)); } -Minz_Log::notice('PubSubHubbub ' . $self . ' done: ' . $nb, PSHB_LOG); +Minz_Log::notice('WebSub ' . $self . ' done: ' . $nb, PSHB_LOG); exit('Done: ' . $nb . "\n"); |
