]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Handle feed imports with exceptions better
authorMikael Nordfeldth <mmn@hethane.se>
Thu, 31 Dec 2015 14:05:35 +0000 (15:05 +0100)
committerMikael Nordfeldth <mmn@hethane.se>
Thu, 31 Dec 2015 14:05:35 +0000 (15:05 +0100)
plugins/OStatus/classes/Ostatus_profile.php

index fa6170cfdf1bccd468282e8ae4e5c738e0698208..00c87bb004839838d9c9b7ae722a5625e0387cbd 100644 (file)
@@ -444,10 +444,7 @@ class Ostatus_profile extends Managed_DataObject
             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)
@@ -465,9 +462,18 @@ class Ostatus_profile extends Managed_DataObject
 
         $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());
+            }
         }
     }
 
@@ -480,14 +486,14 @@ class Ostatus_profile extends Managed_DataObject
      *
      * @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;