/unzip-bot

Telegram bot deployable to heroku that can extract every archive !

Primary LanguagePythonMIT LicenseMIT

Unarchiver Bot

A Telegram bot to extract various types of archives

Unzip logo

Code style: black DeepSource

Unzip-Bot Analytics

Working bot 🥰

@unzip_edm115bot

Features 👀

  • Extract all format of archives like rar, zip, tar, 7z, tar.xz, …
  • Supports password protected archives
  • Extract archives from direct links
  • Broadcast messages to users
  • Ban/Unban users from using your bot
  • Send logs in a private channel/group
  • Can run only one extract per user at a time
  • Fast to answer and process tasks
  • Thumbnail can be set
  • Problems can be directly reported
  • Can send a message to a specific user
  • Get infos about users
  • Can rename files
  • Able to process splitted archives (.001)
  • And some other features 🔥 Dive into the code to find them 🤭

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_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

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 on-going 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 📤

⚠️ Note : We are using arch linux. But why 🤔

Because arch's p7zip package is the only maintained version of the original p7zip package with some additional features


The lazy way

Deploy me 🥺
(if you're in a fork, make sure to replace the template URL with your repo's one)


The easy way

  • Install Docker then restart your computer
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 legacy way

git clone https://github.com/EDM115/unzip-bot.git
cd unzip-bot
pip3 install -r requirements.txt
  • Install required dependencies
    Arch Linux : sudo pacman -S p7zip
    Ubuntu/Debian : sudo apt-get install p7zip-full p7zip-rar
  • Edit .env with your own values
chmod +x start.sh && ./start.sh

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
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

login and don't mind the errors

docker push edm115/unzip-bot:latest

(same, replace accordingly)

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 😉

License & Copyright 👮‍♀️

Copyright (c) 2022 EDM115

This Unarchiver Bot repository is licensed under MIT License (https://github.com/EDM115/unzip-bot/blob/master/LICENSE)
Enjoy copying and modifying, but always mention me

• Inspired by Itz-fork/Nexa's work, but with additional features and bug fixes. This is a maintained repo of the original