Example #1
0
        protected override async void Execute(object parameter)
        {
            if (parameter is Interfaces.IFollowable)
            {
                // TODO: MessageDialogによるフォロー解除の確認

                var    followManager = HohoemaCommnadHelper.GetHohoemaApp().FollowManager;
                var    followType    = GetFollowItemType(parameter as Interfaces.IFollowable);
                string id;
                if (parameter is Interfaces.INiconicoContent)
                {
                    id = (parameter as Interfaces.INiconicoContent).Id;
                }
                else if (parameter is Interfaces.ISearchWithtag)
                {
                    id = (parameter as Interfaces.ISearchWithtag).Tag;
                }
                else
                {
                    throw new NotSupportedException();
                }

                var result = await followManager.RemoveFollow(followType, id);
            }
        }
Example #2
0
        protected override async void Execute(object parameter)
        {
            if (parameter is Interfaces.IFeedGroup)
            {
                var feedGroupManager = HohoemaCommnadHelper.GetFeedManager();
                var content          = parameter as Interfaces.IFeedGroup;
                var feedGroup        = feedGroupManager.GetFeedGroup(int.Parse(content.Id));

                if (feedGroup != null)
                {
                    var dialog = new MessageDialog(
                        $"指定されたフィードグループを削除します。この操作は元に戻せません。",
                        $"フィードグループ \"{feedGroup.Label}\"を削除します"
                        );
                    dialog.Commands.Add(new UICommand("フィードグループを削除")
                    {
                        Id = "delete"
                    });
                    dialog.Commands.Add(new UICommand("キャンセル"));

                    dialog.CancelCommandIndex  = 1;
                    dialog.DefaultCommandIndex = 1;
                    var result = await dialog.ShowAsync();

                    if ((result.Id as string) == "delete")
                    {
                        feedGroupManager.RemoveFeedGroup(feedGroup);
                    }
                }
            }
        }
Example #3
0
        protected override void Execute(object parameter)
        {
            string ownerId = null;

            if (parameter is Interfaces.IVideoContent)
            {
                var content = parameter as Interfaces.IVideoContent;
                if (string.IsNullOrEmpty(content.OwnerUserId))
                {
                    return;
                }
                ownerId = content.OwnerUserId;
            }
            else if (parameter is string id)
            {
                ownerId = id;
            }

            if (ownerId != null)
            {
                var pageManager = HohoemaCommnadHelper.GetPageManager();

                if (Mntone.Nico2.NiconicoRegex.IsChannelId(ownerId))
                {
                    pageManager.OpenPage(Models.HohoemaPageType.ChannelVideo, ownerId);
                }
                else
                {
                    pageManager.OpenPage(Models.HohoemaPageType.UserVideo, ownerId);
                }
            }
        }
Example #4
0
        protected override void Execute(object parameter)
        {
            if (parameter is Interfaces.IVideoContent)
            {
                var content = parameter as Interfaces.IVideoContent;

                var player = HohoemaCommnadHelper.GetHohoemaPlaylist();
                player.DefaultPlaylist.AddVideo(content.Id, content.Label);
            }
        }
Example #5
0
        protected override void Execute(object parameter)
        {
            if (parameter is Interfaces.IVideoContent)
            {
                var content = parameter as Interfaces.IVideoContent;

                var pageManager = HohoemaCommnadHelper.GetPageManager();
                pageManager.OpenPage(Models.HohoemaPageType.VideoInfomation, content.Id);
            }
        }
Example #6
0
        protected override async void Execute(object parameter)
        {
            if (parameter is Interfaces.IVideoContent)
            {
                var content = parameter as Interfaces.IVideoContent;

                var mediaManager = HohoemaCommnadHelper.GetHohoemaApp().CacheManager;
                await mediaManager.RequestCache(content.Id);
            }
        }
Example #7
0
        protected override void Execute(object parameter)
        {
            if (parameter is Interfaces.IFeedGroup)
            {
                var content     = parameter as Interfaces.IFeedGroup;
                var pageManager = HohoemaCommnadHelper.GetPageManager();

                pageManager.OpenPage(Models.HohoemaPageType.FeedGroup, content.Id);
            }
        }
        protected override async void Execute(object parameter)
        {
            if (parameter is Interfaces.IFeedGroup)
            {
                var feedGroupManager = HohoemaCommnadHelper.GetFeedManager();
                var content          = parameter as Interfaces.IFeedGroup;
                var feedGroup        = feedGroupManager.GetFeedGroup(int.Parse(content.Id));
                // await feedGroup.Refresh();

                // TODO: フィードマネージャやフィード編集ページの表示を更新する
            }
        }
