Skip to content

Stickerifier/Stickerify

Repository files navigation

Telegram bot to convert medias in the format required to be used as Telegram stickers

Table of contents

How to use the bot

You can use the bot going here: start it, and you can now send it the medias you need to convert.

Based on what you send, Stickerify will answer the following:

  • the converted media, if you sent a supported file (images, gifs, videos, and existing Telegram stickers are supported) that needed conversion
  • no file, if you sent a media already suiting Telegram's requirements
  • an error message, if you sent either an unsupported or a corrupted file
  • an informative message for any message without a file
    flowchart LR
    A[User] -->|Message| B([Stickerify])
    B -->|Request contains a file| C{Is file supported?}
    click B "https://t.me/StickerifyImageBot" _blank
    style B fill: #2889ba, stroke: #e0e0e0, color: #e0e0e0
    C -->|Yes| D{Does file need conversion?}
    C -->|No| E(Error message)
    B -->|Request has only text| F{Is help or start command?}
    F -->|Yes| G(Show bot usage)
    F -->|No| H(About message)
    D -->|Yes| J(Convert file)
    D -->|No| K(No conversion)

How to create a new sticker

  1. Chat with Stickers, and use it to create a sticker pack
  2. Ask Stickers to add a new sticker
  3. Use Stickerify to create the proper file for your sticker
  4. Forward Stickerify's message to Stickers
  5. Choose an emoji representing your sticker

And it's done!

How to set up the project

  1. Install JDK 21 (or higher)
  2. Clone the project and move into its folder
  3. Run the command ./gradlew build -x test
  4. Import the project inside your IDE as a Gradle project
  5. Ensure your IDE is correctly configured to use a Java 21 (or higher) JDK

How to run the bot locally

After you successfully set up the project, you will have to go through the following steps:

  1. Chat with BotFather and ask it to create a new bot
  2. Copy the token it provided you and either:
    • set it as the value of a new environment variable named STICKERIFY_TOKEN
    • use it as the value passed to the super(botToken) constructor inside the class Stickerify
  3. Install FFmpeg
  4. Run the Main class to start the bot, it will be now able to answer messages in Telegram

How to launch the bot using Docker

  1. Install Docker
  2. Prepare the Docker image either:
    • moving into the project folder and building the image with the command:
      docker build -t rob93c/stickerify .
    • pulling the image from Docker Hub:
      docker pull rob93c/stickerify
  3. Now you just need to run the Docker image passing the token ({{TOKEN}}) retrieved from BotFather:
    docker run -e "STICKERIFY_TOKEN={{TOKEN}}" rob93c/stickerify

How to contribute to the project

Take a look at this project's contributing guidelines here.

Have any question? Feel free to open a new discussion.

Hacktoberfest

Hacktoberfest is an event aiming to encourage people to contribute to open source projects every October. This project adheres to this initiative and welcomes any hacktoberfest-related improvement!

If you would like to improve Stickerify as part of this event, first read the contributing guidelines and then feel free to open a new issue and/or pull request.

If your pull request represents a valid contribution to the project, it will be marked as hacktoberfest-accepted, therefore counting towards the 4 contributions goal.

Useful information

License

See the LICENSE file for license rights and limitations (MIT).