//private YouTubeLiveMessageContext CreateMessageContext2(InternalMembership comment, bool isInitialComment) //{ // IYouTubeLiveMessage message; // IEnumerable<IMessagePart> commentItems; // IEnumerable<IMessagePart> nameItems; // var a = new YouTubeLiveMembership(comment); // message = a; // nameItems = a.NameItems; // commentItems = a.CommentItems; // var metadata = CreateMetadata(message, isInitialComment); // var methods = new YouTubeLiveMessageMethods(); // if (_siteOptions.IsAutoSetNickname) // { // var user = metadata.User; // var messageText = Common.MessagePartsTools.ToText(commentItems); // var nick = SitePluginCommon.Utils.ExtractNickname(messageText); // if (!string.IsNullOrEmpty(nick)) // { // user.Nickname = nick; // } // } // metadata.User.Name = nameItems; // return new YouTubeLiveMessageContext(message, metadata, methods); //} //private YouTubeLiveMessageContext CreateMessageContext2(InternalSuperChat superChat, bool isInitialComment) //{ // IYouTubeLiveMessage message; // IEnumerable<IMessagePart> commentItems; // IEnumerable<IMessagePart> nameItems; // var a = new YouTubeLiveSuperchat(superChat); // message = a; // nameItems = a.NameItems; // commentItems = a.CommentItems; // var metadata = CreateMetadata(message, isInitialComment); // var methods = new YouTubeLiveMessageMethods(); // if (_siteOptions.IsAutoSetNickname) // { // var user = metadata.User; // var messageText = Common.MessagePartsTools.ToText(commentItems); // var nick = SitePluginCommon.Utils.ExtractNickname(messageText); // if (!string.IsNullOrEmpty(nick)) // { // user.Nickname = nick; // } // } // metadata.User.Name = nameItems; // return new YouTubeLiveMessageContext(message, metadata, methods); //} //private YouTubeLiveMessageContext CreateMessageContext2(InternalComment comment, bool isInitialComment) //{ // IYouTubeLiveMessage message; // IEnumerable<IMessagePart> commentItems; // IEnumerable<IMessagePart> nameItems; // var a = new YouTubeLiveComment(comment); // message = a; // nameItems = a.NameItems; // commentItems = a.CommentItems; // var metadata = CreateMetadata(message, isInitialComment); // var methods = new YouTubeLiveMessageMethods(); // if (_siteOptions.IsAutoSetNickname) // { // var user = metadata.User; // var messageText = Common.MessagePartsTools.ToText(commentItems); // var nick = SitePluginCommon.Utils.ExtractNickname(messageText); // if (!string.IsNullOrEmpty(nick)) // { // user.Nickname = nick; // } // } // metadata.User.Name = nameItems; // return new YouTubeLiveMessageContext(message, metadata, methods); //} //private YouTubeLiveMessageContext CreateMessageContext(CommentData commentData, bool isInitialComment) //{ // IYouTubeLiveMessage message; // IEnumerable<IMessagePart> commentItems; // IEnumerable<IMessagePart> nameItems; // if (commentData.IsPaidMessage) // { // var superchat = new YouTubeLiveSuperchat(commentData); // message = superchat; // nameItems = superchat.NameItems; // commentItems = superchat.CommentItems; // } // else // { // var comment = new YouTubeLiveComment(commentData); // message = comment; // nameItems = comment.NameItems; // commentItems = comment.CommentItems; // } // var metadata = CreateMetadata(message, isInitialComment); // var methods = new YouTubeLiveMessageMethods(); // if (_siteOptions.IsAutoSetNickname) // { // var user = metadata.User; // var messageText = Common.MessagePartsTools.ToText(commentItems); // var nick = SitePluginCommon.Utils.ExtractNickname(messageText); // if (!string.IsNullOrEmpty(nick)) // { // user.Nickname = nick; // } // } // metadata.User.Name = nameItems; // return new YouTubeLiveMessageContext(message, metadata, methods); //} private YouTubeLiveMessageMetadata CreateMetadata(IYouTubeLiveMessage message, bool isInitialComment) { string userId = null; if (message is IYouTubeLiveComment comment) { userId = comment.UserId; } else if (message is IYouTubeLiveSuperchat superchat) { userId = superchat.UserId; } else if (message is IYouTubeLiveMembership membership) { userId = membership.UserId; } bool isFirstComment; IUser user; if (userId != null) { if (_userCommentCountDict.ContainsKey(userId)) { _userCommentCountDict[userId]++; isFirstComment = false; } else { _userCommentCountDict.Add(userId, 1); isFirstComment = true; } user = GetUser(userId); } else { isFirstComment = false; user = null; } var metadata = new YouTubeLiveMessageMetadata(message, _options, _siteOptions, user, this, isFirstComment) { IsInitialComment = isInitialComment, SiteContextGuid = SiteContextGuid, }; return(metadata); }
public void UserColorTest() { var userMock = new Mock <IUser>(); userMock.Setup(u => u.BackColorArgb).Returns("#FFFF0000"); userMock.Setup(u => u.ForeColorArgb).Returns("#FF0000FF"); var messageMock = new Mock <IYouTubeLiveComment>(); var optionsMock = new Mock <ICommentOptions>(); var siteOptionsMock = new Mock <IYouTubeLiveSiteOptions>(); var message = messageMock.Object; var options = optionsMock.Object; var siteOptions = siteOptionsMock.Object; var user = userMock.Object; var metadata = new YouTubeLiveMessageMetadata(message, options, siteOptions, user, null, false); Assert.AreEqual(Colors.Red, metadata.BackColor); Assert.AreEqual(Colors.Blue, metadata.ForeColor); }
public void UserColorChangedRaisedTest() { var userMock = new Mock <IUser>(); userMock.Setup(u => u.BackColorArgb).Returns("#FFFF0000"); userMock.Setup(u => u.ForeColorArgb).Returns("#FF0000FF"); var messageMock = new Mock <IYouTubeLiveComment>(); var optionsMock = new Mock <ICommentOptions>(); var siteOptionsMock = new Mock <IYouTubeLiveSiteOptions>(); var message = messageMock.Object; var options = optionsMock.Object; var siteOptions = siteOptionsMock.Object; var user = userMock.Object; var metadata = new YouTubeLiveMessageMetadata(message, options, siteOptions, user, null, false); var backColorRaised = false; var foreColorRaised = false; metadata.PropertyChanged += (s, e) => { switch (e.PropertyName) { case nameof(metadata.BackColor): backColorRaised = true; break; case nameof(metadata.ForeColor): foreColorRaised = true; break; } }; userMock.Raise(c => c.PropertyChanged += null, new PropertyChangedEventArgs(nameof(user.BackColorArgb))); userMock.Raise(c => c.PropertyChanged += null, new PropertyChangedEventArgs(nameof(user.ForeColorArgb))); Assert.IsTrue(backColorRaised); Assert.IsTrue(foreColorRaised); }