Пример #1
0
        public static async Task Show(bool force = false)
        {
            if (!force)
            {
                //两小时以内不重复更新。
                if (Setting.LastUpdateTime.AddHours(2) > DateTime.Now)
                {
                    return;
                }

                //每日更新内容显示四小时
                if (Setting.LastDayResultTime.AddHours(4) > DateTime.Now)
                {
                    return;
                }
            }


            if (Setting.ShowDayResult && Setting.LastDayResultTime < DateTime.Today)
            {
                var res = await GankService.GetDayResult(DateTime.Today, false);

                if (res.all.Any())
                {
                    UpdateBadgeGlyph(res.all.Count().ToString());
                    UpdateTileAndShowToastByResults(res);
                    return;
                }
            }
            ClearBadge();
            await UpdateTileByPhotos();
        }
Пример #2
0
        public async Task InitData(bool useCache = true)
        {
            IsLoading = true; ErrorMsg = "";
            try
            {
                HistoryDates = await GankService.GetHistoryDatesAsync();

                if (HistoryDates == null || HistoryDates.Length <= 0)
                {
                    ErrorMsg = "获取天数失败。";
                    return;
                }
                CurrentDate = CurrentDate ?? HistoryDates.First();
                await loadDataByDate(CurrentDate.Value, useCache);

                if (CurrentDate >= DateTime.Today)
                {
                    Common.TileAndToast.ClearBadge();
                }
            }
            catch (Exception e)
            {
                ErrorMsg = $"获取数据失败:{e.Message}";
            }
            finally
            {
                //Views.Busy.SetBusy(false);
                IsLoading = false;
            }
        }
Пример #3
0
        private async Task loadDataByDate(DateTime date, bool useCache)
        {
            DayResults.Clear(); HeaderImage = " "; ErrorMsg = "";
            IsLoading = true;

            if (!HistoryDates.Contains(date.Date))
            {
                ErrorMsg = $"当日无数据:{date:yyyy-MM-dd}";
                return;
            }

            //Views.Busy.SetBusy(true, "请稍候...");
            try
            {
                var res = await GankService.GetDayResult(date, useCache);

                res.all.Where(i => !(i is 福利)).ForEach(DayResults.Add);
                HeaderImage = res.福利?.FirstOrDefault()?.url;
            }
            catch (Exception e)
            {
                ErrorMsg = $"获取{date:yyyy-MM-dd}数据失败:{Environment.NewLine}{e.Message}";
            }
            finally
            {
                //Views.Busy.SetBusy(false);
                CurrentDate = date;//.ToString("yyyy-MM-dd");
                IsLoading   = false;
            }
        }
Пример #4
0
        private async void ContentDialog_SecondaryButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args)
        {
            PostingProgressBar.Visibility = Visibility.Visible;
            IsSecondaryButtonEnabled      = false;

            var deferral = args.GetDeferral();

            SettingsService.Instance.Publisher = who;

            var res = await GankService.PostGank(url, desc, who, type
#if DEBUG
                                                 , debug : true
#endif
                                                 );

            PostingProgressBar.Visibility = Visibility.Collapsed;
            if (res.error)
            {
                args.Cancel  = true;
                MsgText.Text = res.msg;
            }
            else
            {
                MsgText.Text = "提交成功";
                await Task.Delay(1500);
            }
            IsSecondaryButtonEnabled = true;
            deferral.Complete();
        }
Пример #5
0
        public async Task <IEnumerable <福利> > GetPagedItemsAsync(int pageIndex, int pageSize, CancellationToken cancellationToken = default(CancellationToken))
        {
            var res = await GankService.GetRandomCategoryItemsAsync <福利>(pageSize);

            if (res == null || !res.Any())
            {
                throw new NoMoreItemsException();
            }
            return(res);
        }
Пример #6
0
        public async Task <IEnumerable <福利> > GetPagedItemsAsync(int pageIndex, int pageSize, CancellationToken cancellationToken = default(CancellationToken))
        {
            //Views.Busy.SetBusy(true,$"加载第{pageIndex + 1}页数据。");
            var res = await GankService.GetFuliResult(pageSize, pageIndex + 1);

            //res.ForEach(async f => await ImageCache.Instance.PreCacheAsync(new Uri(f.url)));
            if (res == null || !res.Any())
            {
                throw new NoMoreItemsException();
            }
            return(res);
        }
Пример #7
0
        public async Task <IEnumerable <T> > GetPagedItemsAsync(int pageIndex, int pageSize, CancellationToken cancellationToken = default(CancellationToken))
        {
            //Random r = new Random();
            //if (r.Next(100) % 3 == 0)
            //    throw new Exception();

            var res = await GankService.GetCategoryItems <T>(pageSize, pageIndex + 1);

            if (res == null || !res.Any())
            {
                throw new NoMoreItemsException();
            }
            return(res);
        }
Пример #8
0
        public static async Task UpdateTileByPhotos(IEnumerable <福利> fulis = null)
        {
            try
            {
                fulis = fulis ?? await GankService.GetRandomCategoryItemsAsync <福利>(5);

                var updater = getTileUpdater(fulis.Count() >= 5);
                foreach (var f in fulis.Sample(5))
                {
                    string xml;
                    xml = getFuliTileXML(f);
                    var doc = loadXml(xml);
                    updater.Update(new TileNotification(doc));
                }
                Setting.LastUpdateTime = DateTime.Now;
            }
            catch (Exception e)
            {
                Debug.WriteLine(e.Message);
            }
        }
Пример #9
0
        public async Task <IEnumerable <T> > GetPagedItemsAsync(int pageIndex, int pageSize, CancellationToken cancellationToken = default(CancellationToken))
        {
            //Views.Busy.SetBusy(true,$"加载第{pageIndex + 1}页数据。");
            //try
            //{
            var res = await GankService.GetRandomCategoryItemsAsync <T>(pageSize);

            if (res == null || !res.Any())
            {
                throw new NoMoreItemsException();
            }
            return(res);
            //}
            //catch (Exception e)
            //{
            //    Debug.WriteLine($"获取{typeof(T)}数据失败:" + e.Message);
            //    return new T[0];
            //}
            //finally
            //{
            //    //Views.Busy.SetBusy(false);
            //}
        }