Пример #1
0
        private async Task FavListView_LoadItem(FavViewModel vm)
        {
            if (vm.VideoList.Count > 0)
            {
                return;
            }
            var fav = await BiliFavHelper.GetBiliFavAsync(vm.Id, 1, Settings.SESSDATA);

            if (fav.Id == 0)
            {
                var dialog = new NoticeDialog("提示", "已经没有更多了", "确定");
                await dialog.ShowAsync();

                return;
            }
            var list = new List <FavVideoViewModel>();

            foreach (var video in fav.VideoMasters)
            {
                list.Add(await FavVideoViewModel.CreateAsync(video.Title, video.Bv, video.CoverUrl));
            }
            list.ForEach(v => vm.VideoList.Add(v));
            vm.VideoList.Add(new FavVideoViewModel()
            {
                Bv       = "加载更多",
                Title    = "加载更多",
                CoverImg = new BitmapImage(new Uri("ms-appx:///Assets/LoadMore.png"))
            });
        }
Пример #2
0
        private async void BangumiListGridView_Loaded(object sender, RoutedEventArgs e)
        {
            if (_bangumiListViewLoaded)
            {
                return;
            }
            _bangumiListViewLoaded = true;
            StartLoadingAnimation();
            var list     = new List <BangumiViewModel>();
            var infoList = await BiliFavHelper.GetFavBangumiMasterListAsync(1, Settings.Uid, Settings.SESSDATA);

            if (infoList.Count < 1)
            {
                list.Add(new BangumiViewModel()
                {
                    Title    = "追番为空",
                    SeasonId = 0
                });
            }
            else
            {
                foreach (var bangumi in infoList)
                {
                    var model = new BangumiViewModel()
                    {
                        Title    = bangumi.Title,
                        SeasonId = bangumi.SeasonId
                    };
                    try
                    {
                        model.CoverImg = new BitmapImage(new Uri(bangumi.CoverUrl));
                    }
                    catch (Exception ex)
                    {
                        _logger.Error(ex, ex.Message);
                    }
                    list.Add(model);
                }
            }
            list.Add(new BangumiViewModel()
            {
                Title    = "加载更多",
                SeasonId = 0,
                //coverimage = ???
            });
            var collection = new ObservableCollection <BangumiViewModel>(list);

            BangumiListGridView.ItemsSource = collection;
            StopLoadingAnimation();
        }
        public async Task GetMoreVideoAsync(XamlRoot xamlRoot)
        {
            var count = this.VideoList.Count - 1;

            if ((count < 20) || (count % 20 != 0))
            {
                var dialog = new ErrorDialog("已经没有更多了", xamlRoot)
                {
                    PrimaryButtonText = ""
                };
                await dialog.ShowAsync();

                return;
            }

            var fav = await BiliFavHelper.GetBiliFavAsync(this.Id, (count / 20) + 1, UserPage.SESSDATA);

            if (fav == null)
            {
                var dialog = new ErrorDialog("已经没有更多了", xamlRoot)
                {
                    PrimaryButtonText = ""
                };
                await dialog.ShowAsync();

                return;
            }

            var list = new List <FavVideoViewModel>();

            foreach (var video in fav.VideoList)
            {
                list.Add(await FavVideoViewModel.CreateAsync(video.Title, video.Bv, video.Picture));
            }

            this.VideoList.Remove(this.VideoList.TakeLast(1).Single());
            list.ForEach(v => this.VideoList.Add(v));

            this.VideoList.Add(new FavVideoViewModel()
            {
                Bv       = "加载更多",
                Title    = "加载更多",
                CoverImg = new BitmapImage(new Uri("ms-appx:///Assets/LoadMore.png"))
            });
        }
