/// <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); } }
/// <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); } }