public List <LazyLoader <Tweep> > GetFollowersWithLazyLoading(string screenname) { var context = TwitterModel.Instance(PrimaryUser.TwitterScreenName).GetAuthorizedTwitterContext(PrimaryUser.TwitterScreenName); //try //{ var friends = context .Friendship .Where(g => g.ScreenName == screenname && g.Type == FriendshipType.FollowersList && g.Cursor == -1) .SelectMany(g => g.Users) .Select(s => new LazyLoader <Tweep>(ulong.Parse(s.UserIDResponse), (() => new Tweep(s, Tweep.TweepType.Follower)))) .ToList(); friends.AddRange(context .Friendship .Where(g => g.ScreenName == screenname && g.Type == FriendshipType.FriendsList && g.Cursor == -1) .SelectMany(g => g.Users) .Select(s => new LazyLoader <Tweep>(ulong.Parse(s.UserIDResponse), (() => new Tweep(s, Tweep.TweepType.Following)))) .Where(x => !friends.Select(y => y.ID).Contains(x.ID))); return(friends); //} //catch { return null; } }
public static TwitterModel Instance(string screenname) { if (instance == null) { lock (instance_lock) { if (instance == null) { if (screenname != null) { instance = new TwitterModel(screenname); } else { throw new Exception("ScreenName cannot be null on first call to TwitterModel.Instance"); } } } } else if (screenname != null && instance.PrimaryUser.TwitterScreenName.ToLower() != screenname.ToLower()) { instance = null; return(Instance(screenname)); } return(instance); }
public void UpdateStatus(string statusText, string screenname = null, bool processStatus = true) { if (string.IsNullOrEmpty(screenname)) { screenname = PrimaryUser.TwitterScreenName; } var tweetTask = GetAuthorizedTwitterContext(screenname).TweetAsync(statusText); tweetTask.Wait(); var status = tweetTask.Result; if (processStatus) { status = TwitterModel.Instance(PrimaryUser.TwitterScreenName).GetAuthorizedTwitterContext(screenname) .Status .Where(s => s.StatusID == status.StatusID && s.ScreenName == screenname && s.IncludeEntities == true && s.Type == StatusType.User && s.Count == 1) .ToList().FirstOrDefault(); if (status != null) { var tweet = new Tweet(status); tweet.PopulateExtendedData(); CachedRepository <Tweet> .Instance(PrimaryUser.TwitterScreenName).Save(screenname + TWEETS, tweet); } } }
public LazyLoader <Tweep> GetLazyLoadedTweep(ulong userID, Tweep.TweepType tweepType = Tweep.TweepType.None) { var context = TwitterModel.Instance(PrimaryUser.TwitterScreenName).GetAuthorizedTwitterContext(PrimaryUser.TwitterScreenName); return(new LazyLoader <Tweep>( userID, (() => new Tweep(context.User.Where(u => u.Type == UserType.Show && u.UserID == userID).First(), tweepType)))); }
public List <LazyLoader <Tweep> > Followers(bool forceRefresh = false) { if (_Followers == null || forceRefresh) { _Followers = TwitterModel.Instance(null).GetFollowersWithLazyLoading(User.ScreenName) ?? new List <LazyLoader <Tweep> >(); } return(_Followers); }
public Tweep(PostworthyUser postworthyUser, TweepType type) { var model = TwitterModel.Instance(null); var context = model.GetAuthorizedTwitterContext(model.PrimaryUser.TwitterScreenName); var tempUser = context.User.Where(x => x.ScreenName == postworthyUser.TwitterScreenName && x.Type == UserType.Lookup).ToList().FirstOrDefault(); if (tempUser != null) { User = new User(tempUser); } else { throw new Exception("Could not Find Twitter User!"); } if (type == TweepType.Follower && User.Following) { Type = TweepType.Mutual; } else { Type = type; } }
public static TwitterModel Instance(string screenname) { if (instance == null) { lock (instance_lock) { if (instance == null) { if (screenname != null) instance = new TwitterModel(screenname); else throw new Exception("ScreenName cannot be null on first call to TwitterModel.Instance"); } } } else if (screenname != null && instance.PrimaryUser.TwitterScreenName.ToLower() != screenname.ToLower()) { instance = null; return Instance(screenname); } return instance; }