diff options
author | Zach Copley <zach@status.net> | 2010-02-08 21:55:32 -0800 |
---|---|---|
committer | Zach Copley <zach@status.net> | 2010-02-08 21:55:32 -0800 |
commit | 602b01a7554a2ba50ed169db45d57c54823642a0 (patch) | |
tree | c1ad0dc29faec3149610e6885e67e91671c5c98e /plugins/OStatus/lib/feeddiscovery.php | |
parent | b56b154b51ede363ee8e49ec5b9b9332b8df923c (diff) | |
parent | 4e6f587f868d71f08c618d0dedf6ddf0331619c2 (diff) |
Merge branch 'testing' of gitorious.org:statusnet/mainline into testing
* 'testing' of gitorious.org:statusnet/mainline:
Pull GeoRSS locations over OStatus feeds
Allow scripts/decache.php to blow out cache for objects that don't exist (anymore).
OStatus cleanup...
readme and version for beta5
Delete old Twitter user record when user changes screen name instead of updating. Simpler.
Store Twitter screen_name, not name, for foreign_user.nickname when saving Twitter user.
Actually store the timestamp on each nonce
OAuth app name should not be null
Fix issue with OAuth request parameters being parsed/stored twice when
- Fix cache handling in TwitterStatusFetcher
Added right margin for notice text. Helps Conversation notices look
Confirm dialog for reset OAuth consumer key and secret button
Always check for an OAuth request. This allows OAuth clients to set an
Linkify notice source when posting from registered OAuth apps
Suppress notice input box on OAuth authorization page
Better token revocation
Allow developers to delete OAuth applications
OAuth app names should be unique.
Prevents app statistic text from wrapping around avatar
Sentence case for app statistics
Diffstat (limited to 'plugins/OStatus/lib/feeddiscovery.php')
-rw-r--r-- | plugins/OStatus/lib/feeddiscovery.php | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/plugins/OStatus/lib/feeddiscovery.php b/plugins/OStatus/lib/feeddiscovery.php index 9bc7892fb..39985fc90 100644 --- a/plugins/OStatus/lib/feeddiscovery.php +++ b/plugins/OStatus/lib/feeddiscovery.php @@ -168,7 +168,13 @@ class FeedDiscovery } // Ok... now on to the links! + // Types listed in order of priority -- we'll prefer Atom if available. // @fixme merge with the munger link checks + $feeds = array( + 'application/atom+xml' => false, + 'application/rss+xml' => false, + ); + $nodes = $dom->getElementsByTagName('link'); for ($i = 0; $i < $nodes->length; $i++) { $node = $nodes->item($i); @@ -181,17 +187,21 @@ class FeedDiscovery $type = trim($type->value); $href = trim($href->value); - $feedTypes = array( - 'application/rss+xml', - 'application/atom+xml', - ); - if (trim($rel) == 'alternate' && in_array($type, $feedTypes)) { - return $this->resolveURI($href, $base); + if (trim($rel) == 'alternate' && array_key_exists($type, $feeds) && empty($feeds[$type])) { + // Save the first feed found of each type... + $feeds[$type] = $this->resolveURI($href, $base); } } } } + // Return the highest-priority feed found + foreach ($feeds as $type => $url) { + if ($url) { + return $url; + } + } + return false; } |