Example #9
0
        protected override void Execute(object parameter)
        {
            if (parameter is Interfaces.ILiveContent)
            {
                var content = parameter as Interfaces.ILiveContent;

                if (!string.IsNullOrEmpty(content.BroadcasterId))
                {
                    var pageManager = HohoemaCommnadHelper.GetPageManager();
                    pageManager.OpenPage(Models.HohoemaPageType.Community, content.BroadcasterId);
                }
            }
        }
Example #10
0
        protected override async void Execute(object parameter)
        {
            if (parameter is Interfaces.IVideoContent)
            {
                var content = parameter as Interfaces.IVideoContent;

                var cacheManager = HohoemaCommnadHelper.GetHohoemaApp().CacheManager;
                var requests     = await cacheManager.GetCacheRequest(content.Id);

                if (requests.Any(x => x.ToCacheState() == NicoVideoCacheState.Cached))
                {
                    // キャッシュ済みがある場合は、削除確認を行う


                    var dialog = new MessageDialog(
                        $"{content.Label} の キャッシュデータ(全ての画質)を削除します。この操作は元に戻せません。",
                        "キャッシュの削除確認"
                        );

                    dialog.Commands.Add(new UICommand()
                    {
                        Label   = "キャッシュを削除",
                        Invoked = async(uicommand) =>
                        {
                            await cacheManager.CancelCacheRequest(content.Id);
                        }
                    });
                    dialog.Commands.Add(new UICommand()
                    {
                        Label = "キャンセル",
                    });

                    dialog.DefaultCommandIndex = 1;

                    await dialog.ShowAsync();
                }
                else
                {
                    // キャッシュリクエストのみで
                    // キャッシュがいずれも未完了の場合は
                    // 確認無しで削除
                    foreach (var req in requests)
                    {
                        await cacheManager.CancelCacheRequest(req.RawVideoId, req.Quality);
                    }
                }
            }
        }
Example #11
0
        protected override async void Execute(object parameter)
        {
            if (parameter is Interfaces.IVideoContent)
            {
                var content = parameter as Interfaces.IVideoContent;

                var hohoemaApp   = HohoemaCommnadHelper.GetHohoemaApp();
                var targetMylist = await hohoemaApp.ChoiceMylist();

                if (targetMylist != null)
                {
                    var result = await hohoemaApp.AddMylistItem(targetMylist, content.Label, content.Id);

                    (App.Current as App).PublishInAppNotification(
                        Models.InAppNotificationPayload.CreateRegistrationResultNotification(
                            result,
                            "マイリスト",
                            targetMylist.Label,
                            content.Label
                            ));
                }
            }
        }
        protected override async void Execute(object parameter)
        {
            var pageManager = HohoemaCommnadHelper.GetPageManager();

            var localStorge = new Microsoft.Toolkit.Uwp.Helpers.LocalObjectStorageHelper();

            switch (pageManager.CurrentPageType)
            {
            case Models.HohoemaPageType.PrologueIntroduction:
                pageManager.OpenPage(Models.HohoemaPageType.NicoAccountIntroduction);
                break;

            case Models.HohoemaPageType.NicoAccountIntroduction:
                pageManager.OpenPage(Models.HohoemaPageType.VideoCacheIntroduction);
                break;

            case Models.HohoemaPageType.VideoCacheIntroduction:
                pageManager.OpenPage(Models.HohoemaPageType.EpilogueIntroduction);
                break;

            case Models.HohoemaPageType.EpilogueIntroduction:
            default:
                // 初回起動の案内が完了したことを記録
                localStorge.Save(App.IS_COMPLETE_INTRODUCTION, true);

                // スタートアップページを開く
                pageManager.OpenStartupPage();

                // イントロダクション系ページに戻れないようページ履歴を消去
                await Task.Delay(100);

                pageManager.ClearNavigateHistory();

                break;
            }
        }
 protected override async void Execute(object parameter)
 {
     var hohoemaApp = HohoemaCommnadHelper.GetHohoemaApp();
     await hohoemaApp.SignOut();
 }
