From: Evan Prodromou <evan@status.net>
Date: Tue, 13 Jul 2010 14:42:06 +0000 (-0400)
Subject: handle notices without profiles better in RSS output
X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=ab149755b62aaf7959a97e4a425e20aebf4c92cc;p=quix0rs-gnu-social.git

handle notices without profiles better in RSS output
---

diff --git a/lib/apiaction.php b/lib/apiaction.php
index 8de13a62da..16dd878142 100644
--- a/lib/apiaction.php
+++ b/lib/apiaction.php
@@ -461,6 +461,11 @@ class ApiAction extends Action
     function twitterRssEntryArray($notice)
     {
         $profile = $notice->getProfile();
+
+        if (empty($profile)) {
+            throw new ServerException(sprintf(_('No such profile: %d'), $notice->profile_id));
+        }
+
         $entry = array();
 
         // We trim() to avoid extraneous whitespace in the output
@@ -789,13 +794,23 @@ class ApiAction extends Action
 
         if (is_array($notice)) {
             foreach ($notice as $n) {
-                $entry = $this->twitterRssEntryArray($n);
-                $this->showTwitterRssItem($entry);
+                try {
+                    $entry = $this->twitterRssEntryArray($n);
+                    $this->showTwitterRssItem($entry);
+                } catch (Exception $e) {
+                    common_log(LOG_ERR, "Error with notice {$n->id}: " . $e->getMessage());
+                    // continue on exceptions
+                }
             }
         } else {
             while ($notice->fetch()) {
-                $entry = $this->twitterRssEntryArray($notice);
-                $this->showTwitterRssItem($entry);
+                try {
+                    $entry = $this->twitterRssEntryArray($notice);
+                    $this->showTwitterRssItem($entry);
+                } catch (Exception $e) {
+                    common_log(LOG_ERR,  "Error with notice {$n->id}: " . $e->getMessage());
+                    // continue on exceptions
+                }
             }
         }