Пример #4
0
        private async void FavListView_Loaded(object sender, RoutedEventArgs e)
        {
            if (_favListViewLoaded)
            {
                return;
            }
            _favListViewLoaded = true;
            StartLoadingAnimation();
            var favInfoList = await BiliFavHelper.GetUserFavListInfoAsync(Settings.Uid, Settings.SESSDATA);

            var favList = new List <FavViewModel>();

            foreach (var info in favInfoList)
            {
                var fav = await BiliFavHelper.GetBiliFavAsync(info.Id, 1, Settings.SESSDATA);

                if (fav.Id == 0)
                {
                    favList.Add(new FavViewModel()
                    {
                        Id         = info.Id,
                        Title      = info.Title,
                        VideoCount = 0,
                        VideoList  = new ObservableCollection <FavVideoViewModel>()
                    });
                    continue;
                }
                if (fav.VideoMasterCount > 0)
                {
                    favList.Add(new FavViewModel()
                    {
                        Id         = fav.Id,
                        Title      = fav.Title,
                        VideoCount = fav.VideoMasterCount,
                        VideoList  = new ObservableCollection <FavVideoViewModel>()
                    });
                }
            }
            var collection = new ObservableCollection <FavViewModel>(favList);

            FavListView.ItemsSource = collection;
            StopLoadingAnimation();
        }
Пример #5
0
        public async Task GetMoreVideoAsync()
        {
            var count = this.VideoList.Count - 1;

            if ((count < 20) || (count % 20 != 0))
            {
                var dialog = new NoticeDialog("提示", "已经没有更多了", "确定");
                await dialog.ShowAsync();

                return;
            }

            var fav = await BiliFavHelper.GetBiliFavAsync(this.Id, (count / 20) + 1, Settings.SESSDATA);

            if (fav.Id == 0)
            {
                var dialog = new NoticeDialog("提示", "已经没有更多了", "确定");
                await dialog.ShowAsync();

                return;
            }

            var list = new List <FavVideoViewModel>();

            foreach (var video in fav.VideoMasters)
            {
                list.Add(await FavVideoViewModel.CreateAsync(video.Title, video.Bv, video.CoverUrl));
            }

            this.VideoList.Remove(this.VideoList.TakeLast(1).Single());
            list.ForEach(v => this.VideoList.Add(v));

            this.VideoList.Add(new FavVideoViewModel()
            {
                Bv       = "加载更多",
                Title    = "加载更多",
                CoverImg = new BitmapImage(new Uri("ms-appx:///Assets/LoadMore.png"))
            });
        }
Пример #6
0
        private async void BangumiListGridView_ItemClick(object sender, ItemClickEventArgs e)
        {
            var info = e.ClickedItem as BangumiViewModel;

            if (info.SeasonId == 0)
            {
                var list  = BangumiListGridView.ItemsSource as ObservableCollection <BangumiViewModel>;
                var count = list.Count - 1;

                async Task NoticeNoMore()
                {
                    var dialog = new NoticeDialog("提示", "已经没有更多了");
                    await dialog.ShowAsync();
                }

                if ((count < 15) || (count % 15 != 0))
                {
                    await NoticeNoMore();

                    return;
                }
                var newList = await BiliFavHelper.GetFavBangumiMasterListAsync((count / 15) + 1, Settings.Uid, Settings.SESSDATA);

                if (newList == null)
                {
                    await NoticeNoMore();

                    return;
                }
                var toAddList = new List <BangumiViewModel>();
                list.Remove(list.Last());
                foreach (var bangumi in newList)
                {
                    var model = new BangumiViewModel()
                    {
                        Title    = bangumi.Title,
                        SeasonId = bangumi.SeasonId
                    };
                    try
                    {
                        model.CoverImg = new BitmapImage(new Uri(bangumi.CoverUrl));
                    }
                    catch (Exception ex)
                    {
                        _logger.Info(ex, ex.Message);
                    }
                    toAddList.Add(model);
                }
                toAddList.ForEach(b => list.Add(b));
                list.Add(new BangumiViewModel()
                {
                    Title    = "加载更多",
                    SeasonId = 0,
                    //CoverImg = ???
                });
            }
            else
            {
                var master = await BiliBangumiHelper.GetBangumiMasterAsync(info.SeasonId, Settings.SESSDATA);

                NavigationHelper.NavigateToPage(ContentPage.Search);
                SearchPage.Current.HandleMaster <BiliBangumiMasterResultPage, BiliBangumiMaster>(master);
            }
        }