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(); } }
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()) });
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); }
public static void Share(INiconicoObject content) { Share(content.GetLabel(), MakeShareText(content)); }
public static string MakeShareTextWithTitle(INiconicoObject parameter) { return($"{parameter.GetLabel()} {MakeShareText(parameter)}"); }