public void Set(MylistId mylistId, MylistSortKey sortKey, MylistSortOrder sortOrder) { _collection.Upsert(new MylistUserSelectedSortEntry() { MylistId = mylistId, SortKey = sortKey, SortOrder = sortOrder }); }
public static async Task <bool> UpdateMylistGroupAsync(NiconicoContext context, string mylistId, string name, string description, bool isPublic, MylistSortKey defaultSortKey, MylistSortOrder defaultSortOrder) { var dict = new Dictionary <string, string>(); dict.Add("name", name); dict.Add("description", description); dict.Add("isPublic", isPublic.ToString1Or0()); dict.Add("defaultSortKey", defaultSortKey.ToQueryString()); dict.Add("defaultSortOrder", defaultSortOrder.ToQueryString()); var request = new HttpRequestMessage(HttpMethod.Put, new Uri($"https://nvapi.nicovideo.jp/v1/users/me/mylists/{mylistId}")); #if WINDOWS_UWP request.Content = new HttpFormUrlEncodedContent(dict); request.Headers.Referer = new Uri($"https://www.nicovideo.jp/my/mylist/{mylistId}"); #else request.Content = new FormUrlEncodedContent(dict); request.Headers.Referrer = new Uri($"https://www.nicovideo.jp/my/mylist/{mylistId}"); #endif request.Headers.Add("X-Request-With", "https://www.nicovideo.jp"); var res = await context.SendAsync(request); var json = await res.Content.ReadAsStringAsync(); var result = JsonConvert.DeserializeObject <MylistUpdateResultResponse>(json); return(result.Meta.Status == 200); }
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 })); }
public static async Task <MylistGroupItemsResponse> GetMylistGroupItemsAsync(NiconicoContext context, long mylistId, MylistSortKey sortKey, MylistSortOrder sortOrder, uint pageSize, uint pageCount) { // Note: CORSのOPTIONSを先に送る奴が必要になるかも var uri = $"https://nvapi.nicovideo.jp/v2/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)); }
public void SetMylistSort(MylistId mylistId, MylistSortKey sortKey, MylistSortOrder sortOrder) { _mylistUserSelectedSortRepository_Internal.Set(mylistId, sortKey, sortOrder); }
public override async Task <MylistItemsGetResult> GetItemsAsync(int page, int pageSize, MylistSortKey sortKey, MylistSortOrder sortOrder) { try { return(await _loginUserMylistProvider.GetLoginUserMylistItemsAsync(this, page, pageSize, sortKey, sortOrder)); } catch { } return(new MylistItemsGetResult() { IsSuccess = false }); }
public async Task <bool> UpdateMylistInfo(string name, string description, bool isPublic, MylistSortKey sortKey, MylistSortOrder sortOrder) { if (await _loginUserMylistProvider.UpdateMylist(this, name, description, isPublic, sortKey, sortOrder)) { this.Name = name; this.Description = description; this.IsPublic = IsPublic; this.DefaultSortKey = sortKey; this.DefaultSortOrder = sortOrder; return(true); } else { return(false); } }
public Task <WatchAfterMylistGroupItemsResponse> GetWatchAfterMylistGroupItemsAsync(MylistSortKey sortKey, MylistSortOrder sortOrder, uint pageSize = 25, uint page = 0) { return(MylistClient.GetWatchAfterMylistGroupItemsAsync(_context, sortKey, sortOrder, pageSize, page)); }
public Task <MylistGroupItemsResponse> GetMylistGroupItemsAsync(long group_id, MylistSortKey sortKey, MylistSortOrder sortOrder, uint pageSize = 25, uint page = 0) { return(MylistClient.GetMylistGroupItemsAsync(_context, group_id, sortKey, sortOrder, pageSize, page)); }
/// <summary> /// ログイン中のユーザーのマイリストグループを更新 /// </summary> /// <param name="group_id"></param> /// <param name="name"></param> /// <param name="description"></param> /// <param name="is_public"></param> /// <param name="default_sort"></param> /// <param name="iconType"></param> /// <returns></returns> public Task <bool> UpdateMylistGroupAsync(string mylist, string name, string description, bool isPublic, MylistSortKey defaultSortKey, MylistSortOrder defaultSortOrder) { return(MylistClient.UpdateMylistGroupAsync(_context, mylist, name, description, isPublic, defaultSortKey, defaultSortOrder)); }
public async Task <MylistItemsGetResult> GetMylistVideoItems(MylistId mylistId, int page, int pageSize, MylistSortKey sortKey, MylistSortOrder sortOrder) { var res = await _niconicoSession.ToolkitContext.Mylist.GetMylistItemsAsync(mylistId, page, pageSize, sortKey, sortOrder); if (res.Meta.IsSuccess is false) { return(new MylistItemsGetResult() { IsSuccess = false, MylistId = mylistId }); } var videos = res.Data.Mylist.Items; var resultItems = new List <MylistItem>(); var nicoVideoList = new List <NicoVideo>(); foreach (var item in videos) { var nicoVideo = _nicoVideoProvider.UpdateCache(item.WatchId, item.Video, item.IsDeleted); nicoVideoList.Add(nicoVideo); resultItems.Add(item); } return(new MylistItemsGetResult() { IsSuccess = true, MylistId = mylistId, HeadPosition = (int)(pageSize * page), Items = new ReadOnlyCollection <MylistItem>(resultItems), NicoVideoItems = new ReadOnlyCollection <NicoVideo>(nicoVideoList), TotalCount = (int)res.Data.Mylist.TotalItemCount, }); }
public async Task <bool> UpdateMylist(LoginUserMylistPlaylist mylist, string name, string description, bool isPublic, MylistSortKey sortKey, MylistSortOrder sortOrder) { var result = await _niconicoSession.ToolkitContext.Mylist.LoginUser.UpdateMylistAsync(mylist.MylistId, name, description, isPublic, sortKey, sortOrder); try { mylist.Name = name; mylist.IsPublic = isPublic; mylist.DefaultSortKey = sortKey; mylist.DefaultSortOrder = sortOrder; mylist.Description = description; } catch { } return(result); }
public async Task <string> AddMylist(string name, string description, bool isPublic, MylistSortKey sortKey, MylistSortOrder sortOrder) { var result = await _niconicoSession.ToolkitContext.Mylist.LoginUser.CreateMylistAsync(name, description, isPublic, sortKey, sortOrder); return(result.Data.MylistId.ToString()); }
public async Task <MylistItemsGetResult> GetLoginUserMylistItemsAsync(IMylist mylist, int page, int pageSize, MylistSortKey sortKey, MylistSortOrder sortOrder) { if (mylist.UserId != _niconicoSession.UserId) { throw new ArgumentException(); } if (mylist.MylistId.IsWatchAfterMylist) { var mylistItemsRes = await _niconicoSession.ToolkitContext.Mylist.LoginUser.GetWatchAfterItemsAsync(page, pageSize, sortKey, sortOrder); var res = mylistItemsRes.Data.Mylist; var items = res.Items; foreach (var item in items) { _loginUserMylistItemIdRepository.AddItem(item.ItemId, mylist.MylistId, item.WatchId); } return(new MylistItemsGetResult() { MylistId = mylist.MylistId, IsSuccess = true, Items = items, NicoVideoItems = items.Select(MylistDataToNicoVideoData).ToArray(), TotalCount = (int)mylistItemsRes.Data.Mylist.TotalCount, HeadPosition = page * pageSize, }); } else { var mylistItemsRes = await _niconicoSession.ToolkitContext.Mylist.LoginUser.GetMylistItemsAsync(mylist.PlaylistId.Id, (int)page, (int)pageSize, sortKey, sortOrder); var res = mylistItemsRes.Data.Mylist; var items = res.Items; foreach (var item in items) { _loginUserMylistItemIdRepository.AddItem(item.ItemId, mylist.MylistId, item.WatchId); } return(new MylistItemsGetResult() { MylistId = mylist.MylistId, IsSuccess = true, Items = items, NicoVideoItems = items.Select(MylistDataToNicoVideoData).ToArray(), TotalCount = (int)mylistItemsRes.Data.Mylist.TotalItemCount, HeadPosition = page * pageSize, }); } }