Example #1
0
        public override async Task OnNavigatedToAsync(INavigationParameters parameters)
        {
            if (parameters.TryGetValue("id", out string id))
            {
                RawChannelId = id;

                try
                {
                    var channelInfo = await ChannelProvider.GetChannelInfo(RawChannelId);

                    ChannelId         = channelInfo.ChannelId;
                    ChannelName       = channelInfo.Name;
                    ChannelScreenName = channelInfo.ScreenName;
                    ChannelOpenTime   = channelInfo.ParseOpenTime();
                    ChannelUpdateTime = channelInfo.ParseUpdateTime();
                }
                catch
                {
                    ChannelName = RawChannelId;
                }

                FollowToggleButtonService.SetFollowTarget(this);
            }

            await base.OnNavigatedToAsync(parameters);
        }
        private async Task <Tuple <string, string> > ResolveSubscriptionSourceLabel(SubscriptionSource source)
        {
            switch (source.SourceType)
            {
            case SubscriptionSourceType.User:
                var info = await UserProvider.GetUser(source.Parameter);

                return(new Tuple <string, string>(info.ScreenName, null));

            case SubscriptionSourceType.Channel:
                var channelInfo = await ChannelProvider.GetChannelInfo(source.Parameter);

                return(new Tuple <string, string>(channelInfo.Name, null));

            case SubscriptionSourceType.Mylist:
                var mylistInfo = await MylistProvider.GetMylistGroupDetail(source.Parameter);

                var mylistOwner = await UserProvider.GetUser(mylistInfo.MylistGroup.UserId);

                return(new Tuple <string, string>(mylistInfo.MylistGroup.Name, mylistOwner.ScreenName));

            case SubscriptionSourceType.TagSearch:
                return(new Tuple <string, string>(source.Parameter, null));

            case SubscriptionSourceType.KeywordSearch:
                return(new Tuple <string, string>(source.Parameter, null));

            default:
                break;
            }

            return(null);
        }
Example #3
0
        protected override async Task NavigatedToAsync(CancellationToken cancelToken, NavigatedToEventArgs e, Dictionary <string, object> viewModelState)
        {
            if (e.Parameter is string)
            {
                RawChannelId = e.Parameter as string;
            }

            if (RawChannelId == null)
            {
                return;
            }

            try
            {
                var channelInfo = await ChannelProvider.GetChannelInfo(RawChannelId);

                ChannelId         = channelInfo.ChannelId;
                ChannelName       = channelInfo.Name;
                ChannelScreenName = channelInfo.ScreenName;
                ChannelOpenTime   = channelInfo.ParseOpenTime();
                ChannelUpdateTime = channelInfo.ParseUpdateTime();
            }
            catch
            {
                ChannelName = RawChannelId;
            }

            FollowToggleButtonService.SetFollowTarget(this);

            PageManager.PageTitle = ChannelName;

            await base.NavigatedToAsync(cancelToken, e, viewModelState);
        }
        protected override async void Execute(object parameter)
        {
            if (parameter is Interfaces.IVideoContent)
            {
                var content = parameter as Interfaces.IVideoContent;

                string ownerName = null;
                if (string.IsNullOrEmpty(ownerName))
                {
                    if (content.ProviderType == NicoVideoUserType.User)
                    {
                        try
                        {
                            var userInfo = await UserProvider.GetUser(content.ProviderId);

                            ownerName = userInfo.ScreenName;
                        }
                        catch
                        {
                            return;
                        }
                    }
                    else if (content.ProviderType == NicoVideoUserType.Channel)
                    {
                        var channelInfo = await ChannelProvider.GetChannelInfo(content.ProviderId);

                        ownerName = channelInfo.Name;

                        var channel = Database.NicoVideoOwnerDb.Get(content.ProviderId)
                                      ?? new Database.NicoVideoOwner()
                        {
                            OwnerId  = channelInfo.ChannelId.ToString(),
                            UserType = NicoVideoUserType.Channel,
                        };
                        channel.ScreenName = channelInfo.ScreenName ?? channel.ScreenName;
                        Database.NicoVideoOwnerDb.AddOrUpdate(channel);
                    }
                }

                NgSettings.AddNGVideoOwnerId(content.ProviderId.ToString(), ownerName);
            }
        }
Example #5
0
        protected override async void Execute(object parameter)
        {
            if (parameter is Interfaces.IVideoContent)
            {
                var content = parameter as Interfaces.IVideoContent;


                var ownerName = content.ProviderName;
                if (string.IsNullOrEmpty(ownerName))
                {
                    if (content.ProviderType == Mntone.Nico2.Videos.Thumbnail.UserType.User)
                    {
                        try
                        {
                            var userInfo = await UserProvider.GetUser(content.ProviderId);

                            ownerName = userInfo.ScreenName;
                        }
                        catch
                        {
                            return;
                        }
                    }
                    else if (content.ProviderType == Mntone.Nico2.Videos.Thumbnail.UserType.Channel)
                    {
                        var channelInfo = await ChannelProvider.GetChannelInfo(content.ProviderId);

                        ownerName = channelInfo.Name;

                        var channel = Database.NicoVideoOwnerDb.Get(content.ProviderId)
                                      ?? new Database.NicoVideoOwner()
                        {
                            OwnerId  = channelInfo.ChannelId.ToString(),
                            UserType = Mntone.Nico2.Videos.Thumbnail.UserType.Channel,
                        };
                        channel.ScreenName = channelInfo.ScreenName ?? channel.ScreenName;
                        Database.NicoVideoOwnerDb.AddOrUpdate(channel);
                    }
                }

                var dialog = new MessageDialog(
                    $"この変更は投稿者({ownerName} さん)のアプリ内ユーザー情報ページから取り消すことができます。",

                    $"『{ownerName}』さんの投稿動画を非表示にしますか?"
                    );

                dialog.Commands.Add(new UICommand()
                {
                    Label   = "非表示に設定",
                    Invoked = (uicommand) =>
                    {
                        NgSettings.AddNGVideoOwnerId(content.ProviderId.ToString(), ownerName);
                    }
                });
                dialog.Commands.Add(new UICommand()
                {
                    Label = "キャンセル"
                });

                dialog.DefaultCommandIndex = 0;

                await dialog.ShowAsync();
            }
        }
Example #6
0
        public async ValueTask <IPlaylist> Create(PlaylistId playlistId)
        {
            var info = await _channelProvider.GetChannelInfo(playlistId.Id);

            return(new ChannelVideoPlaylist(info.ChannelId, playlistId, info.Name, _channelProvider));
        }