return;
}
- for ($i = 0; $i < $entries->length; $i++) {
- $entry = $entries->item($i);
- $this->processEntry($entry, $feed, $source);
- }
+ $this->processEntries($entries, $feed, $source);
}
public function processRssFeed(DOMElement $rss, $source)
$items = $channel->getElementsByTagName('item');
- for ($i = 0; $i < $items->length; $i++) {
- $item = $items->item($i);
- $this->processEntry($item, $channel, $source);
+ $this->processEntries($items, $channel, $source);
+ }
+
+ public function processEntries(DOMNodeList $entries, DOMElement $feed, $source)
+ {
+ for ($i = 0; $i < $entries->length; $i++) {
+ $entry = $entries->item($i);
+ try {
+ $this->processEntry($entry, $feed, $source);
+ } catch (AlreadyFulfilledException $e) {
+ common_debug('We already had this entry: '.$e->getMessage());
+ }
}
}
*
* @return Notice Notice representing the new (or existing) activity
*/
- public function processEntry($entry, $feed, $source)
+ public function processEntry(DOMElement $entry, DOMElement $feed, $source)
{
$activity = new Activity($entry, $feed);
return $this->processActivity($activity, $source);
}
// TODO: Make this throw an exception
- public function processActivity($activity, $source)
+ public function processActivity(Activity $activity, $source)
{
$notice = null;
}
}
- // Try to get some hCard data
+ if (in_array(
+ preg_replace('/\s*;.*$/', '', $response->getHeader('Content-Type')),
+ array('application/rss+xml', 'application/atom+xml', 'application/xml', 'text/xml'))
+ ) {
+ $hints['feedurl'] = $response->getUrl();
+ } else {
+ // Try to get some hCard data
- $body = $response->getBody();
+ $body = $response->getBody();
- $hcardHints = DiscoveryHints::hcardHints($body, $finalUrl);
+ $hcardHints = DiscoveryHints::hcardHints($body, $finalUrl);
- if (!empty($hcardHints)) {
- $hints = array_merge($hints, $hcardHints);
+ if (!empty($hcardHints)) {
+ $hints = array_merge($hints, $hcardHints);
+ }
}
// Check if they've got an LRDD header