Skip to content
Python client for the Telegram's tdlib
Branch: master
Clone or download
alexander-akhmetov Merge pull request #24 from peterus/master
Fixed Docker: adalpine 3.9; libstdc++
Latest commit 0866b1f Mar 23, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs
examples
telegram Release 0.8.0 Mar 17, 2019
tests
.dockerignore Fix #6 #5 Added default limit for workers queue; Removed unnecessary … Dec 10, 2018
.editorconfig
.gitignore
.travis.yml Fixes #13 Added pylint, flake8, py37 tests Dec 28, 2018
CONTRIBUTING.md
Dockerfile fixed Docker Mar 23, 2019
LICENSE Create LICENSE Aug 24, 2018
MANIFEST.in
Makefile
README.md Added info about bot_token to the README Mar 18, 2019
pylintrc Fix #17 Added ability to login with bot token Mar 17, 2019
pyproject.toml
setup.cfg Added new method: Telegram.add_update_handler to process any type of … Mar 17, 2019
setup.py 0.5.0 May 1, 2018
tox.ini Added new method: Telegram.add_update_handler to process any type of … Mar 17, 2019

README.md

python-telegram

Build Status PyPI DockerHub Read the Docs (version)

Python API for the tdlib library. If helps you build your own Telegram clients.

Installation

This library works with Python 3.6+ only.

See documentation to install

Docker

This library has docker image:

docker run -i -t --rm \
            -v /tmp/docker-python-telegram/:/tmp/ \
            akhmetov/python-telegram \
            python3 /app/examples/send_message.py $(API_ID) $(API_HASH) $(PHONE) $(CHAT_ID) $(TEXT)

How to use

Check the tutorial :)

Basic example:

    from telegram.client import Telegram

    tg = Telegram(
        api_id='api_id',
        api_hash='api_hash',
        phone='+31611111111',  # you can pass 'bot_token' instead
        database_encryption_key='changekey123',
    )
    tg.login()

    # if this is the first run, library needs to preload all chats
    # otherwise the message will not be sent
    result = tg.get_chats()
    result.wait()

    result = tg.send_message(
        chat_id=args.chat_id,
        text=args.text,
    )
    # `tdlib` is asynchronous, so `python-telegram` always returns you an `AsyncResult` object.
    # You can receive a result with the `wait` method of this object.
    result.wait()
    print(result.update)

More examples you can find in the /examples/ directory.


More information in the documentation.

Development

Tests

To run tests you need to install tox first.

Start tests:

tox

Run a specific test for python3.7:

tox -e py37 -- tests/test_telegram_methods.py::TestTelegram::test_add_message_handler
You can’t perform that action at this time.