Beispiel #1
0
 public void Set(MylistId mylistId, MylistSortKey sortKey, MylistSortOrder sortOrder)
 {
     _collection.Upsert(new MylistUserSelectedSortEntry()
     {
         MylistId = mylistId, SortKey = sortKey, SortOrder = sortOrder
     });
 }
Beispiel #2
0
        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,
            });
        }
Beispiel #3
0
        public void MylistId_Equeal()
        {
            var idA = new MylistId(123456);
            var idB = new MylistId("123456");

            Assert.AreEqual(idA, idB);
        }
Beispiel #4
0
        public void MylistId_ToNiconicoId()
        {
            var        idA = new MylistId(123456);
            NiconicoId idB = new MylistId("123456");

            Assert.AreEqual(NiconicoIdType.Mylist, idB.IdType);
            Assert.AreEqual(idA, idB);
        }
Beispiel #5
0
 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 }));
            }
        }
Beispiel #7
0
        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));
            }
        }
Beispiel #8
0
        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);
        }
Beispiel #9
0
        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
                    ));
     }
 }
Beispiel #11
0
        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);
            }
        }
Beispiel #12
0
        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);
            }
        }
Beispiel #13
0
 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()));
        }
Beispiel #16
0
 public LoginUserMylistPlaylist(MylistId id, LoginUserMylistProvider loginUserMylistProvider)
     : base(id)
 {
     _loginUserMylistProvider = loginUserMylistProvider;
 }
Beispiel #17
0
 public void SetMylistSort(MylistId mylistId, MylistSortKey sortKey, MylistSortOrder sortOrder)
 {
     _mylistUserSelectedSortRepository_Internal.Set(mylistId, sortKey, sortOrder);
 }
Beispiel #18
0
        public (MylistSortKey?SortKey, MylistSortOrder?SortOrder) GetMylistSort(MylistId mylistId)
        {
            var entry = _mylistUserSelectedSortRepository_Internal.Get(mylistId);

            return(entry?.SortKey, entry?.SortOrder);
        }
Beispiel #19
0
 public bool IsLoginUserMylistId(MylistId mylistId)
 {
     return(_userMylistManager.HasMylistGroup(mylistId));
 }