Browse Source

Catch error when accessing private profiles

Carsten Porth 5 years ago
parent
commit
1dcebd435d
2 changed files with 14 additions and 8 deletions
  1. 1 0
      app/src/providers/feed/feed.ts
  2. 13 8
      app/src/providers/twitter-api/twitter-api.ts

+ 1 - 0
app/src/providers/feed/feed.ts

@@ -27,6 +27,7 @@ export class FeedProvider {
     const maxId = oldestPublicTweet ? oldestPublicTweet["id_str"] : undefined;
     // Fetch tweets from Twitter
     let tweets = await this.twitter.fetchUserTimeline(userId, maxId);
+    if (tweets.length === 0) return tweets;
     tweets = tweets.filter(tweet => tweet.id_str != maxId);
 
     // Determine start and end of time interval to look for private tweets

+ 13 - 8
app/src/providers/twitter-api/twitter-api.ts

@@ -53,14 +53,19 @@ export class TwitterApiProvider {
   }
 
   public async fetchUserTimeline(userId, maxId?) {
-    const res = await this.client.get("statuses/user_timeline", {
-      user_id: userId,
-      max_id: maxId,
-      include_entities: true,
-      tweet_mode: "extended",
-      count: 20
-    });
-    return res.data;
+    try {
+      const res = await this.client.get("statuses/user_timeline", {
+        user_id: userId,
+        max_id: maxId,
+        include_entities: true,
+        tweet_mode: "extended",
+        count: 20
+      });
+      return res.data;
+    } catch (e) {
+      console.error(e);
+      return [];
+    }
   }
 
   public async createFriendship(userId) {