Async PHP client/server API for the telegram MTProto protocol https://docs.madelineproto.xyz
Go to file
2015-03-17 14:40:37 +03:00
tests crypt module refactor. need to be tested in py2 2015-03-16 17:59:59 +03:00
.gitignore gitignore fix for intellij 2015-03-14 22:05:44 +09:00
crypt.py Auth successful 2015-03-17 01:04:23 +03:00
mtproto.py Start of refactoring 2015-03-17 02:02:01 +03:00
prime.py crypt module refactor. need to be tested in py2 2015-03-16 17:59:59 +03:00
README.md try to commit from new machine 2015-03-17 14:40:37 +03:00
telepy.py force lower character on command word 2015-03-16 17:45:30 +09:00
testing.py Start of refactoring 2015-03-17 02:02:01 +03:00
TL_schema.JSON TL Schema moved to JSON mode. 2015-03-11 19:58:26 +03:00
TL.py Start of refactoring 2015-03-17 02:02:01 +03:00

Join the chat at https://gitter.im/griganton/telepy

About this repo

This is Telegram API for python. Main aim is to implement MTProto protocol Telegram API on pure Python (not wrapped CLI)

Plan

  • Make it work on Python 2 as well as 3.
  • Follow up the same functionality of CLI API.
    • Serialize/Deserialize
    • Send and receive PQ authorization with server [doc]
    • Send and receive service messages with server like logging in to server [doc]

Useful start points to join

Detailed description of API and protocol can be found here:

API registration is needed to be done by yourself at http://my.telegram.org Follow Structure - Credentials for provide it your API information.

Structure

  • tests
  • Serialization and SHA.py
  • mtproto.py
  • testing.py
  • prime.py
  • credentials
  • rsa.pub

Credentials

Repo doesn't contain any credentials to connect Telegram servers. You can get yours from http://my.telegram.org

You should place 2 files in the root of your repo:

  • credentials
  • rsa.pub

Config example for "credentials" file:

[App data]
api_id: 12345
api_hash: 1234567890abcdef1234567890abcdef
ip_address: 112.134.156.178
port: 443

rsa.pub contains your RSA key.

mtproto.py

Contains functions to work with MTproto protocol:

  • TL schema parsing
  • serializing and deserializing
  • manage connections to server
  • send and receive messages

testing.py

testing.py is used to test functionality of modules. Now it makes steps from https://core.telegram.org/mtproto/samples-auth_key:

  • sends PQ request to server
  • parses the result
  • factorizes PQ

prime.py

prime.py is used in PQ factorization. It has been copied from https://stackoverflow.com/questions/4643647/fast-prime-factorization-module

TL schema

We use JSON format TL Shema. TL Schema file contains information about objects and methods, it is located in TL_schema.JSON file in the root of repo. It is fully equivalent to JSON TL Schema from https://core.telegram.org/schema/mtproto-json