Important

The bot is undergoing an important rewrite.
Please be patient and wait a few weeks to get the unzip-bot in its full glory !
Check [ROADMAP] The future of unzip-bot (v7) (#296) to know more about the current development.


🥰 Working bot

@unzip_edm115bot
More info : edm115.dev/unzip

👀 Features

User side

  • Extract all formats of archives like rar, zip, 7z, tar.gz, …
  • Supports password protected archives
  • Able to process split archives (.001, .partX.rar, …)
  • Download files from links
  • Rename and set custom thumbnail for files
  • Uploads files as documents or media
  • Can report issues directly

Admin side

  • Broadcast messages to all users or specific ones
  • Ban/unban users from using your bot
  • Get realtime stats of the bot usage, along an API
  • Ability to set sudo users
  • Restart simply the bot and pull updates in one command
  • Can eval and exec code directly from Telegram
  • Send logs in a custom channel/group + retrieve logs from the bot
    And much more 🔥 Dive into the code to find out 🤭

📖 Config vars

  • APP_ID - Your APP ID. Get it from my.telegram.org
  • API_HASH - Your API_HASH. Get it from my.telegram.org
  • BOT_OWNER - Your Telegram Account ID. Get it from @MissRose_bot (Start the bot and send /info command).
  • BOT_TOKEN - Bot Token of Your Telegram Bot. Get it from @BotFather
  • MONGODB_DBNAME - (optional) A custom name for the MongoDB database, useful if you deploy multiple instances of the bot on the same account. Defaults to Unzipper_Bot
  • MONGODB_URL - Your MongoDB URL (tutorial here)
  • LOGS_CHANNEL - Make a private channel and get its ID (search on Google if you don’t know how to do). Using a group works as well, just add Rose, then send /id (In both cases, make sure to add your bot to the channel/group as an admin !)

✍️ Commands

Copy-paste those to BotFather when he asks you for them

text
commands - Get commands list
mode - Upload as Doc 📄 / Media 📺
addthumb - Add custom thumbnail
delthumb - Remove your thumbnail
stats - Know if bot is overused
clean - Cancel ongoing process
help - In case you need 😭

🚧 Deploy

Deploying is easy 🥰 You can deploy this bot in Heroku or in a VPS ❤️
Star 🌟 Fork 🍴 and Deploy 📤

Tip

If you need a cloud server (VPS) to host the bot, try Hetzner Cloud.
This is what I personally use for all my bots, my website, APIs and more !
Cheap service but awesome quality.
Sign up using this link to get 20€ in cloud credits.

The lazy way

Deploy me :pleading_face:
(if you’re in a fork, make sure to replace the template URL with your repo’s one, also replace the URL in the Dockerfile)

The fast way

Run the following command in your terminal

bash
bash <(curl -sSL https://raw.githubusercontent.com/EDM115/unzip-bot/v7-rework-part-1/setup.sh)

if curl isn’t available on your system, use wget :

bash
bash <(wget -qO- https://raw.githubusercontent.com/EDM115/unzip-bot/v7-rework-part-1/setup.sh)

DO NOT run this script as sudo. If Docker complains, follow Docker’s postinstall steps.
Usage of flags is available with this script to make it a bit faster. More info with -h|--help

bash
bash <(curl -sSL https://raw.githubusercontent.com/EDM115/unzip-bot/v7-rework-part-1/setup.sh) -- -h

The easy way

bash
git clone https://github.com/EDM115/unzip-bot.git && cd unzip-bot
nano .env
docker build -t edm115/unzip-bot .
  • Open Docker Desktop, go on the Images tab, click on the Run button
  • On Optional settings, fill the env variables

The nerdy way

bash
git clone https://github.com/EDM115/unzip-bot.git && cd unzip-bot
nano .env
docker build -t edm115/unzip-bot .
docker run -d -v downloaded-volume-prod:/app/Downloaded -v thumbnails-volume-prod:/app/Thumbnails --env-file ./.env --name unzipbot edm115/unzip-bot

DONE 🥳 enjoy the bot ! Be sure to follow me on GitHub and Star 🌟 this repo to show some support 🥺

How to build after changes ?

Trust GitHub Actions

  • Add new Actions secrets to the repo :
  • Go in Actions tab, 2 workflows are here for ya :
    • Build Docker Image : Check if it builds without errors
    • Publish Docker Image : Rebuild && publish

Do it manually

  • Go in the repo’s folder
bash
docker build --no-cache -t edm115/unzip-bot .
docker run -d -v downloaded-volume:/app/Downloaded -v thumbnails-volume:/app/Thumbnails --env-file ./.env --network host --name unzip-bot-container edm115/unzip-bot
docker start unzip-bot-container
# if you want to check something
docker exec -it unzip-bot-container sh
docker logs unzip-bot-container
# once you're done
docker stop unzip-bot-container
  • If you wanna publish :
bash
docker tag edm115/unzip-bot edm115/unzip-bot:latest

(replace edm115 with your docker hub username, unzip-bot with the repo’s name and latest whith whatever you want)

bash
docker login
docker push edm115/unzip-bot:latest

(same, replace accordingly)

Dev commands

  • Upgrade/install dependencies : uv sync
  • Lint code : ruff check
  • Lint and fix code : ruff check --fix
  • Format code : ruff format

🐛 Found a bug ?

If you found a bug in this bot please open an issue or report it on Telegram : @EDM115
Same if you have any feature request 😉

💸 Donate

I’m a young developer from France. If you want to support me, here’s how you can do it :

👮 License

unzip-bot is licensed under the MIT License
This repository originally began as a fork of partiallywritten/Unzipper-Bot (which was licensed under GPL-3.0), with just some additional features and bug fixes. Since v8, the codebase has been substantially rewritten and no source code, architecture, unique structure, nontrivial algorithms as expressed, comments, docs, tests, assets, UI text, build scripts, examples, generated files, or other copyrightable material from the original project is intentionally included in the current version.
The current project is maintained as an independent implementation under the MIT License. Props to Hirusha Himath (Itz-fork/Nexa/partiallywritten) for the og code 🫡
If you believe any GPL-licensed material from the original project remains, please open an issue with details so it can be reviewed and removed or properly attributed.

We use Cloudflare Web Analytics to collect anonymous data about your usage of this website. Are you okay with this ?