Browse Source

Fix loading of private tweets from previous logged in user

rohit.gowda 4 years ago
parent
commit
00830ff890

+ 9 - 3
app/src/providers/auth/auth.ts

@@ -3,6 +3,7 @@ import { Injectable } from "@angular/core";
 import { Storage } from "@ionic/storage";
 import firebase from "firebase";
 import { TwitterApiProvider } from "../twitter-api/twitter-api";
+import { PgpKeyServerProvider } from "../../providers/pgp-key-server/pgp-key-server";
 
 @Injectable()
 export class AuthProvider {
@@ -10,7 +11,8 @@ export class AuthProvider {
   constructor(
     public http: HttpClient,
     private storage: Storage,
-    private twitter: TwitterApiProvider
+    private twitter: TwitterApiProvider,
+     private openpgp: PgpKeyServerProvider
   ) {
     const config = {
       apiKey: "AIzaSyDRb5IVPCjdKld_5ubsGuP9tEPTRG0kgQ4",
@@ -51,14 +53,18 @@ export class AuthProvider {
    * Logs the user out by deleting session data
    */
   logout() {
-    firebase.auth().signOut().then(function() {
+     this.storage.clear();
+     this.openpgp.clearStoredKeys();
+     firebase.auth().signOut().then(function() {
   // Sign-out successful.
     console.log("user signed out successful");
+
     }, function(error) {
       // An error happened.
         console.log("UNABLE TO sign user out:",error);
     });
-    this.storage.clear();
+    
+ 
   }
 
   /**

+ 8 - 13
app/src/providers/feed/feed.ts

@@ -64,11 +64,11 @@ export class FeedProvider {
    */
   public async loadHomeTimeline(oldestPublicTweet ? , oldestPrivateTweet ? ) {
     // Fetch tweets from Twitter
-    console.log("loading hometimeline");
+    await this.storage.get("userId").then(userId => (this.userId = userId));
+    // console.log("loading hometimeline for userId:",this.userId);
     const maxId = oldestPublicTweet ? oldestPublicTweet["id_str"] : undefined;
     let tweets = await this.twitter.fetchHomeFeed(maxId);
     tweets = tweets.filter(tweet => tweet.id_str != maxId);
-
     // Determine start and end of time interval to look for private tweets
     const intervalStart: Date = oldestPrivateTweet ?
       new Date(oldestPrivateTweet["created_at"]) :
@@ -82,7 +82,7 @@ export class FeedProvider {
     const friendsAndUserIds = friends
       .map(friend => friend.id_str)
       .concat([this.userId]);
-      console.log("friendsAndUserIds are:"+friendsAndUserIds);
+      // console.log("friendsAndUserIds are:"+friendsAndUserIds);
 
     // Fetch ipfs hashs for period
     const promises: Promise < object[] > [] = friendsAndUserIds.map(accountId => {
@@ -104,12 +104,7 @@ export class FeedProvider {
 
     if (privateTweetHashs.length > 0) {
       const privateTweets = await this.fetchPrivateTweets(privateTweetHashs);
-      // Combine and sort tweets
-      const userPrivateTweets = await this.fetchUserPrivateTweets(this.userId,intervalStart,intervalEnd);
-      if(!userPrivateTweets){
-        privateTweets.concat(userPrivateTweets);
-      }
-
+    
       return tweets
         .concat(privateTweets)
         .sort((a, b) => this.sortByDateAsc(a, b));
@@ -145,7 +140,7 @@ export class FeedProvider {
     for (let i = 0; i < resolvedPromises.length; i++) {
       if (resolvedPromises[i]) {
         let email = resolvedPromises[i]["email"];
-        
+        // console.log("email is:",email);
         if(email){
          this.opnpgp.lookupKeys(email);
         }
@@ -182,14 +177,14 @@ export class FeedProvider {
         );
 
         pvtKeyTimestamped = await  this.getPrivateKeyAt(timestamp,privateKeyHistory);
-        // console.log("private key valid for ", timestamp, "is:",pvtKeyTimestamped);
+        console.log("private key valid for ", timestamp, "is:",pvtKeyTimestamped);
 
         if(pvtKeyTimestamped){
            let armrdpvtkey = await this.opnpgp.getArmoredPrivateKey(pvtKeyTimestamped);
-          // console.log("decrypted private key is:",armrdpvtkey);
+          console.log("decrypted private key is:",armrdpvtkey);
 
           const decryptedTweet = await this.opnpgp.decrypt(encryptedTweet, armrdpvtkey);
-          // console.log("decryptedTweet:",decryptedTweet)
+          console.log("decryptedTweet:",decryptedTweet)
           if (decryptedTweet)
             privateTweets.push(JSON.parse(decryptedTweet));
         }

+ 2 - 1
app/src/providers/twitter-api/twitter-api.ts

@@ -41,7 +41,7 @@ export class TwitterApiProvider {
    */
   public async fetchHomeFeed(maxId ? ) {
     const res = await this.client.get("statuses/home_timeline", {
-      count: 20,
+      count: 15,
       include_entities: true,
       tweet_mode: "extended",
       max_id: maxId
@@ -55,6 +55,7 @@ export class TwitterApiProvider {
    */
   public async fetchUser(userId) {
     const res = await this.client.get("users/show", { user_id: userId });
+    // console.log("User is:",res.data);
     return res.data;
   }