Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/odysseusmax/tg-index
Python web app to index telegram chats and serve its files for download over HTTP.
https://github.com/odysseusmax/tg-index
aiohttp download indexing python telegram telethon
Last synced: about 1 month ago
JSON representation
Python web app to index telegram chats and serve its files for download over HTTP.
- Host: GitHub
- URL: https://github.com/odysseusmax/tg-index
- Owner: odysseusmax
- License: gpl-3.0
- Created: 2020-08-10T06:50:14.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-01-24T17:37:09.000Z (almost 2 years ago)
- Last Synced: 2024-08-01T19:58:16.967Z (4 months ago)
- Topics: aiohttp, download, indexing, python, telegram, telethon
- Language: Python
- Homepage:
- Size: 775 KB
- Stars: 377
- Watchers: 19
- Forks: 468
- Open Issues: 32
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- Awesome-Telegram-OSINT - Telegram Index
README
# Telegram Index
> Python Web App which indexes a telegram channel(or a chat) and serves its files for download.
[![Open Source Love](https://badges.frapsoft.com/os/v1/open-source.png?v=103)](.) [![GPLv3 license](https://img.shields.io/badge/License-GPLv3-blue.svg)](LICENSE)
## 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.**
```bash
$ git clone https://github.com/odysseusmax/tg-index.git$ cd tg-index
```- **Create and activate virtual environment.**
```bash
$ python -m venv venv$ source venv/bin/activate
```- **Install dependencies.**
```bash
$ pip3 install -U -r requirements.txt
```- **Environment Variables.**
| Variable Name | Value |
| ------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `API_ID` (required) | Telegram api_id obtained from . |
| `API_HASH` (required) | Telegram api_hash obtained from . |
| `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 `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 spaces.**
```json
{
"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 be `true` or `false`.
> - `index_private` - Whether to index private chats. Only considered if `index_all` is set to `true`. Value should either be `true` or `false`.
> - `index_group` - Whether to index group chats. Only considered if `index_all` is set to `true`. Value should either be `true` or `false`.
> - `index_channel` - Whether to index channels. Only considered if `index_all` is set to `true`. Value should either be `true` or `false`.
> - `exclude_chats` - An array/list of chat id's that should be ignored for indexing. Only considered if `index_all` is set to `true`.
> - `include_chats` - An array/list of chat id's to index. Only considered if `index_all` is set to `false`.- **Run app.**
```bash
python3 -m app
```## Deploy Guide (Repl.it)
A detailed and beginner friendly guide on how to deploy this project on a free instance of can be found [here](./repl-config/replit-deploy-guide.md).
## Contributions
Contributions are welcome.
## Contact
You can contact me [@odysseusmax](https://tx.me/odysseusmax).
## License
Code released under [The GNU General Public License](LICENSE).