octospacc ef797f127c | ||
---|---|---|
app | ||
repl-config | ||
.gitignore | ||
LICENSE | ||
README.md | ||
arial.ttf | ||
requirements.txt |
README.md
Telegram Index
Python Web App which indexes a telegram channel(or a chat) and serves its files for download.
Highlights
- 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.
Deploy Guide
- Clone to local machine.
git clone https://github.com/odysseusmax/tg-index.git
cd tg-index
- Create and activate virtual environment.
python -m venv 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. |
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 true to set logging level to debug, info by default. |
BLOCK_DOWNLOADS (optional) |
Enable downloads or not. If any value is provided, downloads will be disabled. |
RESULTS_PER_PAGE (optional) |
Number of results to be returned per page defaults to 20. |
TGINDEX_USERNAME (optional) |
Username for authentication, defaults to '' . |
PASSWORD (optional) |
Password for authentication, defaults to '' . |
SHORT_URL_LEN (optional) |
Url length for aliases |
SESSION_COOKIE_LIFETIME (optional) |
Number of minutes, for which authenticated session is valid for, after which user has to login again. defaults to 60. |
SECRET_KEY (optional) |
32 characters long string for signing the session cookies, required if authentication is enabled. |
- Setting value for
INDEX_SETTINGS
This is the general format, change the values of corresponding fields as your requirements. You can copy paste this as is to index all the channels available in your account.
Remember to remove newlines.
{
"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
Note: you will be asked to log in the first time. (Login with the telegram account which is a participant of the chats you want to index).
After that, a tg-index.session
file will be stored in the current working directory. Keep it secret and secure.
Deploy Guide (Repl.it)
A detailed and beginner friendly guide on how to deploy this project on a free instance of https://repl.it can be found here.
License, Credits
This program is forked from odysseusmax/tg-index.
As per the original, code is released under The GNU General Public License.