Пример #1
0
        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);
        }
Пример #2
0
        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));
        }
Пример #4
0
        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);
            }
        }