示例#1
0
 public ChannelProvider(
     NiconicoSession niconicoSession,
     ChannelNameCacheRepository channelNameCacheRepository
     ) : base(niconicoSession)
 {
     _channelNameCacheRepository = channelNameCacheRepository;
 }
        public VideoMenuSubPageContent(
            NiconicoSession niconicoSession,
            Models.LocalMylist.LocalMylistManager localMylistManager,
            Models.UserMylistManager mylistManager,
            PageManager pageManager
            )
        {
            NiconicoSession    = niconicoSession;
            LocalMylistManager = localMylistManager;
            MylistManager      = mylistManager;
            PageManager        = pageManager;
            MenuItems          = new ObservableCollection <HohoemaListingPageItemBase>();

            ResetMenuItems();

            LocalMylists = LocalMylistManager.Mylists
                           .ToReadOnlyReactiveCollection(x =>
                                                         new MenuItemViewModel(x.Label, HohoemaPageType.Mylist, new NavigationParameters {
                { "id", x.Id }, { "origin", x.ToMylistOrigin() }
            }) as HohoemaListingPageItemBase
                                                         )
                           .AddTo(_CompositeDisposable);
            Mylists = MylistManager.Mylists
                      .ToReadOnlyReactiveCollection(x =>
                                                    new MenuItemViewModel(x.Label, HohoemaPageType.Mylist, new NavigationParameters {
                { "id", x.Id }, { "origin", x.ToMylistOrigin() }
            }) as HohoemaListingPageItemBase
                                                    )
                      .AddTo(_CompositeDisposable);

            NiconicoSession.LogIn  += OnLogIn;
            NiconicoSession.LogOut += OnLogOut;
        }
        public ChannelVideoPageViewModel(
            ILoggerFactory loggerFactory,
            ApplicationLayoutManager applicationLayoutManager,
            NiconicoSession niconicoSession,
            ChannelProvider channelProvider,
            ChannelFollowProvider channelFollowProvider,
            PageManager pageManager,
            VideoPlayWithQueueCommand videoPlayWithQueueCommand,
            PlaylistPlayAllCommand playlistPlayAllCommand,
            OpenLinkCommand openLinkCommand,
            SelectionModeToggleCommand selectionModeToggleCommand
            )
            : base(loggerFactory.CreateLogger <ChannelVideoPageViewModel>())
        {
            ApplicationLayoutManager = applicationLayoutManager;
            NiconicoSession          = niconicoSession;
            ChannelProvider          = channelProvider;
            _channelFollowProvider   = channelFollowProvider;
            PageManager = pageManager;
            VideoPlayWithQueueCommand  = videoPlayWithQueueCommand;
            PlaylistPlayAllCommand     = playlistPlayAllCommand;
            OpenLinkCommand            = openLinkCommand;
            SelectionModeToggleCommand = selectionModeToggleCommand;

            CurrentPlaylistToken = Observable.CombineLatest(
                this.ObserveProperty(x => x.ChannelVideoPlaylist),
                this.ObserveProperty(x => x.SelectedSortOption),
                (x, y) => new PlaylistToken(x, y)
                )
                                   .ToReadOnlyReactivePropertySlim()
                                   .AddTo(_CompositeDisposable);
        }
示例#4
0
 public PreparePlayVideoResult(VideoId contentId, NiconicoSession niconicoSession, Exception e)
     : this(contentId, niconicoSession)
 {
     Exception          = e;
     AvailableQualities = ImmutableArray <NicoVideoQualityEntity> .Empty;
     IsSuccess          = false;
 }
 public LoginUserVideoWatchHistoryProvider(NiconicoSession niconicoSession,
                                           VideoPlayedHistoryRepository videoPlayedHistoryRepository
                                           )
     : base(niconicoSession)
 {
     _videoPlayedHistoryRepository = videoPlayedHistoryRepository;
 }
        public void Session_0Ctor()
        {
            var ret = new NiconicoSession();

            Assert.AreEqual(null, ret.Key);
            Assert.AreEqual(DateTimeOffset.MinValue, ret.Expires);
        }
