public CachedVideoStreamingSession(VideoCacheItem videoCacheItem, NiconicoSession niconicoSession)
     : base(niconicoSession, null)
 {
     Quality         = videoCacheItem.DownloadedVideoQuality;
     QualityId       = Quality.ToString();
     _videoCacheItem = videoCacheItem;
 }
        public SearchResultLivePageViewModel(
            ILoggerFactory loggerFactory,
            ApplicationLayoutManager applicationLayoutManager,
            NiconicoSession niconicoSession,
            SearchProvider searchProvider,
            PageManager pageManager,
            SearchHistoryRepository searchHistoryRepository,
            NicoLiveCacheRepository nicoLiveCacheRepository,
            OpenLiveContentCommand openLiveContentCommand
            )
            : base(loggerFactory.CreateLogger <SearchResultLivePageViewModel>())
        {
            ApplicationLayoutManager = applicationLayoutManager;
            NiconicoSession          = niconicoSession;
            SearchProvider           = searchProvider;
            PageManager = pageManager;
            _searchHistoryRepository = searchHistoryRepository;
            _nicoLiveCacheRepository = nicoLiveCacheRepository;
            OpenLiveContentCommand   = openLiveContentCommand;

            SelectedSearchSort = new ReactiveProperty <LiveSearchPageSortOrder>(SortOptionItems[0], mode: ReactivePropertyMode.DistinctUntilChanged);
            SelectedLiveStatus = new ReactiveProperty <LiveStatus>(LiveStatusItems[0], mode: ReactivePropertyMode.DistinctUntilChanged);
            SelectedProviders  = new ObservableCollection <ProviderType>();

            IsTagSearch          = new ReactiveProperty <bool>(false);
            IsTimeshiftAvairable = new ReactiveProperty <bool>(false);
            IsHideMemberOnly     = new ReactiveProperty <bool>(false);
            IsDisableGrouping    = new ReactiveProperty <bool>(false);

            Observable.Merge(
                SelectedSearchSort.ToUnit(),
                SelectedLiveStatus.ToUnit(),
                SelectedProviders.CollectionChangedAsObservable().ToUnit()
                )
            .Subscribe(async _ =>
            {
                if (_NowNavigatingTo)
                {
                    return;
                }

                if (_query is not null)
                {
                    if (_query.Keyword == Keyword &&
                        _query.SortOrder == SelectedSearchSort.Value &&
                        _query.LiveStatus == SelectedLiveStatus.Value &&
                        (_query.ProviderTypes?.Any() ?? false) &&
                        SelectedProviders.Count == _query.ProviderTypes.Length &&
                        SelectedProviders.All(x => _query.ProviderTypes.Contains(x))
                        )
                    {
                        return;
                    }
                }

                ResetList();
            })
            .AddTo(_CompositeDisposable);
        }
