Ejemplo n.º 1
0
        private async void InitDetail(UserResponse detail)
        {
            var acc = detail.card;

            _user = acc;
            UserAvatar.ProfilePicture = new BitmapImage(new Uri(acc.face + "@50w.jpg"));
            PendantImage.Visibility   = Visibility.Collapsed;
            if (acc.pendant != null)
            {
                PendantImage.Visibility = Visibility.Visible;
                PendantImage.Source     = acc.pendant.image;
            }
            FanBlock.Text    = AppTool.GetNumberAbbreviation(acc.fans);
            FollowBlock.Text = AppTool.GetNumberAbbreviation(acc.attention);
            LikeBlock.Text   = AppTool.GetNumberAbbreviation(acc.likes.like_num);

            CheckFollowButtonStatus();

            UserNameBlock.Text = acc.name;
            SignBlock.Text     = acc.sign;
            LevelImage.Source  = new BitmapImage(new Uri($"ms-appx:///Assets/Level/level_{acc.level_info.current_level}.png"));

            if (detail.archive.count > 0)
            {
                _videoCount = detail.archive.count;
                var videos = detail.archive.item;
                videos.ForEach(p => VideoCollection.Add(p));
            }
            else
            {
                await LoadMoreVideo();
            }
        }
Ejemplo n.º 2
0
        private async Task LoadFans(bool isIncrease = false)
        {
            if (_isRequesting || (_isInit && _total == FansCollection.Count))
            {
                return;
            }
            if (isIncrease)
            {
                _page += 1;
            }
            _isRequesting = true;
            var data = await _accountService.GetMyFansAsync(_page, _reversion);

            if (data != null)
            {
                _reversion      = data.re_version;
                _total          = data.total;
                TotalBlock.Text = $"共 {AppTool.GetNumberAbbreviation(_total)} 个粉丝";
                if (data.list != null && data.list.Count > 0)
                {
                    data.list.ForEach(p => FansCollection.Add(p));
                }
            }
            _isRequesting         = false;
            HolderText.Visibility = FansCollection.Count == 0 ? Visibility.Visible : Visibility.Collapsed;
        }
Ejemplo n.º 3
0
 private static void Data_Changed(DependencyObject d, DependencyPropertyChangedEventArgs e)
 {
     if (e.NewValue != null && e.NewValue is Reply data)
     {
         var instance = d as ReplyMainBlock;
         instance.UserAvatar.Source        = new BitmapImage(new Uri(data.member.avatar + "@50w.jpg"));
         instance.UserNameBlock.Text       = data.member.uname;
         instance.LevelImage.Source        = new BitmapImage(new Uri($"ms-appx:///Assets/Level/level_{data.member.level_info.current_level}.png"));
         instance.TimeBlock.Text           = AppTool.GetReadDateString(data.ctime);
         instance.ContentBlock.EmoteSource = data.content.emote;
         instance.ContentBlock.Text        = data.content.message;
         instance.LikeBlock.Text           = AppTool.GetNumberAbbreviation(data.like);
         instance.LikeIcon.Foreground      = data.action == 1 ? UIHelper.GetThemeBrush(Models.Enums.ColorType.PrimaryColor) : UIHelper.GetThemeBrush(Models.Enums.ColorType.TipTextColor);
         if (data.rcount > 0 && instance.SubReplyVisibility == Visibility.Visible)
         {
             instance.SubReplyContainer.Visibility     = Visibility.Visible;
             instance.SubReplyItemsControl.ItemsSource = data.replies;
             instance.TotalReplyCount.Text             = $"共{AppTool.GetNumberAbbreviation(data.rcount)}条回复";
             instance.MoreReplyButton.Visibility       = data.rcount > 3 ? Visibility.Visible : Visibility.Collapsed;
         }
         else
         {
             instance.SubReplyContainer.Visibility = Visibility.Collapsed;
         }
     }
 }
