/// <summary> /// /// </summary> /// <param name="message"></param> /// <param name="options"></param> /// <param name="siteOptions"></param> /// <param name="user">null可</param> /// <param name="cp"></param> /// <param name="isFirstComment"></param> public MessageMetadataBase(ICommentOptions options, IWhowatchSiteOptions siteOptions, ICommentProvider cp) { _options = options; _siteOptions = siteOptions; CommentProvider = cp; options.PropertyChanged += Options_PropertyChanged; siteOptions.PropertyChanged += SiteOptions_PropertyChanged; }
public WhowatchCommentProvider(IDataServer server, ICommentOptions options, IWhowatchSiteOptions siteOptions, IUserStoreManager userStoreManager, ILogger logger) { _server = server; _options = options; _siteOptions = siteOptions; _userStoreManager = userStoreManager; _logger = logger; CanConnect = true; CanDisconnect = false; _elapsedTimer.Interval = 500; _elapsedTimer.Elapsed += ElapsedTimer_Elapsed; }
public override void LoadOptions(string path, IIo io) { _siteOptions = CreateWhowatchSiteOptions(); try { var s = io.ReadFile(path); _siteOptions.Deserialize(s); } catch (Exception ex) { Debug.WriteLine(ex.Message); _logger.LogException(ex, "", $"path={path}"); } }
public WhowatchCommentViewModel(Comment comment, ICommentOptions options, IWhowatchSiteOptions siteOptions, IUser user, ICommentProvider cp, bool isFirstComment) : base(options, user, cp, isFirstComment) { _siteOptions = siteOptions; _user = user; Id = comment.Id.ToString(); var name = comment.User.Name; user.Name = new List <IMessagePart> { MessagePartFactory.CreateMessageText(name) }; var message = comment.Message; if (siteOptions.NeedAutoSubNickname) { var nick = ExtractNickname(message); if (!string.IsNullOrEmpty(nick)) { user.Nickname = nick; } } NameItemsInternal = new List <IMessagePart> { MessagePartFactory.CreateMessageText(name) }; MessageItems = new List <IMessagePart> { MessagePartFactory.CreateMessageText(message) }; var iconUrl = !string.IsNullOrEmpty(comment.User.IconUrl) ? comment.User.IconUrl : DefaultUserIconUrl; Thumbnail = new MessageImage { Url = iconUrl }; Init(); }
public ItemMessageMetadata(IWhowatchItem message, ICommentOptions options, IWhowatchSiteOptions siteOptions, IUser user, ICommentProvider cp) : base(options, siteOptions, cp) { User = user; user.PropertyChanged += User_PropertyChanged; }
public WhowatchCommentViewModel(Comment comment, Dictionary <long, PlayItem> itemDict, ICommentOptions options, IWhowatchSiteOptions siteOptions, IUser user, ICommentProvider cp, bool isFirstComment) : base(options, user, cp, isFirstComment) { _siteOptions = siteOptions; _user = user; if (comment.CommentType == "BY_PLAYITEM") { MessageType = MessageType.BroadcastInfo; } else { MessageType = MessageType.Comment; } if (comment.CommentType == "BY_PLAYITEM") { CommentType = CommentType.Item; if (itemDict.TryGetValue(comment.PlayItemPatternId.Value, out PlayItem item)) { Info = $"{item.Name}×{comment.ItemCount}"; } } Id = comment.Id.ToString(); var name = comment.User.Name; user.Name = new List <IMessagePart> { MessagePartFactory.CreateMessageText(name) }; var message = comment.Message; if (siteOptions.NeedAutoSubNickname) { var nick = ExtractNickname(message); if (!string.IsNullOrEmpty(nick)) { user.Nickname = nick; } } if (user == null || string.IsNullOrEmpty(user.Nickname)) { NameItemsInternal = new List <IMessagePart> { MessagePartFactory.CreateMessageText(name) }; } else { NameItemsInternal = new List <IMessagePart> { MessagePartFactory.CreateMessageText(user.Nickname) }; } MessageItems = new List <IMessagePart> { MessagePartFactory.CreateMessageText(message) }; var iconUrl = !string.IsNullOrEmpty(comment.User.IconUrl) ? comment.User.IconUrl : DefaultUserIconUrl; Thumbnail = new MessageImage { Url = iconUrl }; }
public CommentMessageMetadata(IWhowatchMessage message, ICommentOptions options, IWhowatchSiteOptions siteOptions, IUser user, ICommentProvider cp, bool isFirstComment) : base(options, siteOptions, cp) { User = user; IsFirstComment = isFirstComment; user.PropertyChanged += User_PropertyChanged; }
public MetadataProvider(IDataServer server, IWhowatchSiteOptions siteOptions) { _server = server; _siteOptions = siteOptions; }