private VideoInfoDto GetRandomVideoOfFollowingUps() { //配置的UpId int configUpsCount = _dailyTaskOptions.SupportUpIdList.Count; if (configUpsCount > 0) { VideoInfoDto video = GetRandomVideoOfUps(_dailyTaskOptions.SupportUpIdList); if (video != null) { return(video); } } //关注列表 var request = new GetFollowingsRequest(long.Parse(_biliBiliCookie.UserId)); BiliApiResponse <GetFollowingsResponse> result = _relationApi.GetFollowings(request) .GetAwaiter().GetResult(); if (result.Data.Total > 0) { VideoInfoDto video = GetRandomVideoOfUps(result.Data.List.Select(x => x.Mid).ToList()); if (video != null) { return(video); } } return(null); }
public async Task <MessageOutputBase> GetFollowings(GetFollowingsRequest request) { MessageOutputBase result = null; request.CurrentUserName = GetCurrentUser(); await Execute(flow => { flow.StartRegisterFlow() .Add <CheckUserExistsStep>() .Add <GetFollowingsStep>(); flow. When <UserNotFoundStep, UserNotFoundParams>(notFound => { result = notFound.Response; }) .When <GetFollowingsStep, GetFollowingsParams>(fetch => { result = fetch.Response; }); }, request, error => { result = error; }); return(result); }
/// <summary> /// 尝试从普通关注的Up主中随机获取一个可以投币的视频 /// </summary> /// <param name="tryCount"></param> /// <returns></returns> private Tuple <string, string> TryGetCanDonateVideoByFollowingUps(int tryCount) { //获取特别关注列表 var request = new GetFollowingsRequest(long.Parse(_biliBiliCookie.UserId)); BiliApiResponse <GetFollowingsResponse> result = _relationApi.GetFollowings(request) .GetAwaiter().GetResult(); if (result.Data.Total == 0) { return(null); } return(TryCanDonateVideoByUps(result.Data.List.Select(x => x.Mid).ToList(), tryCount)); }
public void GetFollowings() { Program.CreateHost(new string[] { }); using (var scope = Global.ServiceProviderRoot.CreateScope()) { var cookie = scope.ServiceProvider.GetRequiredService <BiliCookie>(); var api = scope.ServiceProvider.GetRequiredService <IRelationApi>(); var request = new GetFollowingsRequest(long.Parse(cookie.UserId)); request.Ps = 100; var re = api.GetFollowings(request).Result; request.Ps = 200; var re2 = api.GetFollowings(request).Result; request.Ps = int.MaxValue; var re3 = api.GetFollowings(request).Result; Assert.True(re.Code == 0); } }