Ejemplo n.º 4
0
 private void ViewModel_MyInfoChanged(object sender, BiliBili_Core.Models.BiliBili.Me me)
 {
     if (me != null)
     {
         CheckElementStatus();
         UserAvatar.ProfilePicture = new BitmapImage(new Uri(me.face))
         {
             DecodePixelWidth = 55
         };
         UserAvatarNarrrow.ProfilePicture = new BitmapImage(new Uri(me.face))
         {
             DecodePixelWidth = 55
         };
         if (me.pendant != null && !string.IsNullOrEmpty(me.pendant.image))
         {
             PendantImage.Visibility = Visibility.Visible;
             PendantImage.Source     = new BitmapImage(new Uri(me.pendant.image));
             UserNameBlock.Margin    = new Thickness(0);
         }
         else
         {
             PendantImage.Visibility = Visibility.Collapsed;
             UserNameBlock.Margin    = new Thickness(0, 20, 0, 0);
         }
         UserNameBlock.Text = me.name;
         LevelBlock.Level   = me.level;
         DynamicBlock.Text  = AppTool.GetNumberAbbreviation(me.dynamic);
         FollowBlock.Text   = AppTool.GetNumberAbbreviation(me.following);
         FanBlock.Text      = AppTool.GetNumberAbbreviation(me.follower);
     }
 }
        private void MyInfoInit(bool isSlimRefresh = false)
        {
            var me = App.BiliViewModel._client.Account.Me;

            if (me != null)
            {
                if (!isSlimRefresh)
                {
                    UserAvatar.ProfilePicture = new BitmapImage(new Uri(me.face))
                    {
                        DecodePixelWidth = 55
                    };
                    UserAvatarNarrrow.ProfilePicture = new BitmapImage(new Uri(me.face))
                    {
                        DecodePixelWidth = 55
                    };
                    if (me.pendant != null && !string.IsNullOrEmpty(me.pendant.image))
                    {
                        PendantImage.Visibility = Visibility.Visible;
                        PendantImage.Source     = new BitmapImage(new Uri(me.pendant.image));
                        UserNameBlock.Margin    = new Thickness(0);
                    }
                    else
                    {
                        PendantImage.Visibility = Visibility.Collapsed;
                        UserNameBlock.Margin    = new Thickness(0, 20, 0, 0);
                    }
                }
                UserNameBlock.Text = me.name;
                LevelBlock.Level   = me.level;
                DynamicBlock.Text  = AppTool.GetNumberAbbreviation(me.dynamic);
                FollowBlock.Text   = AppTool.GetNumberAbbreviation(me.following);
                FanBlock.Text      = AppTool.GetNumberAbbreviation(me.follower);
            }
        }
Ejemplo n.º 6
0
        private async void UpdateVideoInfo()
        {
            var data = await _videoService.GetVideoSlimAsync(_detail.aid);

            LikeButton.Text     = AppTool.GetNumberAbbreviation(data.like);
            CoinButton.Text     = AppTool.GetNumberAbbreviation(data.coin);
            FavoriteButton.Text = AppTool.GetNumberAbbreviation(data.favorite);
        }
Ejemplo n.º 7
0
        private async void LikeButton_Click(object sender, RoutedEventArgs e)
        {
            if (App.BiliViewModel.CheckAccoutStatus())
            {
                bool isLike = Data.desc.is_liked == 1;
                bool result = await App.BiliViewModel._client.Topic.SetDynamicLikeStatus(!isLike, Data.desc.dynamic_id, Data.desc.rid, App.BiliViewModel._client.Account.Me.mid.ToString());

                if (result)
                {
                    Data.desc.is_liked  = isLike ? 0 : 1;
                    Data.desc.like      = isLike ? Data.desc.like - 1 : Data.desc.like + 1;
                    LikeBlock.Text      = AppTool.GetNumberAbbreviation(Data.desc.like);
                    LikeIcon.Foreground = Data.desc.is_liked == 1 ? UIHelper.GetThemeBrush(ColorType.PrimaryColor) : UIHelper.GetThemeBrush(ColorType.TipTextColor);
                }
                else
                {
                    new TipPopup("点赞失败").ShowError();
                }
            }
        }
