Пример #1
0
 public static string MakeShareText(INiconicoObject parameter)
 {
     if (parameter is IVideoContent videoContent)
     {
         return(MakeShareText(videoContent.VideoId));
     }
     else if (parameter is ILiveContent liveContent)
     {
         return(MakeShareText(liveContent.LiveId, "ニコニコ生放送"));
     }
     else if (parameter is ICommunity communityContent)
     {
         return(MakeShareText(communityContent.CommunityId, "ニコニミュニティ"));
     }
     else if (parameter is IMylist mylistContent)
     {
         return(MakeShareText($"mylist/{mylistContent.MylistId}"));
     }
     else if (parameter is IUser userContent)
     {
         return(MakeShareText($"user/{userContent.UserId}"));
     }
     else
     {
         throw new NotSupportedException();
     }
 }
Пример #2
0
 public static string GetLabel(this INiconicoObject obj)
 {
     return(obj switch
     {
         IVideoContent video => video.Title,
         ILiveContent live => live.Title,
         ICommunity community => community.Name,
         IChannel channel => channel.Name,
         IMylist mylist => mylist.Name,
         ITag tag => tag.Tag,
         IUser user => user.Nickname,
         _ => throw new NotSupportedException(obj.ToString())
     });
Пример #3
0
        public static Uri ConvertToUrl(INiconicoObject content)
        {
            Uri uri = null;

            switch (content)
            {
            case IUser user:
                uri = new Uri(NiconicoUrls.MakeUserPageUrl(user.UserId));
                break;

            case IVideoContent videoContent:
                uri = new Uri(NiconicoUrls.MakeWatchPageUrl(videoContent.VideoId));
                break;

            case IMylist mylist:
                uri = new Uri(NiconicoUrls.MakeMylistPageUrl(mylist.MylistId));
                break;

            case ILiveContent live:
                uri = new Uri(NiconicoUrls.MakeLiveWatchPageUrl(live.LiveId));
                break;

            case IChannel channel:
                uri = new Uri(NiconicoUrls.MakeChannelPageUrl(channel.ChannelId));
                break;

            case ICommunity community:
                uri = new Uri(NiconicoUrls.MakeCommunityPageUrl(community.CommunityId));
                break;

            default:
                break;
            }

            return(uri);
        }
Пример #4
0
 public static void Share(INiconicoObject content)
 {
     Share(content.GetLabel(), MakeShareText(content));
 }
Пример #5
0
 public static string MakeShareTextWithTitle(INiconicoObject parameter)
 {
     return($"{parameter.GetLabel()} {MakeShareText(parameter)}");
 }