예제 #1
0
        public static async Task <FollowMylistResponse> GetFollowMylistAsync(NiconicoContext context, uint sampleItemCount = 3)
        {
            var uri = $"https://nvapi.nicovideo.jp/v1/users/me/following/mylists?sampleItemCount={sampleItemCount}";
            await context.PrepareCorsAsscessAsync(HttpMethod.Get, uri);

            return(await context.GetJsonAsAsync <FollowMylistResponse>(uri, Mylist.Converter.Settings));
        }
예제 #2
0
        public static async Task <CommunityAuthorityResponse> GetCommunityAuthorityAsync(NiconicoContext context, string communityId)
        {
            var communityIdWoCo      = communityId.Substring(2);
            var communityJoinPageUrl = new Uri($"https://com.nicovideo.jp/motion/{communityId}");

            return(await context.GetJsonAsAsync <CommunityAuthorityResponse>($"https://com.nicovideo.jp/api/v1/communities/{communityIdWoCo}/authority.json"));
        }
예제 #3
0
        public static async Task <MylistGroupItemsResponse> GetLoginUserMylistGroupItemsAsync(NiconicoContext context, long mylistId, MylistSortKey sortKey, MylistSortOrder sortOrder, uint pageSize, uint pageCount)
        {
            var uri = $"https://nvapi.nicovideo.jp/v1/users/me/mylists/{mylistId}?sortKey={sortKey.ToQueryString()}&sortOrder={sortOrder.ToQueryString()}&pageSize={pageSize}&page={pageCount + 1}";
            await context.PrepareCorsAsscessAsync(HttpMethod.Get, uri);

            return(await context.GetJsonAsAsync <MylistGroupItemsResponse>(uri, Converter.Settings));
        }
예제 #4
0
        public static async Task <FollowCommunityResponse> GetFollowCommunityAsync(NiconicoContext context, uint limit = 25, uint page = 0)
        {
            var uri = $"https://public.api.nicovideo.jp/v1/user/followees/communities.json?limit={limit}&page={page}";
            await context.PrepareCorsAsscessAsync(HttpMethod.Get, uri);

            return(await context.GetJsonAsAsync <FollowCommunityResponse>(uri, FollowCommunityResponseConverter.Settings));
        }
예제 #5
0
        public static async Task <FollowChannelResponse> GetFollowChannelAsync(NiconicoContext context, uint limit = 25, uint offset = 0)
        {
            var uri = $"https://public.api.nicovideo.jp/v1/user/followees/channels.json?limit={limit}&offset={offset}";
            await context.PrepareCorsAsscessAsync(HttpMethod.Get, uri);

            return(await context.GetJsonAsAsync <FollowChannelResponse>(uri));
        }
예제 #6
0
        public static async Task <FollowTagsResponse> GetFollowTagsAsync(NiconicoContext context)
        {
            var uri = $"https://nvapi.nicovideo.jp/v1/users/me/following/tags";
            await context.PrepareCorsAsscessAsync(HttpMethod.Get, uri);

            return(await context.GetJsonAsAsync <FollowTagsResponse>(uri));
        }
예제 #7
0
        private static async Task <bool> GetFollowedInternalAsync(NiconicoContext context, string uri)
        {
            var result = await context.GetJsonAsAsync <FollowedResultResponce>(HttpMethod.Get, uri, headerModifier : headers =>
            {
                headers.Add("X-Request-With", "https://www.nicovideo.jp/my/follow");
            });

            return(result.Data.IsFollowing);
        }
예제 #8
0
        private static async Task <ContentManageResult> RemoveFollowInternalAsync(NiconicoContext context, string uri)
        {
            await context.PrepareCorsAsscessAsync(HttpMethod.Delete, uri);

            var result = await context.GetJsonAsAsync <FollowResultResponse>(HttpMethod.Delete, uri, headerModifier : headers =>
            {
                headers.Add("X-Request-With", "https://www.nicovideo.jp/my/follow");
            });

            return(result.Meta.Status == 200 ? ContentManageResult.Success : ContentManageResult.Failed);
        }
예제 #9
0
        public static async Task <FollowUsersResponse> GetFollowUsersAsync(NiconicoContext context, uint pageSize, FollowUsersResponse lastUserResponse)
        {
            var uri = $"https://nvapi.nicovideo.jp/v1/users/me/following/users?pageSize={pageSize}";

            if (lastUserResponse != null)
            {
                uri += "&cursor=" + lastUserResponse.Data.Summary.Cursor;
            }

            await context.PrepareCorsAsscessAsync(HttpMethod.Get, uri);

            return(await context.GetJsonAsAsync <FollowUsersResponse>(uri, UserFollowResponseConverter.Settings));
        }
예제 #10
0
        public static Task <NicoVideoResponse> GetRelatedVideoAsync(NiconicoContext context, string videoId, uint from, uint limit, Sort sortMethod, Order sortDir)
        {
            var dict = new Dictionary <string, string>();

            dict.Add("v", videoId);
            dict.Add(nameof(from), from.ToString());
            dict.Add(nameof(limit), limit.ToString());
            dict.Add(nameof(sortMethod), sortMethod.ToShortString());
            dict.Add(nameof(sortDir), sortDir.ToShortString());

            var query = HttpQueryExtention.DictionaryToQuery(dict);

            return(context
                   .GetJsonAsAsync <NicoVideoResponse>($"{NiconicoUrls.RelatedVideoApiUrl}?{query}"));
        }
