This bot provides stream links for Telegram files without the necessity of waiting for the download to complete, offering the ability to store files.
Either you could locally host, VPS, or deploy on Heroku
Deploy on Heroku (Paid) :
-
Fork This Repo
-
Click on Deploy Easily
-
Press the below button to Fast deploy on Heroku
-
Go to variables tab for more info on setting up environmental variables.
Deploy Locally :
git clone https://github.com/SudoR2spr/WOODStreamBot
cd WOODStreamBot
python3 -m venv ./venv
. ./venv/bin/activate
pip install -r requirements.txt
python3 -m WOODStream
-
To stop the whole bot, do CTRL+C
-
If you want to run this bot 24/7 on the VPS, follow these steps.
sudo apt install tmux -y
tmux
python3 -m WOODStream
-
now you can close the VPS and the bot will run on it.
Deploy using Docker :
* Clone the repository: ```sh git clone https://github.com/SudoR2spr/WOODStreamBot cd WOODStreamBot ``` * Build own Docker image: ```sh docker build -t file-stream . ```
- Create ENV and Start Container:
docker run -d --restart unless-stopped --name fsb \
-v /PATH/TO/.env:/app/.env \
-p 8000:8000 \
file-stream
- if you need to change the variables in .env file after your bot was already started, all you need to do is restart the container for the bot settings to get updated:
docker restart fsb
Setting up things :
If you're on Heroku, just add these in the Environmental Variables
or if you're Locally hosting, create a file named .env
in the root directory and add all the variables there.
An example of .env
file:
API_ID = 789456
API_HASH = ysx275f9638x896g43sfzx65
BOT_TOKEN = 12345678:your_bot_token
ULOG_CHANNEL = -100123456789
FLOG_CHANNEL = -100123456789
DATABASE_URL = mongodb://admin:pass@192.168.27.1
FQDN = 192.168.27.1
HAS_SSL = False
MULTI_TOKEN1 = 12345678:bot_token_multi_client_1
MULTI_TOKEN2 = 12345678:bot_token_multi_client_2
OWNER_ID = 987456321
PORT = 8080
Vars and Details :
API_ID
: API ID of your Telegram account, can be obtained from My Telegram.int
API_HASH
: API hash of your Telegram account, can be obtained from My Telegram.str
OWNER_ID
: Your Telegram User ID, Send/id
to @missrose_bot to get Your Telegram User IDint
BOT_TOKEN
: Telegram API token of your bot, can be obtained from @BotFather.str
FLOG_CHANNEL
: ID of the channel where bot will store all Files from usersint
.ULOG_CHANNEL
: ID of the channel where bot will send logs of New Usersint
.BOT_WORKERS
: Number of updates bot should process from Telegram at once, by default to 10 updates.int
DATABASE_URL
: MongoDB URI for saving User Data and Files List created by user.str
FQDN
: A Fully Qualified Domain Name if present without http/s. Defaults toBIND_ADDRESS
.str
MULTI_TOKEN1
: Add your first bot token or session strings here.str
MULTI_TOKEN2
: Add your second bot token or session strings here.str
UPDATES_CHANNEL
: Channel Username without@
to set channel as Update Channelstr
FORCE_SUB_ID
: Force Sub Channel ID, if you want to use Force Sub. start with-100
`intFORCE_SUB
: Set to True, so every user have to Join update channel to use the bot.bool
AUTH_USERS
: Put authorized user IDs to use bot, separated by Space.int
SLEEP_THRESHOLD
: Set global flood wait threshold, auto-retry requests under 60s.int
SESSION_NAME
: Name for the Database created on your MongoDB. Defaults toWOODStream
.str
FILE_PIC
: To set Image at/files
command. Defaults to pre-set image.str
START_PIC
: To set Image at/start
command. Defaults to pre-set image.str
VERIFY_PIC
: To set Image at Force Sub Verification. Defaults to pre-set image.str
WORKERS
: Number of maximum concurrent workers for handling incoming updates. Defaults to6
.int
PORT
: The port that you want your webapp to be listened to. Defaults to8080
.int
BIND_ADDRESS
: Your server bind adress. Defauls to0.0.0.0
.int
MODE
: Should be set tosecondary
if you only want to use the server for serving files.str
NO_PORT
: (True/False) Set PORT to 80 or 443 hide port display; ignore if on Heroku. Defaults toFalse
.HAS_SSL
: (can be eitherTrue
orFalse
) If you want the generated links in https format. Defaults toFalse
.
How to Use :
LOG_CHANNEL
as an Admin
/start : To check the bot is alive or not.
/help : To Get Help Message.
/about : To check About the Bot.
/files : To Get All Files List of User.
/del : To Delete Files from DB with FileID. [ADMIN]
/ban : To Ban Any Channel or User to use bot. [ADMIN]
/unban : To Unban Any Channel or User to use bot. [ADMIN]
/status : To Get Bot Status and Total Users. [ADMIN]
/broadcast : To Broadcast any message to all users of bot. [ADMIN]
Bot also Supported with Channels. Just add bot Channel as Admin. If any new file comes in Channel it will edit it with Get Download Link Button.
- SudoR2spr : for his WOODStreamBot