Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/kotakbiasa/unzip-bot


https://github.com/kotakbiasa/unzip-bot

Last synced: 4 days ago
JSON representation

Awesome Lists containing this project

README

        



# Unarchiver Bot

## A Telegram bot to extract various types of archives

![Unzip logo](https://telegra.ph/file/d4ba24682e030fc58613f.jpg)

[![DeepSource](https://app.deepsource.com/gh/EDM115/unzip-bot.svg/?label=active+issues&show_trend=true&token=17SfwVx77dbrFlixtGdQsQNh)](https://app.deepsource.com/gh/EDM115/unzip-bot/?ref=repository-badge)

[![Unzip-Bot Analytics](https://repobeats.axiom.co/api/embed/5c857b55b42dd8235388093858b74341f6c679ac.svg)](https://github.com/EDM115/unzip-bot/pulse)

## Working bot ๐Ÿฅฐ

[@unzip_edm115bot](https://t.me/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](my.telegram.org)
- `API_HASH` - Your API_HASH. Get it from [my.telegram.org](my.telegram.org)
- `BOT_OWNER` - Your Telegram Account ID. Get it from [@MissRose_bot](https://t.me/MissRose_bot) (Start the bot and send /info command).
- `BOT_TOKEN` - Bot Token of Your Telegram Bot. Get it from [@BotFather](https://t.me/BotFather)
- `MONGODB_URL` - Your MongoDB URL ([**tutorial here**](./CreateMongoDB.md))
- `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`](https://t.me/MissRose_bot?startgroup=startbot), 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](http://p7zip.sourceforge.net/) package with some additional features

---

#### The lazy way

[![Deploy me ๐Ÿฅบ](https://www.herokucdn.com/deploy/button.svg)](https://www.heroku.com/deploy?template=https://github.com/kotakbiasa/unzip-bot)
(if you're in a fork, make sure to replace the template URL with your repoโ€™s one)

---

#### The easy way

+ Install [Docker](https://www.docker.com/) then restart your computer
```bash
git clone -b master https://github.com/EDM115/unzip-bot.git
cd unzip-bot
docker build -t 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

```bash
git clone -b master https://github.com/EDM115/unzip-bot.git
cd unzip-bot
pip3 install -r requirements.txt
```
+ Arch linux only โ†“
`sudo pacman -S p7zip`

##### Edit config.py with your own values

```bash
start.sh
```

---

**DONE ๐Ÿฅณ enjoy the bot !** Be sure to follow me on [Github](https://github.com/EDM115) 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 lowercase
+ `DOCKER_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 errors
+ `Publish Docker Image` : Rebuild && publish

#### Do it manually

+ Go in the repo's folder
```bash
docker build -t unzip-bot .
```
+ If you wanna publish :
```bash
docker tag 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
```
*login and don't mind the errors*
```bash
docker push edm115/unzip-bot:latest
```
*(same, replace accordingly)*

## Found a bug ๐Ÿž

If you found a bug in this bot please open an [issue](https://github.com/EDM115/unzip-bot/issues) or report it on Telegram : [@EDM115](https://t.me/EDM115)
Same if you have any feature request ๐Ÿ˜‰

## License & Copyright ๐Ÿ‘ฎโ€โ™€๏ธ

```
Copyright (c) 2022 - 2023 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](https://github.com/Itz-fork/Unzipper-Bot)