diff --git a/ArchiSteamFarm/ArchiSteamFarm.csproj b/ArchiSteamFarm/ArchiSteamFarm.csproj
index 58f5a2200..4285b78fb 100644
--- a/ArchiSteamFarm/ArchiSteamFarm.csproj
+++ b/ArchiSteamFarm/ArchiSteamFarm.csproj
@@ -40,6 +40,7 @@
+
diff --git a/ArchiSteamFarm/IPC/Controllers/Api/WWWController.cs b/ArchiSteamFarm/IPC/Controllers/Api/WWWController.cs
index b89b0278e..dd392ece9 100644
--- a/ArchiSteamFarm/IPC/Controllers/Api/WWWController.cs
+++ b/ArchiSteamFarm/IPC/Controllers/Api/WWWController.cs
@@ -57,6 +57,15 @@ namespace ArchiSteamFarm.IPC.Controllers.Api {
return Ok(new GenericResponse>(result));
}
+ [HttpGet("MarkdownToText")]
+ public ActionResult> MarkdownToTextGet([FromQuery] string text) {
+ if (string.IsNullOrEmpty(text)) {
+ return BadRequest(new GenericResponse(false, string.Format(Strings.ErrorIsEmpty, nameof(text))));
+ }
+
+ return Ok(new GenericResponse(ArchiSteamFarm.Utilities.MarkdownToText(text)));
+ }
+
[HttpPost("Send")]
public async Task>> SendPost([FromBody] WWWSendRequest request) {
if (request == null) {
diff --git a/ArchiSteamFarm/Utilities.cs b/ArchiSteamFarm/Utilities.cs
index d4e172241..8b81081d7 100644
--- a/ArchiSteamFarm/Utilities.cs
+++ b/ArchiSteamFarm/Utilities.cs
@@ -177,6 +177,21 @@ namespace ArchiSteamFarm {
return true;
}
+ internal static string MarkdownToText(string markdownText) {
+ if (string.IsNullOrEmpty(markdownText)) {
+ ASF.ArchiLogger.LogNullError(nameof(markdownText));
+ return null;
+ }
+
+ string plainText = Markdig.Markdown.ToPlainText(markdownText);
+ if (plainText == null) {
+ ASF.ArchiLogger.LogNullError(nameof(plainText));
+ return null;
+ }
+
+ return plainText;
+ }
+
internal static int RandomNext() {
lock (Random) {
return Random.Next();