mirror of
https://github.com/wiz0u/WTelegramClient.git
synced 2025-12-06 06:52:01 +01:00
Better support for HTML &entities; in HtmlText
This commit is contained in:
parent
e6dde32538
commit
edc6019f2e
|
|
@ -373,9 +373,10 @@ namespace TL
|
||||||
char c = sb[offset];
|
char c = sb[offset];
|
||||||
if (c == '&')
|
if (c == '&')
|
||||||
{
|
{
|
||||||
for (end = offset + 1; end < sb.Length; end++)
|
end = offset + 1;
|
||||||
if (sb[end] == ';') break;
|
if (end < sb.Length && sb[end] == '#') end++;
|
||||||
if (end >= sb.Length) break;
|
while (end < sb.Length && sb[end] is >= 'a' and <= 'z' or >= 'A' and <= 'Z' or >= '0' and <= '9') end++;
|
||||||
|
if (end >= sb.Length || sb[end] != ';') break;
|
||||||
var html = HttpUtility.HtmlDecode(sb.ToString(offset, end - offset + 1));
|
var html = HttpUtility.HtmlDecode(sb.ToString(offset, end - offset + 1));
|
||||||
if (html.Length == 1)
|
if (html.Length == 1)
|
||||||
{
|
{
|
||||||
|
|
@ -421,7 +422,7 @@ namespace TL
|
||||||
}
|
}
|
||||||
else if (tag.StartsWith("a href=\"") && tag[^1] == '"')
|
else if (tag.StartsWith("a href=\"") && tag[^1] == '"')
|
||||||
{
|
{
|
||||||
tag = tag[8..^1];
|
tag = HttpUtility.HtmlDecode(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)
|
if (tag.StartsWith("tg://user?id=") && long.TryParse(tag[13..], out var user_id) && users?.GetValueOrDefault(user_id)?.access_hash is long hash)
|
||||||
entities.Add(new InputMessageEntityMentionName { offset = offset, length = -1, user_id = new InputUser(user_id, hash) });
|
entities.Add(new InputMessageEntityMentionName { offset = offset, length = -1, user_id = new InputUser(user_id, hash) });
|
||||||
else
|
else
|
||||||
|
|
@ -494,7 +495,7 @@ namespace TL
|
||||||
if (tag[0] == 'a')
|
if (tag[0] == 'a')
|
||||||
{
|
{
|
||||||
if (nextEntity is MessageEntityTextUrl metu)
|
if (nextEntity is MessageEntityTextUrl metu)
|
||||||
tag = $"<a href=\"{metu.url}\">";
|
tag = $"<a href=\"{Escape(metu.url)}\">";
|
||||||
else if (nextEntity is MessageEntityMentionName memn)
|
else if (nextEntity is MessageEntityMentionName memn)
|
||||||
tag = $"<a href=\"tg://user?id={memn.user_id}\">";
|
tag = $"<a href=\"tg://user?id={memn.user_id}\">";
|
||||||
else if (nextEntity is InputMessageEntityMentionName imemn)
|
else if (nextEntity is InputMessageEntityMentionName imemn)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue