Go to file
odysseusmax 2fffd9353d add otg indexing support 2020-09-20 22:08:52 +05:30
app add otg indexing support 2020-09-20 22:08:52 +05:30
.gitignore add otg indexing support 2020-09-20 22:08:52 +05:30
LICENSE Initial commit 2020-08-10 06:50:16 +00:00
Procfile initial commit 2020-08-10 07:27:52 +00:00
README.md add otg indexing support 2020-09-20 22:08:52 +05:30
app.json more flexible indexing 2020-08-17 13:14:02 +05:30
requirements.txt update requirements 2020-09-03 18:43:46 +05:30
runtime.txt initial commit 2020-08-10 07:27:52 +00:00

README.md

Telegram Index

Python Web App which indexes a telegram channel(or a chat) and serves its files for download.

Open Source Love GPLv3 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.

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 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": [],
    "otg": {
        "enable": false,
        "include_private": false,
        "include_group": true,
        "include_channel": true
    }
}
  • 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.
  • otg - On-The-Go Indexing settings. Whether to allow indexing channels/chats other than the specified chats dynamically on the go.
  • Run app.
$ python3 -m app

API

Here's the api description. API

Contributions

Contributions are welcome.

Contact

You can contact me @odysseusmax.

License

Code released under The GNU General Public License.