Ejemplo n.º 8
0
        private void HeaderInit(Topic data)
        {
            if (data.desc.user_profile != null)
            {
                HeaderContainer.Visibility = Visibility.Visible;
                UserAvatar.ProfilePicture  = new BitmapImage(new Uri(data.desc.user_profile.info.face))
                {
                    DecodePixelWidth = 40
                };
                UserNameBlock.Text = data.desc.user_profile.info.uname;
                string tip = AppTool.GetReadDateString(data.desc.timestamp);
                if (data.display != null && !string.IsNullOrEmpty(data.display.usr_action_txt))
                {
                    tip += " · " + data.display.usr_action_txt;
                }
                if (data.desc.view != 0)
                {
                    tip += " · " + AppTool.GetNumberAbbreviation(data.desc.view) + "次查看";
                }
                TipBlock.Text = tip;
            }
            else
            {
                HeaderContainer.Visibility = Visibility.Collapsed;
            }
            var me = App.BiliViewModel._client.Account.Me;

            if (data.desc.type == 512 || data.desc.type == 4101 || data.display == null)
            {
                FollowButton.Visibility = Visibility.Collapsed;
            }
            else if ((me != null && me.mid == data.desc.uid) || data.display.relation.is_follow == 1)
            {
                FollowButton.Visibility = Visibility.Collapsed;
            }
            else
            {
                FollowButton.Visibility = Visibility.Visible;
            }
        }
        public async Task Refresh()
        {
            ResetPage();
            var detail = await App.BiliViewModel._client.Channel.GetTagDetail(_tagId);

            _detail = detail;
            if (_detail != null)
            {
                TitleBlock.Text      = detail.name;
                SubscribeButton.Text = detail.is_atten == 1 ? "取消订阅" : "订阅";
                InfoBlock.Text       = $"{AppTool.GetNumberAbbreviation(detail.atten)}人订阅";
                if (Convert.ToBoolean(VideoButton.IsChecked))
                {
                    await RefreshVideo();
                }
                else
                {
                    await RefreshTopic();
                }
                HolderContainer.Visibility = Visibility.Collapsed;
            }
        }
Ejemplo n.º 10
0
        private async void LikeButton_Click(object sender, RoutedEventArgs e)
        {
            bool isLike = !(Data.action == 1);
            bool result = await App.BiliViewModel._client.LikeReplyAsync(isLike, Data.oid.ToString(), Data.rpid.ToString(), Data.type.ToString());

            if (result)
            {
                Data.action         = Data.action == 0 ? 1 : 0;
                LikeIcon.Foreground = Data.action == 1 ? UIHelper.GetThemeBrush(Models.Enums.ColorType.PrimaryColor) : UIHelper.GetThemeBrush(Models.Enums.ColorType.TipTextColor);
                if (isLike)
                {
                    Data.like += 1;
                }
                else
                {
                    Data.like -= 1;
                }
                LikeBlock.Text = AppTool.GetNumberAbbreviation(Data.like);
            }
            else
            {
                new TipPopup("操作失败").ShowError();
            }
        }