示例#7
0
        public FollowManagePageViewModel(
            ApplicationLayoutManager applicationLayoutManager,
            PageManager pageManager,
            NiconicoSession niconicoSession,
            IMessenger messenger,
            UserFollowProvider userFollowProvider,
            TagFollowProvider tagFollowProvider,
            MylistFollowProvider mylistFollowProvider,
            ChannelFollowProvider channelFollowProvider,
            CommunityFollowProvider communityFollowProvider
            )
        {
            ApplicationLayoutManager = applicationLayoutManager;
            PageManager     = pageManager;
            NiconicoSession = niconicoSession;

            _FollowGroups_AvoidListViewMemoryLeak = new object[]
            {
                new FollowUserGroupViewModel(userFollowProvider, pageManager, messenger),
                new FollowTagGroupViewModel(tagFollowProvider, pageManager, messenger),
                new FolloMylistGroupViewModel(mylistFollowProvider, pageManager, messenger),
                new FollowChannelGroupViewModel(channelFollowProvider, pageManager, messenger),
                new FollowCommunityGroupViewModel(communityFollowProvider, NiconicoSession.UserId, pageManager, messenger),
            };
        }
示例#8
0
 public NicoLiveProvider(NiconicoSession niconicoSession,
                         NicoLiveCacheRepository nicoLiveCacheRepository
                         )
     : base(niconicoSession)
 {
     _nicoLiveCacheRepository = nicoLiveCacheRepository;
 }
示例#9
0
        public HohoemaNotificationService(
            PageManager pageManager,
            QueuePlaylist queuePlaylist,
            HohoemaPlaylistPlayer hohoemaPlaylistPlayer,
            NiconicoSession niconicoSession,
            NotificationService notificationService,
            NicoVideoProvider nicoVideoProvider,
            MylistProvider mylistProvider,
            NicoLiveProvider nicoLiveProvider,
            CommunityProvider communityProvider,
            UserProvider userProvider,
            IMessenger messenger
            )
        {
            PageManager         = pageManager;
            _queuePlaylist      = queuePlaylist;
            _niconicoSession    = niconicoSession;
            NotificationService = notificationService;
            NicoVideoProvider   = nicoVideoProvider;
            MylistProvider      = mylistProvider;
            NicoLiveProvider    = nicoLiveProvider;
            CommunityProvider   = communityProvider;
            UserProvider        = userProvider;

            _messenger = messenger;
        }
示例#10
0
        public NicoLiveVideo(
            string liveId,
            MediaPlayer mediaPlayer,
            NiconicoSession niconicoSession,
            NicoLiveProvider nicoLiveProvider,
            LoginUserLiveReservationProvider loginUserLiveReservationProvider,
            PlayerSettings playerSettings,
            IScheduler scheduler,
            string communityId = null
            )
        {
            LiveId           = liveId;
            _CommunityId     = communityId;
            MediaPlayer      = mediaPlayer;
            NiconicoSession  = niconicoSession;
            NicoLiveProvider = nicoLiveProvider;
            LoginUserLiveReservationProvider = loginUserLiveReservationProvider;
            PlayerSettings = playerSettings;
            _UIScheduler   = scheduler;

            _LiveComments = new ObservableCollection <LiveChatData>();
            LiveComments  = new ReadOnlyObservableCollection <LiveChatData>(_LiveComments);


            LiveComments.ObserveAddChanged()
            .Where(x => x.IsOperater && x.HasOperatorCommand)
            .SubscribeOn(_UIScheduler)
            .Subscribe(chat =>
            {
                OperationCommandRecieved?.Invoke(this, new OperationCommandRecievedEventArgs()
                {
                    Chat = chat
                });
            });
        }
示例#11
0
 public PreparePlayVideoResult(VideoId contentId, NiconicoSession niconicoSession, PreparePlayVideoFailedReason failedReason, DmcWatchApiData dmcWatchData = null)
     : this(contentId, niconicoSession)
 {
     AvailableQualities = ImmutableArray <NicoVideoQualityEntity> .Empty;
     IsSuccess          = false;
     FailedReason       = failedReason;
     _dmcWatchData      = dmcWatchData;
 }
 public CommentCommandEditerViewModel(
     PlayerSettings playerSettings,
     NiconicoSession niconicoSession
     )
 {
     PlayerSettings  = playerSettings;
     NiconicoSession = niconicoSession;
 }
示例#13
0
 public MylistProvider(
     NiconicoSession niconicoSession,
     NicoVideoProvider nicoVideoProvider
     )
     : base(niconicoSession)
 {
     _nicoVideoProvider = nicoVideoProvider;
 }
