コード例 #1
0
        /// <summary>
        /// 获取视频信息
        /// </summary>
        /// <returns></returns>
        public VideoInfoView GetVideoView()
        {
            if (bangumiSeason == null)
            {
                return(null);
            }

            // 查询、保存封面
            // 将SeasonId保存到avid字段中
            // 每集封面的cid保存到cid字段,EpisodeId保存到bvid字段中
            StorageCover storageCover = new StorageCover();
            string       coverUrl     = bangumiSeason.Cover;
            string       cover        = storageCover.GetCover(bangumiSeason.SeasonId, "bangumi", -1, coverUrl);

            // 获取用户头像
            string upName;
            string header;

            if (bangumiSeason.UpInfo != null)
            {
                upName = bangumiSeason.UpInfo.Name;

                StorageHeader storageHeader = new StorageHeader();
                header = storageHeader.GetHeader(bangumiSeason.UpInfo.Mid, bangumiSeason.UpInfo.Name, bangumiSeason.UpInfo.Avatar);
            }
            else
            {
                upName = "";
                header = null;
            }

            // 为videoInfoView赋值
            VideoInfoView videoInfoView = new VideoInfoView();

            App.PropertyChangeAsync(new Action(() =>
            {
                videoInfoView.CoverUrl = coverUrl;

                videoInfoView.Cover = cover == null ? null : new BitmapImage(new Uri(cover));
                videoInfoView.Title = bangumiSeason.Title;

                // 分区id
                videoInfoView.TypeId = BangumiType.TypeId[bangumiSeason.Type];

                videoInfoView.VideoZone = DictionaryResource.GetString(BangumiType.Type[bangumiSeason.Type]);

                videoInfoView.PlayNumber     = Format.FormatNumber(bangumiSeason.Stat.Views);
                videoInfoView.DanmakuNumber  = Format.FormatNumber(bangumiSeason.Stat.Danmakus);
                videoInfoView.LikeNumber     = Format.FormatNumber(bangumiSeason.Stat.Likes);
                videoInfoView.CoinNumber     = Format.FormatNumber(bangumiSeason.Stat.Coins);
                videoInfoView.FavoriteNumber = Format.FormatNumber(bangumiSeason.Stat.Favorites);
                videoInfoView.ShareNumber    = Format.FormatNumber(bangumiSeason.Stat.Share);
                videoInfoView.ReplyNumber    = Format.FormatNumber(bangumiSeason.Stat.Reply);
                videoInfoView.Description    = bangumiSeason.Evaluate;

                videoInfoView.UpName = upName;
                if (header != null)
                {
                    StorageHeader storageHeader = new StorageHeader();
                    videoInfoView.UpHeader      = storageHeader.GetHeaderThumbnail(header, 48, 48);

                    videoInfoView.UpperMid = bangumiSeason.UpInfo.Mid;
                }
                else
                {
                    videoInfoView.UpHeader = null;
                }
            }));

            return(videoInfoView);
        }
