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.orgAPI_HASH- Your API_HASH. Get it from my.telegram.orgBOT_OWNER- Your Telegram Account ID. Get it from @MissRose_bot (Start the bot and send/command).BOT_TOKEN- Bot Token of Your Telegram Bot. Get it from @BotFatherMONGODB_DBNAME- (optional) A custom name for the MongoDB database, useful if you deploy multiple instances of the bot on the same account. Defaults toUnzipper_BotMONGODB_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 addRose, 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
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
(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 <(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 <(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 <(curl -sSL https://raw.githubusercontent.com/EDM115/unzip-bot/v7-rework-part-1/setup.sh) -- -h
The easy way
- Install Docker Desktop then restart your computer (if on Windows)
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
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 :
DOCKER_USERNAME: all in lowercaseDOCKER_TOKEN: one with all rights, here : https://hub.docker.com/settings/security
- Go in Actions tab, 2 workflows are here for ya :
Build Docker Image: Check if it builds without errorsPublish Docker Image: Rebuild && publish
Do it manually
- Go in the repo’s folder
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 :
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)
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 :
- Star this repository
- Follow me on GitHub
- Donate :
👮 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.