diff options
| author | 2020-04-24 16:29:19 +0200 | |
|---|---|---|
| committer | 2020-04-24 16:29:19 +0200 | |
| commit | dba40e58704a374755677ef1f24f6872a34bad80 (patch) | |
| tree | b240081d13a224da8d98f2794d6e53b6b8d26c35 | |
| parent | 5fbbc6ad583308578e915e206f518c153949f51b (diff) | |
WebSub move fixes (#2922)
Small fixes related to when WebSub changes address:
* When unsubscribing, one must use the current/old address, not the
newly found selfUrl;
* This change
https://github.com/FreshRSS/FreshRSS/pull/2659#discussion_r347263068 was
wrong, so reverted to the first version. We must obey the rules also for
feeds for which the initial WebSub enabling is not finished, otherwise
we never have a chance to redirect the feed to the proper selfUrl.
| -rwxr-xr-x | app/Controllers/feedController.php | 2 | ||||
| -rw-r--r-- | app/Models/Feed.php | 6 |
2 files changed, 6 insertions, 2 deletions
diff --git a/app/Controllers/feedController.php b/app/Controllers/feedController.php index 1f0d2d8ff..a2dcd360f 100755 --- a/app/Controllers/feedController.php +++ b/app/Controllers/feedController.php @@ -427,7 +427,7 @@ class FreshRSS_feed_Controller extends Minz_ActionController { $entryDAO->commit(); } - if ($pubSubHubbubEnabled && $feed->hubUrl() && $feed->selfUrl()) { //selfUrl has priority for WebSub + if ($pubsubhubbubEnabledGeneral && $feed->hubUrl() && $feed->selfUrl()) { //selfUrl has priority for WebSub if ($feed->selfUrl() !== $url) { // https://github.com/pubsubhubbub/PubSubHubbub/wiki/Moving-Feeds-or-changing-Hubs $selfUrl = checkUrl($feed->selfUrl()); if ($selfUrl) { diff --git a/app/Models/Feed.php b/app/Models/Feed.php index c0bc90b2d..0fc92f0bd 100644 --- a/app/Models/Feed.php +++ b/app/Models/Feed.php @@ -695,7 +695,11 @@ class FreshRSS_Feed extends Minz_Model { //Parameter true to subscribe, false to unsubscribe. public function pubSubHubbubSubscribe($state) { - $url = $this->selfUrl ? $this->selfUrl : $this->url; + if ($state) { + $url = $this->selfUrl ? $this->selfUrl : $this->url; + } else { + $url = $this->url; //Always use current URL during unsubscribe + } if ($url && (Minz_Request::serverIsPublic(FreshRSS_Context::$system_conf->base_url) || !$state)) { $hubFilename = PSHB_PATH . '/feeds/' . base64url_encode($url) . '/!hub.json'; $hubFile = @file_get_contents($hubFilename); |
