public void Set(MylistId mylistId, MylistSortKey sortKey, MylistSortOrder sortOrder) { _collection.Upsert(new MylistUserSelectedSortEntry() { MylistId = mylistId, SortKey = sortKey, SortOrder = sortOrder }); }
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 void MylistId_Equeal() { var idA = new MylistId(123456); var idB = new MylistId("123456"); Assert.AreEqual(idA, idB); }
public void MylistId_ToNiconicoId() { var idA = new MylistId(123456); NiconicoId idB = new MylistId("123456"); Assert.AreEqual(NiconicoIdType.Mylist, idB.IdType); Assert.AreEqual(idA, idB); }
public FollowMylistViewModel(MylistId id, NvapiMylistItem followMylist, ContentStatus status) { _followMylist = followMylist; Status = status; PlaylistId = new PlaylistId() { Id = id, Origin = PlaylistItemsSourceOrigin.Mylist }; }
public async Task <ContentManageResult> RemoveMylistItem(MylistId mylistId, VideoId videoId) { var itemId = _loginUserMylistItemIdRepository.GetItemId(mylistId, videoId); if (mylistId.IsWatchAfterMylist) { return(await _niconicoSession.ToolkitContext.Mylist.LoginUser.RemoveWatchAfterItemsAsync(new[] { itemId })); } else { return(await _niconicoSession.ToolkitContext.Mylist.LoginUser.RemoveMylistItemsAsync(mylistId, new[] { itemId })); } }
public async Task <MylistPlaylist> GetMylistAsync(MylistId mylistId) { using var _ = await _niconicoSession.SigninLock.LockAsync(); await _userMylistManager.WaitUpdate(); if (_userMylistManager.HasMylistGroup(mylistId)) { return(await _userMylistManager.GetMylistGroupAsync(mylistId)); } else { return(await _mylistProvider.GetMylist(mylistId)); } }
public async Task <ContentManageResult> CopyItemAsync(MylistId targetMylistId, IEnumerable <VideoId> itemIds) { var result = await _loginUserMylistProvider.CopyMylistTo(MylistId, targetMylistId, itemIds); if (result.Meta.IsSuccess) { MylistCopied?.Invoke(this, new MylistItemCopyEventArgs() { SourceMylistId = MylistId, TargetMylistId = targetMylistId, SuccessedItems = result.Data.ProcessedIds.Select(x => (VideoId)x).ToArray() }); } return(result.Meta.IsSuccess ? ContentManageResult.Success : ContentManageResult.Failed); }
public async Task <ContentManageResult> MoveItemAsync(MylistId targetMylistId, IEnumerable <VideoId> itemIds) { var result = await _loginUserMylistProvider.MoveMylistTo(MylistId, targetMylistId, itemIds); if (result.Meta.IsSuccess) { MylistMoved?.Invoke(this, new MylistItemMovedEventArgs() { SourceMylistId = MylistId, TargetMylistId = targetMylistId, SuccessedItems = result.Data.ProcessedIds.Select(x => (VideoId)x).ToArray() }); CollectionChanged?.Invoke(this, new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset)); } return(result.Meta.IsSuccess ? ContentManageResult.Success : ContentManageResult.Failed); }
public Task <ContentManageResult> AddMylistItem(MylistId mylistId, VideoId videoId, string mylistComment = "") { if (mylistId.IsWatchAfterMylist) { return(_niconicoSession.ToolkitContext.Mylist.LoginUser.AddWatchAfterMylistItemAsync( videoId , mylistComment )); } else { return(_niconicoSession.ToolkitContext.Mylist.LoginUser.AddMylistItemAsync( mylistId , videoId , mylistComment )); } }
private async Task <IMylistItem> GetMylistGroupDetail(MylistId mylistId) { if (mylistId.IsWatchAfterMylist) { throw new NotSupportedException(); } else { var res = await _niconicoSession.ToolkitContext.Mylist.GetMylistItemsAsync(mylistId, 0, 1); if (res.Data?.Mylist != null) { return(res.Data.Mylist); } res = await _niconicoSession.ToolkitContext.Mylist.LoginUser.GetMylistItemsAsync(mylistId, 0, 1); return(res.Data?.Mylist); } }
public async Task <MylistPlaylist?> GetMylist(MylistId mylistId) { if (mylistId.IsWatchAfterMylist) { var res = await _niconicoSession.ToolkitContext.Mylist.LoginUser.GetWatchAfterItemsAsync(0, 1); var detail = res.Data.Mylist; var mylist = new MylistPlaylist(mylistId, this) { Name = "WatchAfterMylist".Translate(), Count = (int)detail.TotalCount, IsPublic = true, ThumbnailImages = detail.Items?.Take(3).Select(x => x.Video.Thumbnail.ListingUrl).ToArray(), }; return(mylist); } else { var detail = await GetMylistGroupDetail(mylistId); if (detail == null) { return(null); } var mylist = new MylistPlaylist(detail.Id.ToString(), this) { Name = detail.Name, Count = (int)detail.ItemsCount, CreateTime = detail.CreatedAt.DateTime, //DefaultSortOrder = , IsPublic = detail.IsPublic, SortIndex = 0, UserId = detail.Owner.Id, Description = detail.Description, ThumbnailImages = detail.SampleItems?.Take(3).Select(x => x.Video.Thumbnail.ListingUrl).ToArray(), }; return(mylist); } }
public MylistUserSelectedSortEntry Get(MylistId mylistId) { return(_collection.FindById(mylistId.ToString())); }
public async Task <bool> RemoveMylist(MylistId mylistId) { return(await _niconicoSession.ToolkitContext.Mylist.LoginUser.RemoveMylistAsync(mylistId)); }
public async Task <MoveOrCopyMylistItemsResponse> MoveMylistTo(MylistId sourceMylistGroupId, MylistId targetGroupId, IEnumerable <VideoId> videoIdList) { var items = videoIdList.Select(x => _loginUserMylistItemIdRepository.GetItemId(sourceMylistGroupId, x)); return(await _niconicoSession.ToolkitContext.Mylist.LoginUser.MoveMylistItemsAsync(sourceMylistGroupId, targetGroupId, items.ToArray())); }
public LoginUserMylistPlaylist(MylistId id, LoginUserMylistProvider loginUserMylistProvider) : base(id) { _loginUserMylistProvider = loginUserMylistProvider; }
public void SetMylistSort(MylistId mylistId, MylistSortKey sortKey, MylistSortOrder sortOrder) { _mylistUserSelectedSortRepository_Internal.Set(mylistId, sortKey, sortOrder); }
public (MylistSortKey?SortKey, MylistSortOrder?SortOrder) GetMylistSort(MylistId mylistId) { var entry = _mylistUserSelectedSortRepository_Internal.Get(mylistId); return(entry?.SortKey, entry?.SortOrder); }
public bool IsLoginUserMylistId(MylistId mylistId) { return(_userMylistManager.HasMylistGroup(mylistId)); }