示例#14
0
        // TODO: タグによる生放送検索を別メソッドに分ける

        public SearchProvider(
            NiconicoSession niconicoSession,
            MylistProvider mylistProvider
            )
            : base(niconicoSession)
        {
            _mylistProvider = mylistProvider;
        }
示例#15
0
 public NicoVideoProvider(
     IEventAggregator eventAggregator,
     NiconicoSession niconicoSession
     )
     : base(niconicoSession)
 {
     EventAggregator = eventAggregator;
 }
示例#16
0
 public RankingProvider(
     NiconicoSession niconicoSession,
     RankingGenreCache rankingGenreCache
     )
     : base(niconicoSession)
 {
     _rankingGenreCache = rankingGenreCache;
 }
示例#17
0
 public RecommendProvider(
     NiconicoSession niconicoSession,
     NicoVideoProvider nicoVideoProvider
     )
     : base(niconicoSession)
 {
     _nicoVideoProvider = nicoVideoProvider;
 }
示例#18
0
 public UserProvider(NiconicoSession niconicoSession,
                     NicoVideoOwnerCacheRepository nicoVideoOwnerRepository,
                     NicoVideoProvider nicoVideoProvider
                     )
     : base(niconicoSession)
 {
     _nicoVideoOwnerRepository = nicoVideoOwnerRepository;
     _nicoVideoProvider        = nicoVideoProvider;
 }
        public void Session_1CtorWithParameters()
        {
            var key     = "key sample";
            var expires = DateTimeOffset.Now + TimeSpan.FromSeconds(1);
            var ret     = new NiconicoSession(key, expires);

            Assert.AreEqual(key, ret.Key);
            Assert.AreEqual(expires, ret.Expires);
        }
示例#20
0
 public NicoAccountIntroductionPageViewModel(
     NiconicoSession niconicoSession,
     Commands.GoNextIntroductionPageCommand goNextIntroduction
     )
 {
     NiconicoSession    = niconicoSession;
     GoNextIntroduction = goNextIntroduction;
     IsLoggedIn         = NiconicoSession.ObserveProperty(x => x.IsLoggedIn)
                          .ToReadOnlyReactiveProperty();
 }
 public LoginUserMylistProvider(
     NiconicoSession niconicoSession,
     NicoVideoProvider nicoVideoProvider,
     LoginUserMylistItemIdRepository loginUserMylistItemIdRepository
     )
     : base(niconicoSession)
 {
     _nicoVideoProvider = nicoVideoProvider;
     _loginUserMylistItemIdRepository = loginUserMylistItemIdRepository;
 }
示例#22
0
        public SyncWatchHistoryOnLoggedIn(
            ILoggerFactory loggerFactory,
            NiconicoSession niconicoSession,
            LoginUserVideoWatchHistoryProvider LoginUserVideoWatchHistoryProvider
            )
        {
            _logger          = loggerFactory.CreateLogger <SyncWatchHistoryOnLoggedIn>();
            _niconicoSession = niconicoSession;
            _LoginUserVideoWatchHistoryProvider = LoginUserVideoWatchHistoryProvider;

            _niconicoSession.LogIn += _niconicoSession_LogIn;
        }
示例#23
0
        public LocalMylistManager(
            NiconicoSession niconicoSession
            )
        {
            NiconicoSession = niconicoSession;

            Mylists = new ObservableCollection <LocalMylistGroup>(RestoreLocalMylistGroupsFromLocalDatabase());

            Mylists.CollectionChangedAsObservable()
            .Subscribe(e =>
            {
                if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Add)
                {
                    foreach (var newItem in e.NewItems.Cast <LocalMylistGroup>())
                    {
                        CompositeDisposable disposables = new CompositeDisposable();
                        new[]
                        {
                            newItem.ObserveProperty(x => x.Label).ToUnit(),
                            newItem.CollectionChangedAsObservable().ToUnit()
                        }
                        .Merge()
                        .Throttle(TimeSpan.FromSeconds(1))
                        .Subscribe(_ =>
                        {
                            LocalMylistDb.AddOrUpdate(new LocalMylistData()
                            {
                                Id        = newItem.Id,
                                Label     = newItem.Label,
                                Items     = newItem.ToList(),
                                SortIndex = newItem.SortIndex
                            });
                        })
                        .AddTo(disposables);

                        LocalMylistPropertyChangedObserverMap.Add(newItem.Id, disposables);
                    }
                }
                else if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Remove)
                {
                    foreach (var removeItem in e.NewItems.Cast <LocalMylistGroup>())
                    {
                        LocalMylistDb.Get(removeItem.Id);

                        if (LocalMylistPropertyChangedObserverMap.TryGetValue(removeItem.Id, out var disposer))
                        {
                            disposer.Dispose();
                            LocalMylistPropertyChangedObserverMap.Remove(removeItem.Id);
                        }
                    }
                }
            });
        }