Ejemplo n.º 11
0
        public async Task <bool> Init(BangumiDetail detail, int partId)
        {
            Reset();
            App.AppViewModel.CurrentPlayerType  = Models.Enums.PlayerType.Bangumi;
            App.AppViewModel.CurrentVideoPlayer = VideoPlayer;
            _detail             = detail;
            TitleBlock.Text     = _detail.title;
            PlayCountBlock.Text = _detail.stat.play;
            TabletMainPage.Current.SetBackgroundImage(_detail.square_cover ?? _detail.cover);
            DanmakuCountBlock.Text = AppTool.GetNumberAbbreviation(_detail.stat.danmakus);
            RepostButton.Text      = AppTool.GetNumberAbbreviation(_detail.stat.share);
            CommentButton.Text     = AppTool.GetNumberAbbreviation(_detail.stat.reply);

            DescriptionBlock.Text = _detail.evaluate;
            ToolTipService.SetToolTip(DescriptionBlock, _detail.evaluate);

            if (_detail.rating != null)
            {
                ScoreBlock.Text      = _detail.rating.score.ToString();
                ScoreCountBlock.Text = AppTool.GetNumberAbbreviation(_detail.rating.count) + "人";
            }
            else
            {
                RatingContainer.Visibility = Visibility.Collapsed;
            }

            BasicInfoBlock.Text = $"{_detail.type_desc}\n{_detail.publish.release_date_show}\n{_detail.publish.time_length_show}";

            CoinButton.Text = AppTool.GetNumberAbbreviation(_detail.stat.coins);
            if (_detail.episodes != null && _detail.episodes.Count > 0)
            {
                PartGridView.Visibility = Visibility.Visible;
                _detail.episodes.ForEach(p => BangumiPartCollection.Add(p));
            }
            else
            {
                PartGridView.Visibility = Visibility.Collapsed;
            }
            if (isEp)
            {
                for (int i = 0; i < _detail.episodes.Count; i++)
                {
                    var part = _detail.episodes[i];
                    if (part.id == bangumiId)
                    {
                        _currentPart = part;
                        PartGridView.SelectedIndex = i;
                        PartGridView.ScrollIntoView(part, ScrollIntoViewAlignment.Leading);
                        break;
                    }
                }
                bangumiId = _detail.season_id;
            }
            else if (_detail.user_status.progress != null)
            {
                _currentPart = _detail.episodes.Where(p => p.id == _detail.user_status.progress.last_ep_id).FirstOrDefault();
                if (_currentPart != null)
                {
                    int lastIndex = _detail.episodes.IndexOf(_currentPart);
                    PartGridView.SelectedIndex = lastIndex - 1 < -1 ? -1 : lastIndex;
                    PartGridView.ScrollIntoView(_currentPart, ScrollIntoViewAlignment.Leading);
                }
            }

            if (_currentPart == null && _detail.episodes.Count > 0)
            {
                _currentPart = _detail.episodes.First();
                PartGridView.SelectedIndex = 0;
            }
            if (_detail.styles != null && _detail.styles.Count > 0)
            {
                TagGridView.Visibility = Visibility.Visible;
                _detail.styles.ForEach(p => TagCollection.Add(p));
            }
            else
            {
                TagGridView.Visibility = Visibility.Collapsed;
            }

            CheckFollowButton();

            if (_detail.limit != null)
            {
                await new ConfirmDialog(_detail.limit.content).ShowAsync();
                return(false);
            }
            await VideoPlayer.Init(_detail, _currentPart);

            return(true);
        }
