Beispiel #1
0
        /// <summary>
        /// 模拟打开视频播放(初始上报一次进度)
        /// </summary>
        /// <param name="videoInfo"></param>
        /// <returns></returns>
        private bool OpenVideo(VideoInfoDto videoInfo)
        {
            var request = new UploadVideoHeartbeatRequest
            {
                Aid  = long.Parse(videoInfo.Aid),
                Bvid = videoInfo.Bvid,
                Cid  = videoInfo.Cid,

                Mid  = long.Parse(_biliBiliCookie.UserId),
                Csrf = _biliBiliCookie.BiliJct,
            };

            //开始上报一次
            BiliApiResponse apiResponse = _videoApi.UploadVideoHeartbeat(request)
                                          .GetAwaiter().GetResult();

            if (apiResponse.Code == 0)
            {
                _logger.LogDebug("打开视频成功");
                return(true);
            }
            else
            {
                _logger.LogError("视频打开失败,原因:{msg}", apiResponse.Message);
                return(false);
            }
        }
Beispiel #2
0
        /// <summary>
        /// 观看视频
        /// </summary>
        public void WatchVideo(VideoInfoDto videoInfo)
        {
            //开始上报一次
            OpenVideo(videoInfo);

            //结束上报一次
            videoInfo.Duration = videoInfo.Duration ?? 15;
            int max        = videoInfo.Duration < 15 ? videoInfo.Duration.Value : 15;
            int playedTime = new Random().Next(1, max);

            var request = new UploadVideoHeartbeatRequest
            {
                Aid  = long.Parse(videoInfo.Aid),
                Bvid = videoInfo.Bvid,
                Cid  = videoInfo.Cid,
                Mid  = long.Parse(_biliBiliCookie.UserId),
                Csrf = _biliBiliCookie.BiliJct,

                Played_time      = playedTime,
                Realtime         = playedTime,
                Real_played_time = playedTime,
            };
            BiliApiResponse apiResponse = _videoApi.UploadVideoHeartbeat(request)
                                          .GetAwaiter().GetResult();

            if (apiResponse.Code == 0)
            {
                _expDic.TryGetValue("每日观看视频", out int exp);
                _logger.LogInformation("视频播放成功,已观看到第{playedTime}秒,经验+{exp} √", playedTime, exp);
            }
            else
            {
                _logger.LogError("视频播放失败,原因:{msg}", apiResponse.Message);
            }
        }