示例#24
0
 public PreparePlayVideoResult(VideoId contentId, NiconicoSession niconicoSession, NicoVideoSessionOwnershipManager ownershipManager, DmcWatchApiData dmcWatchData)
     : this(contentId, niconicoSession)
 {
     _ownershipManager = ownershipManager;
     _dmcWatchData     = dmcWatchData;
     IsSuccess         = _dmcWatchData != null;
     if (_dmcWatchData?.Media.Delivery is not null and var delivery)
     {
         AvailableQualities = delivery.Movie.Videos
                              .Select(x => new NicoVideoQualityEntity(x.IsAvailable, QualityIdToNicoVideoQuality(x.Id), x.Id, (int)x.Metadata.Bitrate, (int)x.Metadata.Resolution.Width, (int)x.Metadata.Resolution.Height))
                              .ToImmutableArray();
     }
 public VideoStreamingOriginOrchestrator(
     NiconicoSession niconicoSession,
     VideoCacheManager videoCacheManager,
     NicoVideoSessionProvider nicoVideoSessionProvider,
     NicoVideoProvider nicoVideoProvider
     )
 {
     _niconicoSession          = niconicoSession;
     _videoCacheManager        = videoCacheManager;
     _nicoVideoSessionProvider = nicoVideoSessionProvider;
     _nicoVideoProvider        = nicoVideoProvider;
 }
 public RelatedVideosSidePaneContentViewModel(
     NiconicoSession niconicoSession,
     PageManager pageManager,
     RelatedVideoContentsAggregator relatedVideoContentsAggregator,
     VideoPlayWithQueueCommand videoPlayWithQueueCommand
     )
 {
     _niconicoSession = niconicoSession;
     _pageManager     = pageManager;
     _relatedVideoContentsAggregator = relatedVideoContentsAggregator;
     VideoPlayWithQueueCommand       = videoPlayWithQueueCommand;
     OpenMylistCommand = _pageManager.OpenPageCommand;
 }
 public void Session_3SetExpiresOutOfRange()
 {
     Assert2.ThrowsException <Exception>(() =>
     {
         var key     = "key sample";
         var expires = DateTimeOffset.MinValue;
         var ret     = new NiconicoSession();
         ret.Key     = key;
         ret.Expires = expires;
         Assert.AreEqual(key, ret.Key);
         Assert.AreEqual(expires, ret.Expires);
     });
 }
示例#28
0
        public NotificationMylistUpdatedService(
            NiconicoSession niconicoSession,
            Models.UserMylistManager userMylistManager,
            LocalMylistManager localMylistManager,
            NotificationService notificationService
            )
        {
            NiconicoSession     = niconicoSession;
            UserMylistManager   = userMylistManager;
            LocalMylistManager  = localMylistManager;
            NotificationService = notificationService;

            Reset();
        }
示例#29
0
        public LiveMenuSubPageContent(
            NiconicoSession niconicoSession,
            PageManager pageManager
            )
        {
            NiconicoSession = niconicoSession;
            PageManager     = pageManager;
            MenuItems       = new ObservableCollection <HohoemaListingPageItemBase>();

            NiconicoSession.LogIn  += (_, __) => ResetItems();
            NiconicoSession.LogOut += (_, __) => ResetItems();

            ResetItems();
        }
示例#30
0
 public RelatedVideoContentsAggregator(
     NiconicoSession niconicoSession,
     NicoVideoProvider nicoVideoProvider,
     ChannelProvider channelProvider,
     MylistResolver mylistRepository,
     PageManager pageManager
     )
 {
     _niconicoSession   = niconicoSession;
     _nicoVideoProvider = nicoVideoProvider;
     _channelProvider   = channelProvider;
     _mylistRepository  = mylistRepository;
     _pageManager       = pageManager;
 }