コード例 #2
0
        /// <summary>
        /// 获取收藏夹元数据
        /// </summary>
        /// <param name="mediaId"></param>
        /// <returns></returns>
        public Favorites GetFavorites(long mediaId)
        {
            var favoritesMetaInfo = FavoritesInfo.GetFavoritesInfo(mediaId);

            if (favoritesMetaInfo == null)
            {
                return(null);
            }

            // 查询、保存封面
            StorageCover storageCover = new StorageCover();
            string       coverUrl     = favoritesMetaInfo.Cover;
            BitmapImage  cover        = storageCover.GetCoverThumbnail(favoritesMetaInfo.Id, "Favorites", favoritesMetaInfo.Mid, coverUrl, 300, 188);

            // 获取用户头像
            string upName;
            string header;

            if (favoritesMetaInfo.Upper != null)
            {
                upName = favoritesMetaInfo.Upper.Name;
                StorageHeader storageHeader = new StorageHeader();
                header = storageHeader.GetHeader(favoritesMetaInfo.Upper.Mid, favoritesMetaInfo.Upper.Name, favoritesMetaInfo.Upper.Face);
            }
            else
            {
                upName = "";
                header = null;
            }

            // 为Favorites赋值
            Favorites favorites = new Favorites();

            App.PropertyChangeAsync(new Action(() =>
            {
                favorites.CoverUrl = coverUrl;

                favorites.Cover = cover;
                favorites.Title = favoritesMetaInfo.Title;

                DateTime startTime   = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)); // 当地时区
                DateTime dateTime    = startTime.AddSeconds(favoritesMetaInfo.Ctime);
                favorites.CreateTime = dateTime.ToString("yyyy-MM-dd HH:mm:ss");

                favorites.PlayNumber     = Format.FormatNumber(favoritesMetaInfo.CntInfo.Play);
                favorites.LikeNumber     = Format.FormatNumber(favoritesMetaInfo.CntInfo.ThumbUp);
                favorites.FavoriteNumber = Format.FormatNumber(favoritesMetaInfo.CntInfo.Collect);
                favorites.ShareNumber    = Format.FormatNumber(favoritesMetaInfo.CntInfo.Share);
                favorites.Description    = favoritesMetaInfo.Intro;
                favorites.MediaCount     = favoritesMetaInfo.MediaCount;

                favorites.UpName = upName;
                if (header != null)
                {
                    StorageHeader storageHeader = new StorageHeader();
                    favorites.UpHeader          = storageHeader.GetHeaderThumbnail(header, 48, 48);

                    favorites.UpperMid = favoritesMetaInfo.Upper.Mid;
                }
                else
                {
                    favorites.UpHeader = null;
                }
            }));

            return(favorites);
        }
コード例 #3
0
ファイル: CheeseInfoService.cs プロジェクト: Loongtze/downkyi
        /// <summary>
        /// 获取视频信息
        /// </summary>
        /// <returns></returns>
        public VideoInfoView GetVideoView()
        {
            if (cheeseView == null)
            {
                return(null);
            }

            // 查询、保存封面
            // 将SeasonId保存到avid字段中
            // 每集封面的cid保存到cid字段,EpisodeId保存到bvid字段中
            StorageCover storageCover = new StorageCover();
            string       coverUrl     = cheeseView.Cover;
            string       cover        = storageCover.GetCover(cheeseView.SeasonId, "cheese", -1, coverUrl);

            // 获取用户头像
            string upName;
            string header;

            if (cheeseView.UpInfo != null)
            {
                upName = cheeseView.UpInfo.Name;
                StorageHeader storageHeader = new StorageHeader();
                header = storageHeader.GetHeader(cheeseView.UpInfo.Mid, cheeseView.UpInfo.Name, cheeseView.UpInfo.Avatar);
            }
            else
            {
                upName = "";
                header = null;
            }

            // 为videoInfoView赋值
            VideoInfoView videoInfoView = new VideoInfoView();

            App.PropertyChangeAsync(new Action(() =>
            {
                videoInfoView.CoverUrl = coverUrl;

                videoInfoView.Cover = cover == null ? null : new BitmapImage(new Uri(cover));
                videoInfoView.Title = cheeseView.Title;

                // 分区id
                // 课堂的type id B站没有定义,这里自定义为-10
                videoInfoView.TypeId = -10;

                videoInfoView.VideoZone  = DictionaryResource.GetString("Cheese");
                videoInfoView.CreateTime = "";

                videoInfoView.PlayNumber     = Format.FormatNumber(cheeseView.Stat.Play);
                videoInfoView.DanmakuNumber  = Format.FormatNumber(0);
                videoInfoView.LikeNumber     = Format.FormatNumber(0);
                videoInfoView.CoinNumber     = Format.FormatNumber(0);
                videoInfoView.FavoriteNumber = Format.FormatNumber(0);
                videoInfoView.ShareNumber    = Format.FormatNumber(0);
                videoInfoView.ReplyNumber    = Format.FormatNumber(0);
                videoInfoView.Description    = cheeseView.Subtitle;

                videoInfoView.UpName = upName;
                if (header != null)
                {
                    StorageHeader storageHeader = new StorageHeader();
                    videoInfoView.UpHeader      = storageHeader.GetHeaderThumbnail(header, 48, 48);

                    videoInfoView.UpperMid = cheeseView.UpInfo.Mid;
                }
                else
                {
                    videoInfoView.UpHeader = null;
                }
            }));

            return(videoInfoView);
        }
