JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 7
  • Score
    100M100P100Q63460F
  • License ISC

supports for conversion of .tgs to .gif, .webp, .mp4, .json .png

Package Exports

  • tgs-to
  • tgs-to/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (tgs-to) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

tgs-to

Introduction

The tgs-to module allows you to convert Telegram Animated Sticker (TGS) files to various formats such as GIF, WebP, MP4, Png and Json

Installation

You can install tgs-to via npm:

npm install tgs-to

Usage

Import the module and path module:

const TGS = require('tgs-to');
const path = require('path');

Create a new instance of TGS with the path to your TGS file:

const tgs = new TGS(path.join(__dirname, 'sticker.tgs'));

Convert the TGS file to GIF, WebP, and MP4:

Promise.all([
    tgs.convertToGif(path.join(__dirname, "sticker.gif")),
    tgs.convertToWebp(path.join(__dirname, 'sticker.webp')),
    tgs.convertToMp4(path.join(__dirname, 'sticker.mp4'))
])
.then(() => {
    console.log('conversions completed successfully'); 
})
.catch(error => {
    console.error('One or more conversions failed:', error); 
});

Additional debugging steps:-

const TGS = require('tgs-to');
const path = require('path');
const fs = require('fs');

const tgsFilePath = path.join(__dirname, 'sticker.tgs');
const gifFilePath = path.join(__dirname, 'sticker.gif');
const webpFilePath = path.join(__dirname, 'sticker.webp');
const mp4FilePath = path.join(__dirname, 'sticker.mp4');

const tgs = new TGS(tgsFilePath);

const fileExists = (filePath) => {
    return new Promise((resolve, reject) => {
        fs.access(filePath, fs.constants.F_OK, (err) => {
            if (err) {
                reject(`File does not exist: ${filePath}`);
            } else {
                resolve(`File exists: ${filePath}`);
            }
        });
    });
};

const logDirectoryContents = (dirPath) => {
    return new Promise((resolve, reject) => {
        fs.readdir(dirPath, (err, files) => {
            if (err) {
                reject(`Unable to read directory: ${err.message}`);
            } else {
                resolve(`Directory contents: ${files.join(', ')}`);
            }
        });
    });
};

Promise.all([
    tgs.convertToGif(gifFilePath)
        .then(() => fileExists(gifFilePath))  
        .then(() => {
            console.log('GIF file created successfully.');
            return tgs.convertToWebp(webpFilePath);
        })  // Proceed with WebP conversion
        .then(() => fileExists(webpFilePath))
        .then(() => {
            console.log('WebP file created successfully.');
        }),
    tgs.convertToMp4(mp4FilePath)
        .then(() => fileExists(mp4FilePath))
        .then(() => {
            console.log('MP4 file created successfully.');
        })
])
.then(() => {
    console.log('All conversions completed successfully'); 
    return logDirectoryContents(__dirname);
})
.then((contents) => {
    console.log(contents);
})
.catch(error => {
    console.error('One or more conversions failed', error); 
});

Make sure to replace 'sticker.tgs' with the path to your TGS file and adjust the output file names ('sticker.gif', 'sticker.webp', 'sticker.mp4') as needed.