Add Python example README.md and add more documentation.
GitOrigin-RevId: 624fa5c37431dc3fabe6e451355c5b52ce12e4ab
This commit is contained in:
parent
376f582803
commit
017ae5865d
@ -18,3 +18,5 @@ cd build
|
|||||||
cmake -DCMAKE_BUILD_TYPE=Release -DTd_DIR=<full path to TDLib sources>/example/cpp/td/lib/cmake/Td ..
|
cmake -DCMAKE_BUILD_TYPE=Release -DTd_DIR=<full path to TDLib sources>/example/cpp/td/lib/cmake/Td ..
|
||||||
cmake --build .
|
cmake --build .
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Documentation for all available classes and methods can be found at https://core.telegram.org/tdlib/docs.
|
||||||
|
@ -37,3 +37,5 @@ Resulting library for iOS will work on any architecture (arv7, armv7s, arm64) an
|
|||||||
We use [CMake/iOS.cmake](https://github.com/tdlib/td/blob/master/CMake/iOS.cmake) toolchain, other toolchains may work too.
|
We use [CMake/iOS.cmake](https://github.com/tdlib/td/blob/master/CMake/iOS.cmake) toolchain, other toolchains may work too.
|
||||||
|
|
||||||
Built libraries will be store in `tdjson` directory.
|
Built libraries will be store in `tdjson` directory.
|
||||||
|
|
||||||
|
Documentation for all available classes and methods can be found at https://core.telegram.org/tdlib/docs.
|
||||||
|
11
example/python/README.md
Normal file
11
example/python/README.md
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
# TDLib Python example
|
||||||
|
|
||||||
|
First you need to [build](https://github.com/tdlib/td#building) TDLib and copy built tdjson shared library to this directory.
|
||||||
|
|
||||||
|
Then you can run the example:
|
||||||
|
```
|
||||||
|
python tdjson_example.py
|
||||||
|
```
|
||||||
|
|
||||||
|
Description of all available classes and methods can be found at [td_json_client](https://core.telegram.org/tdlib/docs/td__json__client_8h.html),
|
||||||
|
[td_log](https://core.telegram.org/tdlib/docs/td__log_8h.html) and [td_api](https://core.telegram.org/tdlib/docs/td__api_8h.html) documentation.
|
@ -3,12 +3,14 @@ from ctypes import *
|
|||||||
import json
|
import json
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
# load shared library
|
||||||
tdjson_path = find_library("tdjson") or "tdjson.dll"
|
tdjson_path = find_library("tdjson") or "tdjson.dll"
|
||||||
if tdjson_path is None:
|
if tdjson_path is None:
|
||||||
print('can\'t find tdjson library')
|
print('can\'t find tdjson library')
|
||||||
quit()
|
quit()
|
||||||
tdjson = CDLL(tdjson_path)
|
tdjson = CDLL(tdjson_path)
|
||||||
|
|
||||||
|
# load TDLib functions from shared library
|
||||||
td_json_client_create = tdjson.td_json_client_create
|
td_json_client_create = tdjson.td_json_client_create
|
||||||
td_json_client_create.restype = c_void_p
|
td_json_client_create.restype = c_void_p
|
||||||
td_json_client_create.argtypes = []
|
td_json_client_create.argtypes = []
|
||||||
@ -47,6 +49,7 @@ td_set_log_fatal_error_callback = tdjson.td_set_log_fatal_error_callback
|
|||||||
td_set_log_fatal_error_callback.restype = None
|
td_set_log_fatal_error_callback.restype = None
|
||||||
td_set_log_fatal_error_callback.argtypes = [fatal_error_callback_type]
|
td_set_log_fatal_error_callback.argtypes = [fatal_error_callback_type]
|
||||||
|
|
||||||
|
# initialize TDLib log with desired parameters
|
||||||
def on_fatal_error_callback(error_message):
|
def on_fatal_error_callback(error_message):
|
||||||
print('TDLib fatal error: ', error_message)
|
print('TDLib fatal error: ', error_message)
|
||||||
|
|
||||||
@ -54,8 +57,10 @@ td_set_log_verbosity_level(2)
|
|||||||
c_on_fatal_error_callback = fatal_error_callback_type(on_fatal_error_callback)
|
c_on_fatal_error_callback = fatal_error_callback_type(on_fatal_error_callback)
|
||||||
td_set_log_fatal_error_callback(c_on_fatal_error_callback)
|
td_set_log_fatal_error_callback(c_on_fatal_error_callback)
|
||||||
|
|
||||||
|
# create client
|
||||||
client = td_json_client_create()
|
client = td_json_client_create()
|
||||||
|
|
||||||
|
# simple wrappers for client usage
|
||||||
def td_send(query):
|
def td_send(query):
|
||||||
query = json.dumps(query).encode('utf-8')
|
query = json.dumps(query).encode('utf-8')
|
||||||
td_json_client_send(client, query)
|
td_json_client_send(client, query)
|
||||||
@ -73,15 +78,23 @@ def td_execute(query):
|
|||||||
result = json.loads(result.decode('utf-8'))
|
result = json.loads(result.decode('utf-8'))
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
# testing TDLib execute method
|
||||||
print(td_execute({'@type': 'getTextEntities', 'text': '@telegram /test_command https://telegram.org telegram.me', '@extra': ['5', 7.0]}))
|
print(td_execute({'@type': 'getTextEntities', 'text': '@telegram /test_command https://telegram.org telegram.me', '@extra': ['5', 7.0]}))
|
||||||
|
|
||||||
|
# testing TDLib send method
|
||||||
td_send({'@type': 'getAuthorizationState', '@extra': 1.01234})
|
td_send({'@type': 'getAuthorizationState', '@extra': 1.01234})
|
||||||
|
|
||||||
|
# main events cycle
|
||||||
while True:
|
while True:
|
||||||
event = td_receive()
|
event = td_receive()
|
||||||
if event:
|
if event:
|
||||||
|
# if client is closed, we need to destroy it and create new client
|
||||||
if event['@type'] is 'updateAuthorizationState' and event['authorization_state']['@type'] is 'authorizationStateClosed':
|
if event['@type'] is 'updateAuthorizationState' and event['authorization_state']['@type'] is 'authorizationStateClosed':
|
||||||
break
|
break
|
||||||
|
|
||||||
|
# handle an incoming update or an answer to a previously sent request
|
||||||
print(event)
|
print(event)
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
|
|
||||||
|
# destroy client when it is closed and isn't needed anymore
|
||||||
td_json_client_destroy(client)
|
td_json_client_destroy(client)
|
||||||
|
@ -10,3 +10,6 @@ cmake --build . --target install
|
|||||||
```
|
```
|
||||||
|
|
||||||
Then you can open and build the example with the latest Xcode.
|
Then you can open and build the example with the latest Xcode.
|
||||||
|
|
||||||
|
Description of all available classes and methods can be found at [td_json_client](https://core.telegram.org/tdlib/docs/td__json__client_8h.html),
|
||||||
|
[td_log](https://core.telegram.org/tdlib/docs/td__log_8h.html) and [td_api](https://core.telegram.org/tdlib/docs/td__api_8h.html) documentation.
|
||||||
|
Loading…
Reference in New Issue
Block a user