feat: add Telegram sticker import functionality

- Implemented TelegramImport component for importing sticker packs from Telegram using a bot token.
- Added utility functions for animated sticker conversion (TGS and WEBM to GIF).
- Created telegramStickerImport module to handle fetching and processing of Telegram sticker sets.
- Introduced GIF.js type definitions for TypeScript support.
This commit is contained in:
2026-02-19 21:57:25 +11:00
parent eb3768ae30
commit 21d4bc6ad9
9 changed files with 968 additions and 0 deletions

View File

@@ -18,6 +18,10 @@ const copyFiles = {
dest: '',
rename: 'pdf.worker.min.js',
},
{
src: 'node_modules/gif.js/dist/gif.worker.js',
dest: '',
},
{
src: 'netlify.toml',
dest: '',
@@ -67,6 +71,32 @@ function serverMatrixSdkCryptoWasm(wasmFilePath) {
};
}
function serveGifWorker() {
return {
name: 'vite-plugin-serve-gif-worker',
configureServer(server) {
server.middlewares.use((req, res, next) => {
if (req.url === '/gif.worker.js') {
const resolvedPath = path.join(path.resolve(), '/node_modules/gif.js/dist/gif.worker.js');
if (fs.existsSync(resolvedPath)) {
res.setHeader('Content-Type', 'application/javascript');
res.setHeader('Cache-Control', 'no-cache');
const fileStream = fs.createReadStream(resolvedPath);
fileStream.pipe(res);
} else {
res.writeHead(404);
res.end('File not found');
}
} else {
next();
}
});
},
};
}
export default defineConfig({
appType: 'spa',
publicDir: false,
@@ -81,6 +111,7 @@ export default defineConfig({
},
plugins: [
serverMatrixSdkCryptoWasm('/node_modules/.vite/deps/pkg/matrix_sdk_crypto_wasm_bg.wasm'),
serveGifWorker(),
topLevelAwait({
// The export name of top-level await promise for each chunk module
promiseExportName: '__tla',