Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Mahesh0253/Media-Search-bot
Inline bot for channels and groups
https://github.com/Mahesh0253/Media-Search-bot
bot inline-search telegram
Last synced: about 1 month ago
JSON representation
Inline bot for channels and groups
- Host: GitHub
- URL: https://github.com/Mahesh0253/Media-Search-bot
- Owner: Mahesh0253
- License: gpl-2.0
- Created: 2020-09-13T09:56:33.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2024-02-09T16:55:01.000Z (10 months ago)
- Last Synced: 2024-08-01T20:48:32.742Z (4 months ago)
- Topics: bot, inline-search, telegram
- Language: Python
- Homepage:
- Size: 98.6 KB
- Stars: 547
- Watchers: 13
- Forks: 1,155
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome - Mahesh0253/Media-Search-bot - Inline bot for channels and groups (Python)
README
# [Media Search bot](https://github.com/Mahesh0253/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](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy)### Hard Way
```bash
# 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`](sample_info.py) before editing [`info.py`](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](https://telegram.dog/BotFather), and get the Telegram API token.
* `API_ID`: Get this value from [telegram.org](https://my.telegram.org/apps)
* `API_HASH`: Get this value from [telegram.org](https://my.telegram.org/apps)
* `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](https://www.mongodb.com) URI. Get this value from [mongoDB](https://www.mongodb.com). For more help watch this [video](https://youtu.be/dsuTn4qV2GA)
* `DATABASE_NAME`: Name of the database in [mongoDB](https://www.mongodb.com). For more help watch this [video](https://youtu.be/dsuTn4qV2GA)### 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](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](https://github.com/pyrogram/pyrogram)
## Support
[Update Channel](https://t.me/botxupdates) and [Support Group](https://t.me/botxsupport)## License
Code released under [The GNU General Public License](LICENSE).