public TwitchCommentViewModel(ICommentOptions options, ITwitchSiteOptions siteOptions, ICommentData commentData, bool isFirstComment, ICommentProvider commentProvider, IUser user) : base(options, user, commentProvider, isFirstComment) { MessageType = MessageType.Comment; _siteOptions = siteOptions; Id = commentData.Id; UserId = commentData.UserId; DisplayName = commentData.DisplayName; PostTime = commentData.SentAt.ToString("HH:mm:ss"); var name = commentData.Username; user.Name = new List <IMessagePart> { MessagePartFactory.CreateMessageText(name) }; var message = commentData.Message; if (siteOptions.NeedAutoSubNickname) { var nick = ExtractNickname(message); if (!string.IsNullOrEmpty(nick)) { user.Nickname = nick; } } NameItemsInternal = new List <IMessagePart> { MessagePartFactory.CreateMessageText(name) }; MessageItems = Tools.GetMessageItems(commentData.Message, commentData.Emotes); Init(); }
public MessageMetadata(ITwitchMessage message, ICommentOptions options, ITwitchSiteOptions siteOptions, IUser user, ICommentProvider cp, bool isFirstComment) { _message = message; _options = options; _siteOptions = siteOptions; IsFirstComment = isFirstComment; User = user; CommentProvider = cp; //TODO:siteOptionsのpropertyChangedが発生したら関係するプロパティの変更通知を出したい options.PropertyChanged += Options_PropertyChanged; siteOptions.PropertyChanged += SiteOptions_PropertyChanged; user.PropertyChanged += User_PropertyChanged; }
public MetadataProvider(IDataServer server, ITwitchSiteOptions siteOptions, string channelName) { _server = server; _siteOptions = siteOptions; _channelName = channelName; }