示例#3
0
 public MylistResolver(
     NiconicoSession niconicoSession,
     LoginUserOwnedMylistManager userMylistManager,
     MylistProvider mylistProvider
     )
 {
     _niconicoSession   = niconicoSession;
     _userMylistManager = userMylistManager;
     _mylistProvider    = mylistProvider;
 }
        public VideoStreamingSession(NiconicoSession niconicoSession, NicoVideoSessionOwnershipManager.VideoSessionOwnership videoSessionOwnership)
        {
            NiconicoSession        = niconicoSession;
            _videoSessionOwnership = videoSessionOwnership;

            if (_videoSessionOwnership != null)
            {
                _videoSessionOwnership.ReturnOwnershipRequested += _videoSessionOwnership_ReturnOwnershipRequested;
            }
        }
 public LiveSearchSource(
     LiveSearchOptionsQuery query,
     TimeshiftReservationsDetailResponse reservation,
     SearchProvider searchProvider,
     NiconicoSession niconicoSession,
     NicoLiveCacheRepository nicoLiveCacheRepository
     )
 {
     Query                    = query;
     _reservation             = reservation;
     SearchProvider           = searchProvider;
     NiconicoSession          = niconicoSession;
     _nicoLiveCacheRepository = nicoLiveCacheRepository;
 }
 public CommunityPageViewModel(
     ApplicationLayoutManager applicationLayoutManager,
     AppearanceSettings appearanceSettings,
     PageManager pageManager,
     NiconicoSession niconicoSession,
     CommunityFollowProvider communityFollowProvider,
     CommunityProvider communityProvider
     )
 {
     ApplicationLayoutManager = applicationLayoutManager;
     _appearanceSettings      = appearanceSettings;
     PageManager              = pageManager;
     NiconicoSession          = niconicoSession;
     _communityFollowProvider = communityFollowProvider;
     CommunityProvider        = communityProvider;
 }
        public DmcVideoStreamingSession(string qualityId, DmcWatchApiData res, NiconicoSession niconicoSession, NicoVideoSessionOwnershipManager.VideoSessionOwnership videoSessionOwnership, bool forCacheDownload = false)
            : base(niconicoSession, videoSessionOwnership)
        {
            _dmcWatchData     = res;
            _forCacheDownload = forCacheDownload;
            QualityId         = qualityId;
            Quality           = res.ToNicoVideoQuality(qualityId);

#if DEBUG
            Debug.WriteLine($"Id/Bitrate/Resolution/Available");
            foreach (var q in _dmcWatchData.Media.Delivery.Movie.Videos)
            {
                Debug.WriteLine($"{q.Id}/{q.Metadata.Bitrate}/{q.IsAvailable}/{q.Metadata.Resolution}");
            }
#endif

            VideoContent = _dmcWatchData.Media.Delivery.Movie.Videos.FirstOrDefault(x => x.Id == qualityId);

            if (VideoContent != null)
            {
                Debug.WriteLine($"{VideoContent.Id}/{VideoContent.Metadata.Bitrate}/{VideoContent.IsAvailable}/w={VideoContent.Metadata.Resolution.Width} h={VideoContent.Metadata.Resolution.Height}");
            }
        }
示例#8
0
        public SearchPageViewModel(
            IScheduler scheduler,
            ApplicationLayoutManager applicationLayoutManager,
            NiconicoSession niconicoSession,
            SearchProvider searchProvider,
            PageManager pageManager,
            SearchHistoryRepository searchHistoryRepository
            )
        {
            _scheduler = scheduler;
            ApplicationLayoutManager = applicationLayoutManager;
            NiconicoSession          = niconicoSession;
            SearchProvider           = searchProvider;
            PageManager = pageManager;
            _searchHistoryRepository = searchHistoryRepository;
            HashSet <string> HistoryKeyword = new HashSet <string>();

            foreach (var item in _searchHistoryRepository.ReadAllItems().OrderByDescending(x => x.LastUpdated))
            {
                if (HistoryKeyword.Contains(item.Keyword))
                {
                    continue;
                }

                SearchHistoryItems.Add(new SearchHistoryListItemViewModel(item, this));
                HistoryKeyword.Add(item.Keyword);
            }

            SearchText = new ReactiveProperty <string>(_LastKeyword)
                         .AddTo(_CompositeDisposable);

            TargetListItems = new List <SearchTarget>()
            {
                SearchTarget.Keyword,
                SearchTarget.Tag,
                SearchTarget.Niconama,
            };

            SelectedTarget = new ReactiveProperty <SearchTarget>(_LastSelectedTarget)
                             .AddTo(_CompositeDisposable);

            DoSearchCommand = new ReactiveCommand()
                              .AddTo(_CompositeDisposable);
#if DEBUG
            SearchText.Subscribe(x =>
            {
                Debug.WriteLine($"検索:{x}");
            });
#endif

#if DEBUG
            DoSearchCommand.CanExecuteChangedAsObservable()
            .Subscribe(x =>
            {
                Debug.WriteLine(DoSearchCommand.CanExecute());
            });
#endif



            IsNavigationFailed     = new ReactiveProperty <bool>();
            NavigationFailedReason = new ReactiveProperty <string>();
        }
示例#9
0
 public ProviderBase(NiconicoSession niconicoSession)
 {
     _niconicoSession = niconicoSession;
 }