3.2 KiB
Telegram Index
Python Web App which indexes a telegram channel(or a chat) and serves its files for download.
Overview
- This app indexes all the available messages.
- If the message is a media message, you can download the file.
- You can search for specific terms too.
Demo
Hosted demo site: https://tg-index-demo.herokuapp.com/
Deploy Guide
- Clone to local machine.
$ git clone https://github.com/odysseusmax/tg-index.git
$ cd tg-index
- Create and activate virtual environment.
$ pip3 install virtualenv
$ virtualenv venv
$ source venv/bin/activate
- Install dependencies.
$ pip3 install -U -r requirements.txt
- Environment Variables.
Variable Name | Value |
---|---|
API_ID (required) |
Telegram api_id obtained from https://my.telegram.org/apps. |
API_HASH (required) |
Telegram api_hash obtained from https://my.telegram.org/apps. |
INDEX_SETTINGS (required) |
See the below description. |
SESSION_STRING (required) |
String obtained by running $ python3 app/generate_session_string.py . (Login with the telegram account which is a participant of the given channel (or chat). |
PORT (optional) |
Port on which app should listen to, defaults to 8080. |
HOST (optional) |
Host name on which app should listen to, defaults to 0.0.0.0. |
DEBUG (optional) |
Give some value to set logging level to debug, info by default. |
- Setting value for
INDEX_SETTINGS
This is the general format, change the values for corresponding fields as your requirements.
{
"index_all": true,
"index_private":false,
"index_group": false,
"index_channel": true,
"exclude_chats": [],
"include_chats": [],
}
-
index_all
- Whether to consider all the chats associated with the telegram account. Value should either betrue
orfalse
. -
index_private
- Whether to index private chats. Only considered ifindex_all
is set totrue
. Value should either betrue
orfalse
. -
index_group
- Whether to index group chats. Only considered ifindex_all
is set totrue
. Value should either betrue
orfalse
. -
index_channel
- Whether to index channels. Only considered ifindex_all
is set totrue
. Value should either betrue
orfalse
. -
exclude_chats
- An array/list of chat id's that should be ignored for indexing. Only considered ifindex_all
is set totrue
. -
include_chats
- An array/list of chat id's to index. Only considered ifindex_all
is set tofalse
. -
Run app.
$ python3 -m app
- Other quick methods.
Video Tutorial
Here's a YouTube tutorial video for deploying to Heroku. Video Link
Contributions
Contributions are welcome.
Contact
You can contact me @odysseusmax.
License
Code released under The GNU General Public License.