1
0
Fork 0
mirror of https://github.com/muerwre/vk-tg-bot.git synced 2025-04-24 22:46:41 +07:00

fix link handler and too much buttons
All checks were successful
Build & Publish / Build & Publish (push) Successful in 1m38s

This commit is contained in:
Fedor Katurov 2025-03-03 14:45:55 +07:00
parent ba3d274cab
commit 34f89fa75e
3 changed files with 14 additions and 1 deletions

View file

@ -47,6 +47,7 @@ type LikeCtx = Composer.Context<CallbackQueryUpdate> & { match: string[] };
const PHOTO_CAPTION_LIMIT = 1000; const PHOTO_CAPTION_LIMIT = 1000;
const POST_TEXT_LIMIT = 4096; const POST_TEXT_LIMIT = 4096;
const URL_BUTTON_LIMIT = 4;
export class PostNewHandler extends VkEventHandler<Fields, Values> { export class PostNewHandler extends VkEventHandler<Fields, Values> {
constructor(...props: ConstructorParameters<typeof VkEventHandler<Fields, Values>>) { constructor(...props: ConstructorParameters<typeof VkEventHandler<Fields, Values>>) {
@ -193,6 +194,7 @@ export class PostNewHandler extends VkEventHandler<Fields, Values> {
return label ? { text: links[label], url: url.toString() } : undefined; return label ? { text: links[label], url: url.toString() } : undefined;
}) })
.slice(0, URL_BUTTON_LIMIT)
.filter((el) => el) as InlineKeyboardButton[]; .filter((el) => el) as InlineKeyboardButton[];
}; };

View file

@ -52,4 +52,15 @@ describe("extractURLs", () => {
"https://map.vault48.org/test5", "https://map.vault48.org/test5",
]); ]);
}); });
it("skipps link description", () => {
const result = extractURLs(
`Trying out links: [#alias|map.vault48.org/test3|https://map.vault48.org/test] https://map.vault48.org/test2`
).map((it) => it.href);
expect(result).toEqual([
"https://map.vault48.org/test",
"https://map.vault48.org/test2",
]);
});
}); });

View file

@ -15,7 +15,7 @@ export const extractURLs = (text: string): URL[] => {
text text
.match(weirdLongUrlRegex) .match(weirdLongUrlRegex)
?.forEach((match) => ?.forEach((match) =>
urls.add(fixUrl(match.replace(weirdLongUrlRegex, "$2"))) urls.add(fixUrl(match.replace(weirdLongUrlRegex, "$3")))
); );
text.match(simpleUrlRegex)?.forEach((match) => urls.add(match)); text.match(simpleUrlRegex)?.forEach((match) => urls.add(match));