Handle feed imports with exceptions better

This commit is contained in:
Mikael Nordfeldth 2015-12-31 15:05:35 +01:00
parent 7adf1c99fc
commit f6df44ea85

View File

@ -444,10 +444,7 @@ class Ostatus_profile extends Managed_DataObject
return; return;
} }
for ($i = 0; $i < $entries->length; $i++) { $this->processEntries($entries, $feed, $source);
$entry = $entries->item($i);
$this->processEntry($entry, $feed, $source);
}
} }
public function processRssFeed(DOMElement $rss, $source) public function processRssFeed(DOMElement $rss, $source)
@ -465,9 +462,18 @@ class Ostatus_profile extends Managed_DataObject
$items = $channel->getElementsByTagName('item'); $items = $channel->getElementsByTagName('item');
for ($i = 0; $i < $items->length; $i++) { $this->processEntries($items, $channel, $source);
$item = $items->item($i); }
$this->processEntry($item, $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());
}
} }
} }
@ -480,14 +486,14 @@ class Ostatus_profile extends Managed_DataObject
* *
* @return Notice Notice representing the new (or existing) activity * @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); $activity = new Activity($entry, $feed);
return $this->processActivity($activity, $source); return $this->processActivity($activity, $source);
} }
// TODO: Make this throw an exception // TODO: Make this throw an exception
public function processActivity($activity, $source) public function processActivity(Activity $activity, $source)
{ {
$notice = null; $notice = null;