Python Web App which indexes a telegram channel(or a chat) and serves its files for download.
- Index one or more telegram channels/chats.
- View messages and media files on the browser.
- Search through the channel/chat.
- Download media files through browser/download managers.
Hosted demo site: https://tg-index-demo.herokuapp.com
- 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 of corresponding fields as your requirements. Remember to remove spaces.
{
"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.
Here's the api description. API
Contributions are welcome.
You can contact me @odysseusmax.
Code released under The GNU General Public License.