コード例 #4
0
        /// <summary>
        /// 获取视频信息
        /// </summary>
        /// <returns></returns>
        public VideoInfoView GetVideoView()
        {
            if (videoView == null)
            {
                return(null);
            }

            // 查询、保存封面
            StorageCover storageCover = new StorageCover();
            string       coverUrl     = videoView.Pic;
            string       cover        = storageCover.GetCover(videoView.Aid, videoView.Bvid, videoView.Cid, coverUrl);

            // 分区
            string videoZone = string.Empty;
            var    zoneList  = Core.BiliApi.Zone.VideoZone.Instance().GetZones();
            var    zone      = zoneList.Find(it => it.Id == videoView.Tid);

            if (zone != null)
            {
                var zoneParent = zoneList.Find(it => it.Id == zone.ParentId);
                if (zoneParent != null)
                {
                    videoZone = zoneParent.Name + ">" + zone.Name;
                }
                else
                {
                    videoZone = zone.Name;
                }
            }
            else
            {
                videoZone = videoView.Tname;
            }

            // 获取用户头像
            string upName;
            string header;

            if (videoView.Owner != null)
            {
                upName = videoView.Owner.Name;
                StorageHeader storageHeader = new StorageHeader();
                header = storageHeader.GetHeader(videoView.Owner.Mid, videoView.Owner.Name, videoView.Owner.Face);
            }
            else
            {
                upName = "";
                header = null;
            }

            // 为videoInfoView赋值
            VideoInfoView videoInfoView = new VideoInfoView();

            App.PropertyChangeAsync(new Action(() =>
            {
                videoInfoView.CoverUrl = coverUrl;

                videoInfoView.Cover = cover == null ? null : new BitmapImage(new Uri(cover));
                videoInfoView.Title = videoView.Title;

                // 分区id
                videoInfoView.TypeId = videoView.Tid;

                videoInfoView.VideoZone = videoZone;

                DateTime startTime       = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)); // 当地时区
                DateTime dateTime        = startTime.AddSeconds(videoView.Pubdate);
                videoInfoView.CreateTime = dateTime.ToString("yyyy-MM-dd HH:mm:ss");

                videoInfoView.PlayNumber     = Format.FormatNumber(videoView.Stat.View);
                videoInfoView.DanmakuNumber  = Format.FormatNumber(videoView.Stat.Danmaku);
                videoInfoView.LikeNumber     = Format.FormatNumber(videoView.Stat.Like);
                videoInfoView.CoinNumber     = Format.FormatNumber(videoView.Stat.Coin);
                videoInfoView.FavoriteNumber = Format.FormatNumber(videoView.Stat.Favorite);
                videoInfoView.ShareNumber    = Format.FormatNumber(videoView.Stat.Share);
                videoInfoView.ReplyNumber    = Format.FormatNumber(videoView.Stat.Reply);
                videoInfoView.Description    = videoView.Desc;

                videoInfoView.UpName = upName;
                if (header != null)
                {
                    StorageHeader storageHeader = new StorageHeader();
                    videoInfoView.UpHeader      = storageHeader.GetHeaderThumbnail(header, 48, 48);

                    videoInfoView.UpperMid = videoView.Owner.Mid;
                }
                else
                {
                    videoInfoView.UpHeader = null;
                }
            }));

            return(videoInfoView);
        }