Ejemplo n.º 1
0
        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; }
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
                }
            }
        }
Ejemplo n.º 4
0
        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))));
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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;
            }
        }
Ejemplo n.º 7
0
        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;
        }