Пример #1
0
        protected override async Task OnLoad(AsyncLoadContext context)
        {
            var userInfo = await Context.Twitter.Users.ShowUser(UserId, false);

            Title = userInfo.ScreenNameResponse;

            await base.OnLoad(context);
        }
Пример #2
0
        public async Task Load(AsyncLoadContext context)
        {
            Task.Run(() => Parser.StartStreaming()).Forget();

            await OnLoad(context).ContinueWith(t =>
            {
                IsLoading = false;
                RaisePropertyChanged(nameof(IsLoading));
            });
        }
Пример #3
0
        protected override async Task OnLoad(AsyncLoadContext context)
        {
            var statuses = await Context.Twitter.Statuses.List(Definition.TargetAccounts);

            var list = new List <StatusViewModel>();

            foreach (var s in statuses)
            {
                list.Add(await CreateViewModel(s, context));
            }

            await AddItems(list);
        }
Пример #4
0
        protected override async Task OnLoad(AsyncLoadContext context)
        {
            var statuses = await Context.Twitter.Favorites.List(Context.UserId);

            var list = new List <StatusViewModel>();

            foreach (var s in statuses)
            {
                list.Add(await CreateViewModel(s, context));
            }

            await AddItems(list);
        }
Пример #5
0
        protected async Task <StatusViewModel> CreateViewModel(Status s, AsyncLoadContext context = AsyncLoadContext.Default)
        {
            var vm = new StatusViewModel(s, Context, Configuration, ViewServiceRepository);

            if (context == AsyncLoadContext.Default)
            {
                await vm.LoadDataAsync();
            }
            else
            {
                Task.Run(async() => await vm.LoadDataAsync()).Forget();
            }

            return(vm);
        }
Пример #6
0
        protected virtual async Task OnLoad(AsyncLoadContext context)
        {
            var list           = new List <StatusViewModel>();
            var cachedStatuses = await Cache.GetStatusesForColumn(Definition.Id, Configuration.General.TweetFetchCount);

            foreach (var s in cachedStatuses.Where(s => !Muter.IsMuted(s)))
            {
                list.Add(await CreateViewModel(s, context));
            }

            await AddItems(list);

            var filterList = new List <Expression <Func <Status, bool> > >(3)
            {
                CountExpression,
                StatusFilterExpression
            };

            if (SinceId != 0)
            {
                filterList.Add(SinceIdFilterExpression);
            }

            var statuses = await Context.Twitter.Statuses.Filter(filterList.ToArray());

            await Cache.MapStatusesToColumn(statuses, Definition.Id);

            list.Clear();

            foreach (var s in statuses.Where(s => !Muter.IsMuted(s)))
            {
                list.Add(await CreateViewModel(s, context));
            }

            await AddItems(list);
        }
Пример #7
0
        protected override async Task OnLoad(AsyncLoadContext context)
        {
            Dictionary <ulong, DirectMessage> userMap = new Dictionary <ulong, DirectMessage>();
            var cachedMessages = await Cache.GetMessages();

            foreach (var c in cachedMessages)
            {
                var userId = c.Sender == Context.UserId
                                        ? c.Recipient
                                        : c.Sender;
                var msg = JsonConvert.DeserializeObject <DirectMessage>(c.Data);

                DirectMessage existing;
                if (userMap.TryGetValue(userId, out existing))
                {
                    if (existing.CreatedAt < msg.CreatedAt)
                    {
                        userMap[userId] = msg;
                    }
                }
                else
                {
                    userMap.Add(userId, msg);
                }
            }

            var messages = await Context.Twitter.Messages.IncomingMessages(200, MaxId);

            foreach (var msg in messages)
            {
                var           userId = msg.SenderID;
                DirectMessage existing;
                if (userMap.TryGetValue(userId, out existing))
                {
                    if (existing.CreatedAt < msg.CreatedAt)
                    {
                        userMap[userId] = msg;
                    }
                }
                else
                {
                    userMap.Add(userId, msg);
                }
            }

            var toCache = new List <MessageCacheEntry>();

            toCache.AddRange(messages.Select(m => new MessageCacheEntry(m)));

            messages = await Context.Twitter.Messages.OutgoingMessages(200, MaxId);

            foreach (var msg in messages)
            {
                var           userId = msg.RecipientID;
                DirectMessage existing;
                if (userMap.TryGetValue(userId, out existing))
                {
                    if (existing.CreatedAt < msg.CreatedAt)
                    {
                        userMap[userId] = msg;
                    }
                }
                else
                {
                    userMap.Add(userId, msg);
                }
            }

            toCache.AddRange(messages.Select(m => new MessageCacheEntry(m)));
            await Cache.AddMessages(toCache);

            var list = new List <MessageViewModel>();

            foreach (var s in userMap.Values.OrderByDescending(m => m.CreatedAt))
            {
                var vm = await CreateViewModel(s);

                vm.WasRead = true;

                list.Add(vm);
            }

            await AddItems(list);
        }
Пример #8
0
 protected override async Task OnLoad(AsyncLoadContext context)
 {
     await SetJobs();
 }