protected override MarkdownNode VisitMention(MentionNode mention) { if (mention.Type == MentionType.Meta) { _buffer.Append($"@{mention.Id}"); } else if (mention.Type == MentionType.User) { var member = _context.TryGetMember(mention.Id); var name = member?.User.Name ?? "Unknown"; _buffer.Append($"@{name}"); } else if (mention.Type == MentionType.Channel) { var channel = _context.TryGetChannel(mention.Id); var name = channel?.Name ?? "deleted-channel"; _buffer.Append($"#{name}"); } else if (mention.Type == MentionType.Role) { var role = _context.TryGetRole(mention.Id); var name = role?.Name ?? "deleted-role"; _buffer.Append($"@{name}"); } return(base.VisitMention(mention)); }
protected override MarkdownNode VisitMention(MentionNode mention) { if (mention.Kind == MentionKind.Everyone) { _buffer .Append("<span class=\"chatlog__markdown-mention\">") .Append("@everyone") .Append("</span>"); } else if (mention.Kind == MentionKind.Here) { _buffer .Append("<span class=\"chatlog__markdown-mention\">") .Append("@here") .Append("</span>"); } else if (mention.Kind == MentionKind.User) { var member = mention.TargetId?.Pipe(_context.TryGetMember); var fullName = member?.User.FullName ?? "Unknown"; var nick = member?.Nick ?? "Unknown"; _buffer .Append($"<span class=\"chatlog__markdown-mention\" title=\"{HtmlEncode(fullName)}\">") .Append('@').Append(HtmlEncode(nick)) .Append("</span>"); } else if (mention.Kind == MentionKind.Channel) { var channel = mention.TargetId?.Pipe(_context.TryGetChannel); var symbol = channel?.IsVoiceChannel == true ? "🔊" : "#"; var name = channel?.Name ?? "deleted-channel"; _buffer .Append("<span class=\"chatlog__markdown-mention\">") .Append(symbol).Append(HtmlEncode(name)) .Append("</span>"); } else if (mention.Kind == MentionKind.Role) { var role = mention.TargetId?.Pipe(_context.TryGetRole); var name = role?.Name ?? "deleted-role"; var color = role?.Color; var style = color is not null ? $"color: rgb({color.Value.R}, {color.Value.G}, {color.Value.B}); " + $"background-color: rgba({color.Value.R}, {color.Value.G}, {color.Value.B}, 0.1);" : ""; _buffer .Append($"<span class=\"chatlog__markdown-mention\" style=\"{style}\">") .Append('@').Append(HtmlEncode(name)) .Append("</span>"); } return(base.VisitMention(mention)); }
public override Node VisitMention(MentionNode mention) { var id = mention.Id.HasValue ? (_discord.GetUser(mention.Id.Value)?.Username ?? mention.Id.Value.ToString()) : mention.Special == SpecialMention.Everyone ? "everyone" : mention.Special == SpecialMention.Here ? "here" : throw new ArgumentOutOfRangeException("Unknown mention: " + mention.Special); Markup("<code>"); Text($"@{id}"); Markup("</code>"); return(mention); }
protected override MarkdownNode VisitMention(MentionNode mention) { var mentionId = Snowflake.TryParse(mention.Id); if (mention.Kind == MentionKind.Meta) { _buffer .Append("<span class=\"mention\">") .Append("@").Append(HtmlEncode(mention.Id)) .Append("</span>"); } else if (mention.Kind == MentionKind.User) { var member = mentionId?.Pipe(_context.TryGetMember); var fullName = member?.User.FullName ?? "Unknown"; var nick = member?.Nick ?? "Unknown"; _buffer .Append($"<span class=\"mention\" title=\"{HtmlEncode(fullName)}\">") .Append("@").Append(HtmlEncode(nick)) .Append("</span>"); } else if (mention.Kind == MentionKind.Channel) { var channel = mentionId?.Pipe(_context.TryGetChannel); var symbol = channel?.IsVoiceChannel == true ? "🔊" : "#"; var name = channel?.Name ?? "deleted-channel"; _buffer .Append("<span class=\"mention\">") .Append(symbol).Append(HtmlEncode(name)) .Append("</span>"); } else if (mention.Kind == MentionKind.Role) { var role = mentionId?.Pipe(_context.TryGetRole); var name = role?.Name ?? "deleted-role"; var color = role?.Color; var style = color is not null ? $"color: rgb({color?.R}, {color?.G}, {color?.B}); background-color: rgba({color?.R}, {color?.G}, {color?.B}, 0.1);" : ""; _buffer .Append($"<span class=\"mention\" style=\"{style}\">") .Append("@").Append(HtmlEncode(name)) .Append("</span>"); } return(base.VisitMention(mention)); }
protected override MarkdownNode VisitMention(MentionNode mention) { if (mention.Type == MentionType.Meta) { _buffer .Append("<span class=\"mention\">") .Append("@").Append(HtmlEncode(mention.Id)) .Append("</span>"); } else if (mention.Type == MentionType.User) { var member = _context.TryGetMember(mention.Id); var fullName = member?.User.FullName ?? "Unknown"; var nick = member?.Nick ?? "Unknown"; _buffer .Append($"<span class=\"mention\" title=\"{HtmlEncode(fullName)}\">") .Append("@").Append(HtmlEncode(nick)) .Append("</span>"); } else if (mention.Type == MentionType.Channel) { var channel = _context.TryGetChannel(mention.Id); var name = channel?.Name ?? "deleted-channel"; _buffer .Append("<span class=\"mention\">") .Append("#").Append(HtmlEncode(name)) .Append("</span>"); } else if (mention.Type == MentionType.Role) { var role = _context.TryGetRole(mention.Id); var name = role?.Name ?? "deleted-role"; var color = role?.Color; var style = color != null ? $"color: rgb({color?.R}, {color?.G}, {color?.B}); background-color: rgba({color?.R}, {color?.G}, {color?.B}, 0.1);" : ""; _buffer .Append($"<span class=\"mention\" style=\"{style}\">") .Append("@").Append(HtmlEncode(name)) .Append("</span>"); } return(base.VisitMention(mention)); }
protected override MarkdownNode VisitMention(MentionNode mention) { if (mention.Kind == MentionKind.Everyone) { _buffer.Append("@everyone"); } else if (mention.Kind == MentionKind.Here) { _buffer.Append("@here"); } else if (mention.Kind == MentionKind.User) { var member = mention.TargetId?.Pipe(_context.TryGetMember); var name = member?.User.Name ?? "Unknown"; _buffer.Append($"@{name}"); } else if (mention.Kind == MentionKind.Channel) { var channel = mention.TargetId?.Pipe(_context.TryGetChannel); var name = channel?.Name ?? "deleted-channel"; _buffer.Append($"#{name}"); // Voice channel marker if (channel?.SupportsVoice == true) { _buffer.Append(" [voice]"); } } else if (mention.Kind == MentionKind.Role) { var role = mention.TargetId?.Pipe(_context.TryGetRole); var name = role?.Name ?? "deleted-role"; _buffer.Append($"@{name}"); } return(base.VisitMention(mention)); }
protected override MarkdownNode VisitMention(MentionNode mention) { var mentionId = Snowflake.TryParse(mention.Id); if (mention.Kind == MentionKind.Meta) { _buffer.Append($"@{mention.Id}"); } else if (mention.Kind == MentionKind.User) { var member = mentionId?.Pipe(_context.TryGetMember); var name = member?.User.Name ?? "Unknown"; _buffer.Append($"@{name}"); } else if (mention.Kind == MentionKind.Channel) { var channel = mentionId?.Pipe(_context.TryGetChannel); var name = channel?.Name ?? "deleted-channel"; _buffer.Append($"#{name}"); // Voice channel marker if (channel?.IsVoiceChannel == true) { _buffer.Append(" [voice]"); } } else if (mention.Kind == MentionKind.Role) { var role = mentionId?.Pipe(_context.TryGetRole); var name = role?.Name ?? "deleted-role"; _buffer.Append($"@{name}"); } return(base.VisitMention(mention)); }
protected virtual MarkdownNode VisitMention(MentionNode mention) => mention;
public virtual MarkdownNode VisitMention(MentionNode mention) => mention;