Ejemplo n.º 12
0
        private bool InitDetail()
        {
            if (!string.IsNullOrEmpty(_detail.redirect_url))
            {
                var result = BiliTool.GetResultFromUri(_detail.redirect_url);
                videoId        = 0;
                _currentPartId = 0;
                App.AppViewModel.CurrentPagePanel.RemoveMainHistory(Models.Enums.AppMenuItemType.VideoPlayer);
                if (result.Type == UriType.Bangumi)
                {
                    new TipPopup("正在转到专题...").ShowMessage();
                    App.AppViewModel.PlayBangumi(Convert.ToInt32(result.Param), null, true);
                }
                return(false);
            }
            if (_isPlayList)
            {
                VideoPlayer.IsAutoReturnWhenEnd = false;
            }
            else
            {
                VideoPlayer.IsAutoReturnWhenEnd = _detail.pages.Count <= 1;
            }
            TitleBlock.Text = _detail.title;
            ToolTipService.SetToolTip(TitleBlock, _detail.title);
            videoId                = _detail.aid;
            bvId                   = _detail.bvid;
            PlayCountBlock.Text    = AppTool.GetNumberAbbreviation(_detail.stat.view);
            DanmukuCountBlock.Text = AppTool.GetNumberAbbreviation(_detail.stat.danmaku);
            RepostButton.Text      = AppTool.GetNumberAbbreviation(_detail.stat.share);
            CommentButton.Text     = AppTool.GetNumberAbbreviation(_detail.stat.reply);
            BVBlock.Text           = _detail.bvid;
            AVBlock.Text           = _detail.aid.ToString();

            DescriptionBlock.Text = _detail.desc;

            LikeButton.Text     = AppTool.GetNumberAbbreviation(_detail.stat.like);
            CoinButton.Text     = AppTool.GetNumberAbbreviation(_detail.stat.coin);
            FavoriteButton.Text = AppTool.GetNumberAbbreviation(_detail.stat.favorite);

            DateBlock.Text = AppTool.GetReadDateString(_detail.pubdate);

            UPAvatar.ProfilePicture = string.IsNullOrEmpty(_detail.owner.face) ? null : new BitmapImage(new Uri(_detail.owner.face + "@50w.jpg"))
            {
                DecodePixelWidth = 40
            };
            UPNameBlock.Text = _detail.owner.name;

            _detail.pages.ForEach(p => VideoPartCollection.Add(p));
            PartListView.SelectedIndex = PartGridView.SelectedIndex = 0;
            PartContainer.Visibility   = _detail.pages.Count > 1 ? Visibility.Visible : Visibility.Collapsed;

            if (_detail.tag != null && _detail.tag.Count > 0)
            {
                TagListView.Visibility = Visibility.Visible;
                _detail.tag.ForEach(p => TagCollection.Add(p));
            }
            else
            {
                TagListView.Visibility = Visibility.Collapsed;
            }

            if (_detail.staff != null && _detail.staff.Count > 0)
            {
                _detail.staff.ForEach(p => StaffCollection.Add(p));
                SingleUserContainer.Visibility = Visibility.Collapsed;
                StaffContainer.Visibility      = Visibility.Visible;
            }
            else
            {
                StaffContainer.Visibility      = Visibility.Collapsed;
                SingleUserContainer.Visibility = Visibility.Visible;
            }

            if (_detail.req_user != null)
            {
                LikeButton.IsCheck     = _detail.req_user.like != 0;
                CoinButton.IsCheck     = _detail.req_user.coin != 0;
                FavoriteButton.IsCheck = _detail.req_user.favorite != 0;
                FollowButton.Style     = _detail.req_user.attention == 1 ? UIHelper.GetStyle("DefaultAsyncButtonStyle") : UIHelper.GetStyle("PrimaryAsyncButtonStyle");
                FollowButton.Text      = _detail.req_user.attention == 1 ? "已关注" : "关注";
            }

            if (_detail.relates != null && _detail.relates.Count > 0)
            {
                _detail.relates.Where(p => p.@goto == "av").Take(10).ToList().ForEach(p => RelatedCollection.Add(p));
            }
            CheckLikeHoldState();
            return(true);
        }
Ejemplo n.º 13
0
        private async Task <bool> InitDetail()
        {
            TitleBlock.Text        = _detail.title;
            PlayCountBlock.Text    = _detail.stat.play;
            DanmukuCountBlock.Text = AppTool.GetNumberAbbreviation(_detail.stat.danmakus);
            RepostButton.Text      = AppTool.GetNumberAbbreviation(_detail.stat.share);
            CommentButton.Text     = AppTool.GetNumberAbbreviation(_detail.stat.reply);

            DescriptionBlock.Text = _detail.evaluate;
            ToolTipService.SetToolTip(DescriptionBlock, _detail.evaluate);

            if (_detail.rating != null)
            {
                ScoreBlock.Text      = _detail.rating.score.ToString();
                ScoreCountBlock.Text = AppTool.GetNumberAbbreviation(_detail.rating.count) + "人";
            }
            else
            {
                RatingContainer.Visibility = Visibility.Collapsed;
            }

            BasicInfoBlock.Text = $"{_detail.type_desc}\n{_detail.publish.release_date_show}\n{_detail.publish.time_length_show}";

            CoinButton.Text = AppTool.GetNumberAbbreviation(_detail.stat.coins);

            CoverImage.Source = new BitmapImage(new Uri(_detail.cover + "@200w.jpg"));

            Section1Title.Text   = _detail.actor.title;
            Section1Content.Text = _detail.actor.info;
            if (string.IsNullOrEmpty(_detail.actor.info))
            {
                Section1Container.Visibility = Visibility.Collapsed;
            }
            Section2Title.Text   = _detail.staff.title;
            Section2Content.Text = _detail.staff.info;
            if (string.IsNullOrEmpty(_detail.staff.info))
            {
                Section2Container.Visibility = Visibility.Collapsed;
            }

            _detail.episodes.ForEach(p => BangumiPartCollection.Add(p));
            if (isEp)
            {
                for (int i = 0; i < _detail.episodes.Count; i++)
                {
                    var part = _detail.episodes[i];
                    if (part.id == bangumiId)
                    {
                        _currentPart = part;
                        PartListView.SelectedIndex = PartGridView.SelectedIndex = i;
                        PartListView.ScrollIntoView(part, ScrollIntoViewAlignment.Leading);
                        PartGridView.ScrollIntoView(part, ScrollIntoViewAlignment.Leading);
                        break;
                    }
                }
                bangumiId = _detail.season_id;
            }
            else if (_detail.user_status.progress != null)
            {
                _currentPart = _detail.episodes.Where(p => p.id == _detail.user_status.progress.last_ep_id).FirstOrDefault();
                if (_currentPart != null)
                {
                    int lastIndex = _detail.episodes.IndexOf(_currentPart);
                    PartListView.SelectedIndex = PartGridView.SelectedIndex = lastIndex - 1 < -1 ? -1 : lastIndex;
                    PartListView.ScrollIntoView(_currentPart, ScrollIntoViewAlignment.Leading);
                    PartGridView.ScrollIntoView(_currentPart, ScrollIntoViewAlignment.Leading);
                }
            }

            if (_currentPart == null && _detail.episodes.Count > 0)
            {
                _currentPart = _detail.episodes.First();
                PartListView.SelectedIndex = PartGridView.SelectedIndex = 0;
            }
            if (_detail.styles != null && _detail.styles.Count > 0)
            {
                TagListView.Visibility = Visibility.Visible;
                _detail.styles.ForEach(p => TagCollection.Add(p));
            }
            else
            {
                TagListView.Visibility = Visibility.Collapsed;
            }

            CheckFollowButton();

            if (_detail.limit != null)
            {
                await new ConfirmDialog(_detail.limit.content).ShowAsync();
                return(false);
            }
            return(true);
        }
