diff options
Diffstat (limited to 'libs/tdlib/td/example/python/tdjson_example.py')
-rw-r--r-- | libs/tdlib/td/example/python/tdjson_example.py | 106 |
1 files changed, 0 insertions, 106 deletions
diff --git a/libs/tdlib/td/example/python/tdjson_example.py b/libs/tdlib/td/example/python/tdjson_example.py deleted file mode 100644 index d7b2e86fbb..0000000000 --- a/libs/tdlib/td/example/python/tdjson_example.py +++ /dev/null @@ -1,106 +0,0 @@ -// -// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2018 -// -// Distributed under the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// -from ctypes.util import find_library -from ctypes import * -import json -import sys - -# load shared library -tdjson_path = find_library("tdjson") or "tdjson.dll" -if tdjson_path is None: - print('can\'t find tdjson library') - quit() -tdjson = CDLL(tdjson_path) - -# load TDLib functions from shared library -td_json_client_create = tdjson.td_json_client_create -td_json_client_create.restype = c_void_p -td_json_client_create.argtypes = [] - -td_json_client_receive = tdjson.td_json_client_receive -td_json_client_receive.restype = c_char_p -td_json_client_receive.argtypes = [c_void_p, c_double] - -td_json_client_send = tdjson.td_json_client_send -td_json_client_send.restype = None -td_json_client_send.argtypes = [c_void_p, c_char_p] - -td_json_client_execute = tdjson.td_json_client_execute -td_json_client_execute.restype = c_char_p -td_json_client_execute.argtypes = [c_void_p, c_char_p] - -td_json_client_destroy = tdjson.td_json_client_destroy -td_json_client_destroy.restype = None -td_json_client_destroy.argtypes = [c_void_p] - -td_set_log_file_path = tdjson.td_set_log_file_path -td_set_log_file_path.restype = c_int -td_set_log_file_path.argtypes = [c_char_p] - -td_set_log_max_file_size = tdjson.td_set_log_max_file_size -td_set_log_max_file_size.restype = None -td_set_log_max_file_size.argtypes = [c_longlong] - -td_set_log_verbosity_level = tdjson.td_set_log_verbosity_level -td_set_log_verbosity_level.restype = None -td_set_log_verbosity_level.argtypes = [c_int] - -fatal_error_callback_type = CFUNCTYPE(None, c_char_p) - -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.argtypes = [fatal_error_callback_type] - -# initialize TDLib log with desired parameters -def on_fatal_error_callback(error_message): - print('TDLib fatal error: ', error_message) - -td_set_log_verbosity_level(2) -c_on_fatal_error_callback = fatal_error_callback_type(on_fatal_error_callback) -td_set_log_fatal_error_callback(c_on_fatal_error_callback) - -# create client -client = td_json_client_create() - -# simple wrappers for client usage -def td_send(query): - query = json.dumps(query).encode('utf-8') - td_json_client_send(client, query) - -def td_receive(): - result = td_json_client_receive(client, 1.0) - if result: - result = json.loads(result.decode('utf-8')) - return result - -def td_execute(query): - query = json.dumps(query).encode('utf-8') - result = td_json_client_execute(client, query) - if result: - result = json.loads(result.decode('utf-8')) - return result - -# testing TDLib execute method -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}) - -# main events cycle -while True: - event = td_receive() - 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': - break - - # handle an incoming update or an answer to a previously sent request - print(event) - sys.stdout.flush() - -# destroy client when it is closed and isn't needed anymore -td_json_client_destroy(client) |