fix(telegram): render rich header title as plain text

This commit is contained in:
RhenCloud 2026-09-13 13:09:05 +08:00
parent 1348873847
commit 2e89c79e9c
No known key found for this signature in database
GPG key ID: A574A617378C4E0B
2 changed files with 38 additions and 1 deletions

View file

@ -1,8 +1,15 @@
import MarkdownIt from "markdown-it";
import type { RouteTarget, Env, NeutralMessage } from "../../types";
import type { PlatformDriver, SendResult } from "../types";
import { sendMessage, sendPhoto, editMessageText, editMessageCaption } from "./rest";
import { renderNeutralMessage } from "./render";
const markdown = new MarkdownIt({ html: false, linkify: false, breaks: false, typographer: false });
function markdownToText(value: string): string {
return markdown.renderInline(value).replace(/<[^>]*>/gu, "");
}
function smallAvatar(url: string): string {
const sep = url.includes("?") ? "&" : "?";
return `${url}${sep}s=64`;
@ -11,7 +18,7 @@ function smallAvatar(url: string): string {
function richHeaderUrl(message: NeutralMessage, avatar: string, host: string): string {
const params = new URLSearchParams();
if (message.author?.name) params.set("title", message.author.name);
if (message.title) params.set("content", message.title);
if (message.title) params.set("content", markdownToText(message.title));
params.set("avatar", avatar);
return `${host.replace(/\/+$/, "")}/api/richheader?${params.toString()}`;
}