Ejemplo n.º 14
0
        public object Convert(object value, Type targetType, object parameter, string language)
        {
            var num = System.Convert.ToInt32(value);

            return(AppTool.GetNumberAbbreviation(num));
        }
Ejemplo n.º 15
0
 private void BodyInit(Topic data)
 {
     MainDisplay.Visibility = Visibility.Visible;
     MoreButton.Visibility  = Visibility.Collapsed;
     if (data.display != null && data.display.emoji_info != null && data.display.emoji_info.emoji_details.Count > 0)
     {
         var dict = new Dictionary <string, Emote>();
         foreach (var item in data.display.emoji_info.emoji_details)
         {
             dict.Add(item.text, item);
         }
         DescriptionBlock.EmoteSource = dict;
     }
     if (data.desc.type == 8)
     {
         //视频
         var info = JsonConvert.DeserializeObject <VideoDynamic>(data.card);
         info.dynamic = Uri.UnescapeDataString(info.dynamic);
         if (!string.IsNullOrEmpty(info.dynamic))
         {
             DescriptionBlock.Text = Regex.Replace(info.dynamic, @"#(.*?)#", "").Trim();
         }
         DescriptionBlock.Visibility = string.IsNullOrEmpty(DescriptionBlock.Text) ? Visibility.Collapsed : Visibility.Visible;
         CommentBlock.Text           = AppTool.GetNumberAbbreviation(info.stat.reply);
         MoreButton.Visibility       = Visibility.Visible;
         MainDisplay.Data            = info;
     }
     else if (data.desc.type == 1)
     {
         //转发
         var info = JsonConvert.DeserializeObject <RepostDynamic>(data.card);
         DescriptionBlock.Visibility = Visibility.Collapsed;
         CommentBlock.Text           = AppTool.GetNumberAbbreviation(info.item.reply);
         MainDisplay.Data            = info;
     }
     else if (data.desc.type == 2)
     {
         //图片
         var temp = JObject.Parse(data.card);
         var info = JsonConvert.DeserializeObject <ImageDynamic>(temp["item"].ToString());
         info.description      = Uri.UnescapeDataString(info.description);
         DescriptionBlock.Text = Regex.Replace(info.description, @"#(.*?)#", "").Trim();
         CommentBlock.Text     = AppTool.GetNumberAbbreviation(info.reply);
         MainDisplay.Data      = info;
     }
     else if (data.desc.type == 4)
     {
         //纯文本
         var temp = JObject.Parse(data.card);
         var info = JsonConvert.DeserializeObject <TextDynamic>(temp["item"].ToString());
         if (!string.IsNullOrEmpty(info.content))
         {
             DescriptionBlock.Text = Regex.Replace(info.content, @"#(.*?)#", "").Trim();
         }
         CommentBlock.Text      = AppTool.GetNumberAbbreviation(info.reply);
         MainDisplay.Visibility = Visibility.Collapsed;
     }
     else if (data.desc.type == 64)
     {
         //专栏
         var info = JsonConvert.DeserializeObject <DocumentDynamic>(data.card);
         if (!string.IsNullOrEmpty(info.dynamic))
         {
             DescriptionBlock.Text = Regex.Replace(info.dynamic, @"#(.*?)#", "").Trim();
         }
         CommentBlock.Text = AppTool.GetNumberAbbreviation(info.stats.reply);
         MainDisplay.Data  = info;
     }
     else if (data.desc.type == 512 || data.desc.type == 4101)
     {
         //动漫
         var info = JsonConvert.DeserializeObject <AnimeDynamic>(data.card);
         HeaderContainer.Visibility = Visibility.Visible;
         UserAvatar.ProfilePicture  = new BitmapImage(new Uri(info.season.square_cover))
         {
             DecodePixelWidth = 40
         };
         UserNameBlock.Text = info.season.title;
         string tip = AppTool.GetReadDateString(data.desc.timestamp);
         tip          += " · " + "更新了";
         TipBlock.Text = tip;
         DescriptionBlock.Visibility = Visibility.Collapsed;
         FollowButton.Visibility     = Visibility.Collapsed;
         CommentBlock.Text           = AppTool.GetNumberAbbreviation(info.stat.reply);
         MainDisplay.Data            = info;
     }
     else if (data.desc.type == 16)
     {
         //小视频
         var info = JsonConvert.DeserializeObject <ShortVideoDynamic>(data.card);
         if (!string.IsNullOrEmpty(info.item.description))
         {
             DescriptionBlock.Text = Regex.Replace(info.item.description, @"#(.*?)#", "").Trim();
         }
         CommentBlock.Text = AppTool.GetNumberAbbreviation(info.item.reply);
         MainDisplay.Data  = info;
     }
     else if (data.desc.type == 2048)
     {
         //网页
         var info = JsonConvert.DeserializeObject <WebDynamic>(data.card);
         if (!string.IsNullOrEmpty(info.vest.content))
         {
             DescriptionBlock.Text = Regex.Replace(info.vest.content, @"#(.*?)#", "").Trim();
         }
         CommentBlock.Text = AppTool.GetNumberAbbreviation(data.desc.comment);
         MainDisplay.Data  = info;
     }
     else if (data.desc.type == 4303)
     {
         //视频单
         var info = JsonConvert.DeserializeObject <CourseDynamic>(data.card);
         if (!string.IsNullOrEmpty(info.new_ep.title))
         {
             DescriptionBlock.Text = Regex.Replace(info.new_ep.title, @"#(.*?)#", "").Trim();
         }
         CommentBlock.Text = data.desc.comment == 0 ? "" : AppTool.GetNumberAbbreviation(data.desc.comment);
         MainDisplay.Data  = info;
     }
     else if (data.desc.type == 256)
     {
         //音频
         var info = JsonConvert.DeserializeObject <MusicDynamic>(data.card);
         if (!string.IsNullOrEmpty(info.intro))
         {
             DescriptionBlock.Text = Regex.Replace(info.intro, @"#(.*?)#", "").Trim();
         }
         CommentBlock.Text = AppTool.GetNumberAbbreviation(info.replyCnt);
         MainDisplay.Data  = info;
     }
     else if (data.desc.type == 4200)
     {
         //直播
         var info = JsonConvert.DeserializeObject <LiveDynamic>(data.card);
         DescriptionBlock.Visibility = Visibility.Collapsed;
         CommentBlock.Text           = "";
         MainDisplay.Data            = info;
     }
     else
     {
         string yo = "";
     }
 }
Ejemplo n.º 16
0
 private void ButtonInit(Topic data)
 {
     LikeBlock.Text      = AppTool.GetNumberAbbreviation(data.desc.like);
     LikeIcon.Foreground = data.desc.is_liked == 1 ? UIHelper.GetThemeBrush(ColorType.PrimaryColor) : UIHelper.GetThemeBrush(ColorType.TipTextColor);
     RepostBlock.Text    = data.desc.repost == 0 ? "转发" : AppTool.GetNumberAbbreviation(data.desc.repost);
 }
Ejemplo n.º 17
0
        public async Task Init(VideoDetail detail, int partId = 0)
        {
            Reset();
            App.AppViewModel.CurrentPlayerType  = Models.Enums.PlayerType.Video;
            App.AppViewModel.CurrentVideoPlayer = VideoPlayer;
            _detail        = detail;
            _currentPartId = partId;
            TabletMainPage.Current.SetBackgroundImage(_detail.pic);
            if (!string.IsNullOrEmpty(_detail.redirect_url))
            {
                var result = BiliTool.GetResultFromUri(_detail.redirect_url);
                videoId        = 0;
                _currentPartId = 0;
                if (result.Type == UriType.Bangumi)
                {
                    throw new InvalidDataException(result.Param);
                }
            }
            TitleBlock.Text = detail.title;
            ToolTipService.SetToolTip(TitleBlock, _detail.title);
            videoId                = _detail.aid;
            bvId                   = _detail.bvid;
            PlayCountBlock.Text    = AppTool.GetNumberAbbreviation(_detail.stat.view);
            DanmakuCountBlock.Text = AppTool.GetNumberAbbreviation(_detail.stat.danmaku);
            RepostButton.Text      = AppTool.GetNumberAbbreviation(_detail.stat.share);
            CommentButton.Text     = AppTool.GetNumberAbbreviation(_detail.stat.reply);
            BVBlock.Text           = _detail.bvid;
            AVBlock.Text           = _detail.aid.ToString();

            DescriptionBlock.Text = _detail.desc;

            LikeButton.Text     = AppTool.GetNumberAbbreviation(_detail.stat.like);
            CoinButton.Text     = AppTool.GetNumberAbbreviation(_detail.stat.coin);
            FavoriteButton.Text = AppTool.GetNumberAbbreviation(_detail.stat.favorite);

            PublishBlock.Text = AppTool.GetReadDateString(_detail.pubdate);

            UPAvatar.ProfilePicture = string.IsNullOrEmpty(_detail.owner.face) ? null : new BitmapImage(new Uri(_detail.owner.face + "@50w.jpg"))
            {
                DecodePixelWidth = 40
            };
            UPNameBlock.Text = _detail.owner.name;

            if (_detail.pages != null)
            {
                _detail.pages.ForEach(p => VideoPartCollection.Add(p));
                PartGridView.SelectedIndex = 0;
            }
            PartContainer.Visibility = _detail.pages.Count > 1 ? Visibility.Visible : Visibility.Collapsed;
            if (_detail.tag != null && _detail.tag.Count > 0)
            {
                TagGridView.Visibility = Visibility.Visible;
                _detail.tag.ForEach(p => TagCollection.Add(p));
            }
            else
            {
                TagGridView.Visibility = Visibility.Collapsed;
            }

            if (_detail.staff != null && _detail.staff.Count > 0)
            {
                _detail.staff.ForEach(p => StaffCollection.Add(p));
                SingleUserContainer.Visibility = Visibility.Collapsed;
                StaffContainer.Visibility      = Visibility.Visible;
            }
            else
            {
                StaffContainer.Visibility      = Visibility.Collapsed;
                SingleUserContainer.Visibility = Visibility.Visible;
            }

            if (_detail.req_user != null)
            {
                LikeButton.IsCheck     = _detail.req_user.like != 0;
                CoinButton.IsCheck     = _detail.req_user.coin != 0;
                FavoriteButton.IsCheck = _detail.req_user.favorite != 0;
            }

            await MyVideoPlayer.Init(_detail, _currentPartId);

            CheckLikeHoldState();
        }