Example #14
0
        protected override async void Execute(object parameter)
        {
            if (parameter is Interfaces.IVideoContent)
            {
                var content = parameter as Interfaces.IVideoContent;

                var hohoemaApp = HohoemaCommnadHelper.GetHohoemaApp();
                var ownerName  = content.OwnerUserName;
                if (string.IsNullOrEmpty(ownerName))
                {
                    if (content.OwnerUserType == Mntone.Nico2.Videos.Thumbnail.UserType.User)
                    {
                        try
                        {
                            var userInfo = await hohoemaApp.ContentProvider.GetUserDetail(content.OwnerUserId);

                            ownerName = userInfo.Nickname;
                        }
                        catch
                        {
                            return;
                        }
                    }
                    else if (content.OwnerUserType == Mntone.Nico2.Videos.Thumbnail.UserType.Channel)
                    {
                        var channelInfo = await hohoemaApp.ContentProvider.GetChannelInfo(content.OwnerUserId);

                        ownerName = channelInfo.Name;

                        var channel = Database.NicoVideoOwnerDb.Get(content.OwnerUserId)
                                      ?? 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) =>
                    {
                        hohoemaApp.UserSettings.NGSettings.AddNGVideoOwnerId(content.OwnerUserId.ToString(), ownerName);
                    }
                });
                dialog.Commands.Add(new UICommand()
                {
                    Label = "キャンセル"
                });

                dialog.DefaultCommandIndex = 0;

                await dialog.ShowAsync();
            }
        }
Example #15
0
        protected override void Execute(object parameter)
        {
            bool isPlayerShowWithSmallMode = true;

            if (parameter is Interfaces.IVideoContent)
            {
                var content = parameter as Interfaces.IVideoContent;

                var player = HohoemaCommnadHelper.GetHohoemaPlaylist();
                player.PlayVideo(content);

                isPlayerShowWithSmallMode = false;
            }
            else if (parameter is Interfaces.ILiveContent)
            {
                var content = parameter as Interfaces.ILiveContent;

                var player = HohoemaCommnadHelper.GetHohoemaPlaylist();
                player.PlayLiveVideo(content);

                isPlayerShowWithSmallMode = false;
            }
            else if (parameter is Interfaces.ICommunity)
            {
                var content     = parameter as Interfaces.ICommunity;
                var pageManager = HohoemaCommnadHelper.GetPageManager();
                pageManager.OpenPage(Models.HohoemaPageType.Community, content.Id);
            }
            else if (parameter is Interfaces.IMylist)
            {
                var content     = parameter as Interfaces.IMylist;
                var pageManager = HohoemaCommnadHelper.GetPageManager();
                pageManager.OpenPage(Models.HohoemaPageType.Mylist, new Models.MylistPagePayload(content.Id).ToParameterString());
            }
            else if (parameter is Interfaces.IUser)
            {
                var content     = parameter as Interfaces.IUser;
                var pageManager = HohoemaCommnadHelper.GetPageManager();
                pageManager.OpenPage(Models.HohoemaPageType.UserInfo, content.Id);
            }
            else if (parameter is Interfaces.ISearchWithtag)
            {
                var content     = parameter as Interfaces.ISearchWithtag;
                var pageManager = HohoemaCommnadHelper.GetPageManager();
                pageManager.Search(SearchPagePayloadContentHelper.CreateDefault(SearchTarget.Tag, content.Tag));
            }
            else if (parameter is Interfaces.IFeedGroup)
            {
                var content     = parameter as Interfaces.IFeedGroup;
                var pageManager = HohoemaCommnadHelper.GetPageManager();
                pageManager.OpenPage(Models.HohoemaPageType.FeedVideoList, content.Id);
            }
            else if (parameter is Interfaces.ISearchHistory)
            {
                var history     = parameter as Interfaces.ISearchHistory;
                var pageManager = HohoemaCommnadHelper.GetPageManager();
                pageManager.Search(SearchPagePayloadContentHelper.CreateDefault(history.Target, history.Keyword));
            }
            else if (parameter is Interfaces.IChannel)
            {
                var channel     = parameter as Interfaces.IChannel;
                var pageManager = HohoemaCommnadHelper.GetPageManager();
                pageManager.OpenPage(HohoemaPageType.ChannelVideo, channel.Id);
            }


            if (isPlayerShowWithSmallMode)
            {
                var playlist = HohoemaCommnadHelper.GetHohoemaPlaylist();
                if (playlist.IsDisplayMainViewPlayer)
                {
                    playlist.PlayerDisplayType = PlayerDisplayType.PrimaryWithSmall;
                }
            }
            // TODO: マイリストやユーザーIDを開けるように
        }