Fix HtmlText exception with empty texts

This commit is contained in:
Wizou 2024-07-06 15:36:08 +02:00
parent b9299810b8
commit 88c05287be
3 changed files with 10 additions and 11 deletions

2
.github/dev.yml vendored
View file

@ -1,7 +1,7 @@
pr: none
trigger: [ master ]
name: 4.1.2-dev.$(Rev:r)
name: 4.1.3-dev.$(Rev:r)
pool:
vmImage: ubuntu-latest

3
.github/release.yml vendored
View file

@ -62,7 +62,6 @@ stages:
{
"status": "success",
"complete": true,
"message": "{ \"commitId\": \"$(Build.SourceVersion)\", \"buildNumber\": \"$(Build.BuildNumber)\", \"teamProjectName\": \"$(System.TeamProject)\"
}"
"message": "{ \"commitId\": \"$(Build.SourceVersion)\", \"buildNumber\": \"$(Build.BuildNumber)\", \"teamProjectName\": \"$(System.TeamProject)\"}"
}
waitForCompletion: 'false'

View file

@ -403,7 +403,7 @@ namespace TL
prevEntity.length = offset - prevEntity.offset;
}
}
else if (tag.StartsWith("a href=\"") && tag.EndsWith("\""))
else if (tag.StartsWith("a href=\"") && tag[^1] == '"')
{
tag = tag[8..^1];
if (tag.StartsWith("tg://user?id=") && long.TryParse(tag[13..], out var user_id) && users?.GetValueOrDefault(user_id)?.access_hash is long hash)
@ -411,7 +411,7 @@ namespace TL
else
entities.Add(new MessageEntityTextUrl { offset = offset, length = -1, url = tag });
}
else if (tag.StartsWith("code class=\"language-") && tag.EndsWith("\""))
else if (tag.StartsWith("code class=\"language-") && tag[^1] == '"')
{
if (entities.LastOrDefault(e => e.length == -1) is MessageEntityPre prevEntity)
prevEntity.language = tag[21..^1];
@ -439,13 +439,13 @@ namespace TL
internal static void FixUps(StringBuilder sb, List<MessageEntity> entities)
{
int truncate = 0;
while (char.IsWhiteSpace(sb[^++truncate]));
if (truncate == 1) return;
var len = sb.Length -= --truncate;
int newlen = sb.Length;
while (--newlen >= 0 && char.IsWhiteSpace(sb[newlen]));
if (++newlen == sb.Length) return;
sb.Length = newlen;
foreach (var entity in entities)
if (entity.offset + entity.length > len)
entity.length = len - entity.offset;
if (entity.offset + entity.length > newlen)
entity.length = newlen - entity.offset;
}
/// <summary>Converts the (plain text + entities) format used by Telegram messages into an <a href="https://core.telegram.org/bots/api/#html-style">HTML-formatted text</a></summary>