mirror of
https://github.com/Tyrrrz/DiscordChatExporter.git
synced 2026-04-24 06:54:44 +00:00
Refactor
This commit is contained in:
27
DiscordChatExporter.Core.Markdown/Ast/EmojiNode.cs
Normal file
27
DiscordChatExporter.Core.Markdown/Ast/EmojiNode.cs
Normal file
@@ -0,0 +1,27 @@
|
||||
namespace DiscordChatExporter.Core.Markdown.Ast
|
||||
{
|
||||
public class EmojiNode : Node
|
||||
{
|
||||
public string? Id { get; }
|
||||
|
||||
public string Name { get; }
|
||||
|
||||
public bool IsAnimated { get; }
|
||||
|
||||
public bool IsCustomEmoji => !string.IsNullOrWhiteSpace(Id);
|
||||
|
||||
public EmojiNode(string? id, string name, bool isAnimated)
|
||||
{
|
||||
Id = id;
|
||||
Name = name;
|
||||
IsAnimated = isAnimated;
|
||||
}
|
||||
|
||||
public EmojiNode(string name)
|
||||
: this(null, name, false)
|
||||
{
|
||||
}
|
||||
|
||||
public override string ToString() => $"<Emoji> {Name}";
|
||||
}
|
||||
}
|
||||
19
DiscordChatExporter.Core.Markdown/Ast/FormattedNode.cs
Normal file
19
DiscordChatExporter.Core.Markdown/Ast/FormattedNode.cs
Normal file
@@ -0,0 +1,19 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace DiscordChatExporter.Core.Markdown.Ast
|
||||
{
|
||||
public class FormattedNode : Node
|
||||
{
|
||||
public TextFormatting Formatting { get; }
|
||||
|
||||
public IReadOnlyList<Node> Children { get; }
|
||||
|
||||
public FormattedNode(TextFormatting formatting, IReadOnlyList<Node> children)
|
||||
{
|
||||
Formatting = formatting;
|
||||
Children = children;
|
||||
}
|
||||
|
||||
public override string ToString() => $"<{Formatting}> ({Children.Count} direct children)";
|
||||
}
|
||||
}
|
||||
14
DiscordChatExporter.Core.Markdown/Ast/InlineCodeBlockNode.cs
Normal file
14
DiscordChatExporter.Core.Markdown/Ast/InlineCodeBlockNode.cs
Normal file
@@ -0,0 +1,14 @@
|
||||
namespace DiscordChatExporter.Core.Markdown.Ast
|
||||
{
|
||||
public class InlineCodeBlockNode : Node
|
||||
{
|
||||
public string Code { get; }
|
||||
|
||||
public InlineCodeBlockNode(string code)
|
||||
{
|
||||
Code = code;
|
||||
}
|
||||
|
||||
public override string ToString() => $"<Code> {Code}";
|
||||
}
|
||||
}
|
||||
22
DiscordChatExporter.Core.Markdown/Ast/LinkNode.cs
Normal file
22
DiscordChatExporter.Core.Markdown/Ast/LinkNode.cs
Normal file
@@ -0,0 +1,22 @@
|
||||
namespace DiscordChatExporter.Core.Markdown.Ast
|
||||
{
|
||||
public class LinkNode : Node
|
||||
{
|
||||
public string Url { get; }
|
||||
|
||||
public string Title { get; }
|
||||
|
||||
public LinkNode(string url, string title)
|
||||
{
|
||||
Url = url;
|
||||
Title = title;
|
||||
}
|
||||
|
||||
public LinkNode(string url)
|
||||
: this(url, url)
|
||||
{
|
||||
}
|
||||
|
||||
public override string ToString() => $"<Link> {Title}";
|
||||
}
|
||||
}
|
||||
17
DiscordChatExporter.Core.Markdown/Ast/MentionNode.cs
Normal file
17
DiscordChatExporter.Core.Markdown/Ast/MentionNode.cs
Normal file
@@ -0,0 +1,17 @@
|
||||
namespace DiscordChatExporter.Core.Markdown.Ast
|
||||
{
|
||||
public class MentionNode : Node
|
||||
{
|
||||
public string Id { get; }
|
||||
|
||||
public MentionType Type { get; }
|
||||
|
||||
public MentionNode(string id, MentionType type)
|
||||
{
|
||||
Id = id;
|
||||
Type = type;
|
||||
}
|
||||
|
||||
public override string ToString() => $"<{Type} mention> {Id}";
|
||||
}
|
||||
}
|
||||
10
DiscordChatExporter.Core.Markdown/Ast/MentionType.cs
Normal file
10
DiscordChatExporter.Core.Markdown/Ast/MentionType.cs
Normal file
@@ -0,0 +1,10 @@
|
||||
namespace DiscordChatExporter.Core.Markdown.Ast
|
||||
{
|
||||
public enum MentionType
|
||||
{
|
||||
Meta,
|
||||
User,
|
||||
Channel,
|
||||
Role
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
namespace DiscordChatExporter.Core.Markdown.Ast
|
||||
{
|
||||
public class MultiLineCodeBlockNode : Node
|
||||
{
|
||||
public string Language { get; }
|
||||
|
||||
public string Code { get; }
|
||||
|
||||
public MultiLineCodeBlockNode(string language, string code)
|
||||
{
|
||||
Language = language;
|
||||
Code = code;
|
||||
}
|
||||
|
||||
public override string ToString() => $"<Code [{Language}]> {Code}";
|
||||
}
|
||||
}
|
||||
6
DiscordChatExporter.Core.Markdown/Ast/Node.cs
Normal file
6
DiscordChatExporter.Core.Markdown/Ast/Node.cs
Normal file
@@ -0,0 +1,6 @@
|
||||
namespace DiscordChatExporter.Core.Markdown.Ast
|
||||
{
|
||||
public abstract class Node
|
||||
{
|
||||
}
|
||||
}
|
||||
12
DiscordChatExporter.Core.Markdown/Ast/TextFormatting.cs
Normal file
12
DiscordChatExporter.Core.Markdown/Ast/TextFormatting.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
namespace DiscordChatExporter.Core.Markdown.Ast
|
||||
{
|
||||
public enum TextFormatting
|
||||
{
|
||||
Bold,
|
||||
Italic,
|
||||
Underline,
|
||||
Strikethrough,
|
||||
Spoiler,
|
||||
Quote
|
||||
}
|
||||
}
|
||||
14
DiscordChatExporter.Core.Markdown/Ast/TextNode.cs
Normal file
14
DiscordChatExporter.Core.Markdown/Ast/TextNode.cs
Normal file
@@ -0,0 +1,14 @@
|
||||
namespace DiscordChatExporter.Core.Markdown.Ast
|
||||
{
|
||||
public class TextNode : Node
|
||||
{
|
||||
public string Text { get; }
|
||||
|
||||
public TextNode(string text)
|
||||
{
|
||||
Text = text;
|
||||
}
|
||||
|
||||
public override string ToString() => Text;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user