예제 #11
0
        public static async Task <WatchAfterMylistGroupItemsResponse> GetWatchAfterMylistGroupItemsAsync(NiconicoContext context, MylistSortKey sortKey, MylistSortOrder sortOrder, uint pageSize, uint pageCount)
        {
            var uri = $"https://nvapi.nicovideo.jp/v1/users/me/watch-later?sortKey={sortKey.ToQueryString()}&sortOrder={sortOrder.ToQueryString()}&pageSize={pageSize}&page={pageCount + 1}";
            await context.PrepareCorsAsscessAsync(HttpMethod.Get, uri);

            return(await context.GetJsonAsAsync <WatchAfterMylistGroupItemsResponse>(uri, Converter.Settings,
                                                                                     haaders =>
            {
#if WINDOWS_UWP
                haaders.Referer = new Uri("https://www.nicovideo.jp/my/watchlater?ref=pc_mypage_menu");
#else
                haaders.Referrer = new Uri("https://www.nicovideo.jp/my/watchlater?ref=pc_mypage_menu");
#endif
            }));
        }
예제 #12
0
        public static async Task <MylistGroupsResponse> GetMylistGroupsAsync(NiconicoContext context, int userId, int sampleItemsCount = 3)
        {
            return(await context.GetJsonAsAsync <MylistGroupsResponse>($"https://nvapi.nicovideo.jp/v1/users/{userId}/mylists?sampleItemCount={sampleItemsCount}", Converter.Settings
                                                                       , (headers) =>
            {
#if WINDOWS_UWP
                headers.Host = new Windows.Networking.HostName("nvapi.nicovideo.jp");
                headers.Add("Origin", "https://www.nicovideo.jp");
                headers.Referer = new Uri("https://www.nicovideo.jp/user/33969435/mylist?ref=pc_userpage_menu");
#else
                headers.Host = "nvapi.nicovideo.jp";
                headers.TryAddWithoutValidation("Origin", "https://www.nicovideo.jp");
                headers.Referrer = new Uri("https://www.nicovideo.jp/user/33969435/mylist?ref=pc_userpage_menu");
#endif
            }));
        }
예제 #13
0
 public static async Task <MylistGroupsResponse> GetLoginUserMylistGroupsAsync(NiconicoContext context, int sampleItemsCount = 3)
 {
     return(await context.GetJsonAsAsync <MylistGroupsResponse>(@$ "https://nvapi.nicovideo.jp/v1/users/me/mylists?sampleItemCount={sampleItemsCount}", Converter.Settings));
 }
예제 #14
0
        public static async Task <UserVideosResponse> GetUserVideoResponse(NiconicoContext context, uint userId, uint page)
        {
            var url = $"https://nvapi.nicovideo.jp/v1/users/{userId}/videos?sortKey=registeredAt&sortOrder=desc&pageSize=25&page={page + 1}";

            return(await context.GetJsonAsAsync <UserVideosResponse>(url));
        }
예제 #15
0
 public static async Task <LikesListResponse> GetLikesAsync(NiconicoContext context, int page, int pageSize)
 {
     return(await context.GetJsonAsAsync <LikesListResponse>($"{LikeListupApiUrl}pageSize={pageSize}&page={page + 1}"));
 }
예제 #16
0
        /*
         * public static Task<bool> IsFollowingMylistAsync(NiconicoContext context, string mylistId)
         * {
         *  return GetFollowedInternalAsync(context, $"https://nvapi.nicovideo.jp/v1/users/me/following/mylists/{mylistId}");
         * }
         */



        #region Community

        public static Task <UserOwnedCommunityResponse> GetUserOwnedCommunitiesAsync(NiconicoContext context, uint userId)
        {
            return(context.GetJsonAsAsync <UserOwnedCommunityResponse>($"https://public.api.nicovideo.jp/v1/user/{userId}/communities.json"));
        }
예제 #17
0
 public static async Task <LikeActionResponse> UnDoLikeVideoAsync(NiconicoContext context, string videoId)
 {
     return(await context.GetJsonAsAsync <LikeActionResponse>(httpMethod : HttpMethod.Delete, LikeApiUrl + videoId));
 }
예제 #18
0
 public static async Task <ChannelAuthorityResponse> GetChannelAuthorityAsync(NiconicoContext context, uint channelNumberId)
 {
     return(await context.GetJsonAsAsync <ChannelAuthorityResponse>($"https://public.api.nicovideo.jp/v1/channel/channelapp/channels/{channelNumberId}.json"));
 }
예제 #19
0
 public static Task <UserSeriesResponse> GetUserSeriesAsync(NiconicoContext context, string userId, uint page, uint pageSize = 25)
 {
     return(context.GetJsonAsAsync <UserSeriesResponse>($"https://nvapi.nicovideo.jp/v1/users/{userId}/series?page={page+1}&pageSize={pageSize}"));
 }