ApiFeedWatchlist: Handle revdel
authorBrad Jorsch <bjorsch@wikimedia.org>
Fri, 10 Jul 2015 14:04:10 +0000 (10:04 -0400)
committerBrad Jorsch <bjorsch@wikimedia.org>
Fri, 10 Jul 2015 14:04:10 +0000 (10:04 -0400)
We might get back rows with no title (log entries with deleted action)
or no user (anything with deleted user). Don't raise warnings for those.

Bug: T105367
Change-Id: I64b4fba478b3e1e86854843965b2ea2b5c1d7933

includes/api/ApiFeedWatchlist.php

index 853b138..0ddb3c3 100644 (file)
@@ -169,6 +169,11 @@ class ApiFeedWatchlist extends ApiBase {
         * @return FeedItem
         */
        private function createFeedItem( $info ) {
+               if ( !isset( $info['title'] ) ) {
+                       // Probably a revdeled log entry, skip it.
+                       return null;
+               }
+
                $titleStr = $info['title'];
                $title = Title::newFromText( $titleStr );
                $curidParam = array();
@@ -205,9 +210,14 @@ class ApiFeedWatchlist extends ApiBase {
                }
 
                $timestamp = $info['timestamp'];
-               $user = $info['user'];
 
-               $completeText = "$comment ($user)";
+               if ( isset( $info['user'] ) ) {
+                       $user = $info['user'];
+                       $completeText = "$comment ($user)";
+               } else {
+                       $user = '';
+                       $completeText = (string)$comment;
+               }
 
                return new FeedItem( $titleStr, $completeText, $titleUrl, $timestamp, $user );
        }