Import Telegram sticker packs (not just Signal) #2
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
robocub/vommet#2
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Why
Telegram sticker packs are what a lot of people have. Today Commet only imports Signal packs (
sgnl://andsignal.artlinks).What exists
commet/lib/ui/pages/settings/categories/room/emoji_packs/bulk_import_view.dart.fetchUrl()branches on the URL scheme and callsloadSignalPack(), which fillsnames,datas,imagesand the cover index. Emoji -> shortcode mapping and de-duplication (ensureNoConflictingNames) are reusable as-is.MatrixImportEmoticonPackTask(already handles rate limits). Packs are standard MSC2545 image packs.GET /proxy/telegram/stickers/<set_name>returns{name, title, cover, stickers:[{id, emoji, width, height, format, url}]}andGET /proxy/telegram/media/<file_id>streams the file. The bot token never reaches the client.Plan
Phase 1, static packs (small):
https://t.me/addstickers/<name>andtg://addstickers?set=<name>, plus a bare set name.webpsticker into the existing preview grid; feed the existing upload task.tgs) and video (webm) stickers: skip, and say so in the dialog ("12 of 40 stickers are animated and were skipped") instead of failing silently.sticker_type: custom_emoji) default the pack usage to emoji rather than sticker.Phase 2, animated packs (medium): transcode in the proxy, not the client:
tgs(gzipped Lottie) via rlottie,webmvia ffmpeg, both to animated WebP. mautrix-telegram's converter is a working reference. Check that animated WebP stickers render in Element, Cinny and FluffyChat before choosing the output format.Acceptance
Blocked on #1 (proxy deployment).
Filed with LLM assistance. This is a fork-only issue; never refile it on Commet's tracker.
Progress 2026-10-04:
Proxy (phase 2) — live on proxy.nether.im (vomit-proxy bb0f8a9):
.tgsvia rlottie, video.webmvia ffmpeg, transparency preserved.Client — branch
feat/telegram-sticker-import(not merged):t.me/addstickers/…,telegram.me/…, no-scheme andtg://addstickers?set=…links, plus theaddemojiforms.Not done yet: custom-emoji sets should default the pack to emoji usage, but the import callback has no usage parameter yet; and the whole flow needs a manual test in the built app.