Sign inSign up

botxtg/media-search-bot

By botxtg

•Updated over 3 years ago

Inline media search bot for telegram channels and groups

Image
0

1.6K

botxtg/media-search-bot repository overview

⁠Media Search bot⁠

  • Index channel or group files for inline search.
  • When you post file on telegram channel or group this bot will save that file in database, so you can search easily in inline mode.
  • Supports document, video and audio file formats with caption support.

⁠Installation

⁠Watch this video to create bot - https://youtu.be/dsuTn4qV2GA⁠
⁠Easy Way

Deploy

⁠Hard Way
# Create virtual environment
python3 -m venv env

# Activate virtual environment
env\Scripts\activate.bat # For Windows
source env/bin/activate # For Linux or MacOS

# Install Packages
pip3 install -r requirements.txt

# Edit info.py with variables as given below then run bot
python3 bot.py

Check sample_info.py⁠ before editing info.py⁠ file

⁠Docker
docker run -d \
    -e BOT_TOKEN="123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11" \
    -e API_ID='12345' \
    -e API_HASH='0123456789abcdef0123456789abcdef' \
    -e CHANNELS='-10012345678' \
    -e ADMINS='123456789' \
    -e DATABASE_URI="mongodb+srv://...mongodb.net/Database?retryWrites=true&w=majority" \
    -e DATABASE_NAME=databasename \
    --restart on-failure \
    --name mediasearchbot botxtg/media-search-bot

You can also run with env file like below,

docker run -d \ 
     --env-file .env \
     --restart on-failure \
     --name mediasearchbot botxtg/media-search-bot

⁠Variables

⁠Required Variables
  • BOT_TOKEN: Create a bot using @BotFather⁠, and get the Telegram API token.
  • API_ID: Get this value from telegram.org⁠
  • API_HASH: Get this value from telegram.org⁠
  • CHANNELS: Username or ID of channel or group. Separate multiple IDs by space
  • ADMINS: Username or ID of Admin. Separate multiple Admins by space
  • DATABASE_URI: mongoDB⁠ URI. Get this value from mongoDB⁠. For more help watch this video⁠
  • DATABASE_NAME: Name of the database in mongoDB⁠. For more help watch this video⁠
⁠Optional Variables
  • COLLECTION_NAME: Name of the collections. Defaults to Telegram_files. If you going to use same database, then use different collection name for each bot
  • CACHE_TIME: The maximum amount of time in seconds that the result of the inline query may be cached on the server
  • USE_CAPTION_FILTER: Whether bot should use captions to improve search results. (True/False)
  • AUTH_USERS: Username or ID of users to give access of inline search. Separate multiple users by space. Leave it empty if you don't want to restrict bot usage.
  • AUTH_CHANNEL: Username or ID of channel. Without subscribing this channel users cannot use bot.
  • START_MSG: Welcome message for start command.
  • INVITE_MSG: Auth channel invitation message.
  • USERBOT_STRING_SESSION: User bot string session.

⁠Admin commands

channel - Get basic infomation about channels
total - Show total of saved files
delete - Delete file from database
index - Index all files from channel or group
logger - Get log file

⁠Tips

  • Use index command or run one_time_indexer.py⁠ file to save old files in the database that are not indexed yet.
  • You can use | to separate query and file type while searching for specific type of file. For example: Avengers | video
  • If you don't want to create a channel or group, use your chat ID / username as the channel ID. When you send a file to a bot, it will be saved in the database.

⁠Contributions

Contributions are welcome.

⁠Thanks to Pyrogram⁠

⁠Support

Update Channel⁠ and Support Group⁠

⁠License

Code released under The GNU General Public License⁠.

Tag summary

Content type

Image

Digest

sha256:cd39e803a…

Size

49.2 MB

Last updated

over 3 years ago

docker pull botxtg/media-search-bot