Commit Graph
1378 Commits
Author SHA1 Message Date
Lonami Exo 4a9eb5b085 Handle OSError on MTProtoSender 2018-06-14 16:16:11 +02:00
Lonami Exo df1dfdf8ea Remove some redundant except 2018-06-14 16:13:46 +02:00
Lonami Exo c9ea1bafc0 Apply @andr-04 asyncio commits to TcpClient 2018-06-14 16:08:23 +02:00
Lonami Exo 3ce8b17193 Dispatch updates to event handlers 2018-06-13 16:20:15 +02:00
Lonami Exo a91109c9fa Retry send_code_request on AuthRestartError 2018-06-13 10:55:37 +02:00
Lonami Exo 8a787e90c2 Remove send/recv locks
There is only one method sending and one method receiving,
so it doesn't make sense to lock-protect those operations.
2018-06-13 10:04:27 +02:00
Lonami Exo 3324090c96 Fix non-asyncio sleep 2018-06-13 09:59:30 +02:00
Lonami Exo 3f16c92eb3 Subclass TLRequest for content-related objects 2018-06-12 20:14:21 +02:00
Lonami Exo d1afc70963 Fix setting Pong results 2018-06-12 19:46:37 +02:00
Lonami Exo f9cd220ddd Implement _get_exported_sender 2018-06-11 20:05:10 +02:00
Lonami Exo 64dd957189 Fix None first_query and TcpClient.disconnect() 2018-06-11 19:51:01 +02:00
Lonami Exo f581db294a Better custom.MessageButton.click() docs 2018-06-11 10:25:57 +02:00
Lonami Exo aa6d3430ae Properly handle bot timeouts when clicking buttons 2018-06-11 10:20:22 +02:00
Lonami Exo f86f52d960 Fix async_generator's and missing awaits 2018-06-10 22:00:55 +02:00
Lonami Exo 8be6adeab4 Make use of the async_generator module 2018-06-10 21:50:28 +02:00
Lonami Exo 15ef302428 Implement _switch_dc/fix missing first request 2018-06-10 21:30:31 +02:00
Lonami Exo 4a491e45ce Fix broken debug call 2018-06-10 21:02:22 +02:00
Lonami Exo d462b04a9c Add async/await on tl.custom 2018-06-10 20:29:57 +02:00
Lonami Exo 1bde72d375 Make the TelegramClient aggregate all client methods 2018-06-10 19:05:36 +02:00
Lonami Exo fb8b052754 Separate update requests from the TelegramClient 2018-06-10 13:58:21 +02:00
Lonami Exo ac2e59b472 Separate auth requests from the TelegramClient 2018-06-10 12:57:36 +02:00
Lonami Exo 4ff0756ffc Separate download requests from the TelegramClient 2018-06-10 12:04:23 +02:00
Lonami Exo 317b7053a0 Separate parse message methods from uploads 2018-06-10 11:33:20 +02:00
Lonami Exo 83a024656c Rename client.files as client.uploads 2018-06-09 22:14:51 +02:00
Lonami Exo ad29f2f5b7 Separate chat requests from the TelegramClient 2018-06-09 22:13:18 +02:00
Lonami Exo 1e91e5a83c Separate dialogs methods from the TelegramClient 2018-06-09 22:09:02 +02:00
Lonami Exo 4bd20f1ce2 Separate file and message methods from TelegramClient 2018-06-09 22:05:06 +02:00
Lonami Exo bb9b9796e0 Separate user methods from the base client 2018-06-09 21:22:54 +02:00
Lonami Exo 4b147f0153 Move clients to a new package 2018-06-09 21:11:35 +02:00
Lonami Exo d76b27058f Warn on invoke and clean TelegramClient 2018-06-09 21:10:23 +02:00
Lonami Exo 3e151a1b7a Make TelegramBareClient able to invoke requests 2018-06-09 21:03:48 +02:00
Lonami Exo 7e68274f26 Keep consistent structure and remove done TODO 2018-06-09 15:42:10 +02:00
Lonami Exo acd6025731 Use put_nowait and avoid double await 2018-06-09 15:26:13 +02:00
Lonami Exo 485ce5ca3b Ignore padding on server messages instead warning
There's 12..1024 padding for the MTProto 2.0 protocol, and
the length of the message can be used to determine how much
must be read on rpc_results. However this random padding
can be safely ignored.
2018-06-09 14:23:42 +02:00
Lonami Exo be279ce3f5 Make TLMessage always have a valid TLObject
This simplifies the flow instead of having separate request/body
attributes, and also means that BinaryReader.tgread_object() can
be used without so many special cases.
2018-06-09 13:48:27 +02:00
Lonami Exo f7e8907c6f Create RpcResult class and generalise core special cases
This results in a cleaner MTProtoSender, which now can always
read a TLObject with a guaranteed item, if the message is OK.
2018-06-09 13:13:55 +02:00
Lonami Exo 1e66cea9b7 Reuse some more code from MTProtoState 2018-06-09 11:36:59 +02:00
Lonami Exo adfe861e9f Create a self-contained MTProtoState
This frees us from using entire Session objects in something
that's supposed to just send and receive items from the net.
2018-06-09 11:34:01 +02:00
Lonami Exo cc5753137c Clean-up TelegramBareClient - unnecessary? 2018-06-08 21:52:59 +02:00
Lonami Exo a63580c350 Private methods are not public API 2018-06-08 21:18:15 +02:00
Lonami Exo 6766c4eea9 Make heavy use of logging 2018-06-08 21:13:14 +02:00
Lonami Exo e36517845a Retry on connection/security errors 2018-06-08 20:50:53 +02:00
Lonami Exo 92b606a3e8 Automatically reconnect on connection reset 2018-06-08 20:42:39 +02:00
Lonami Exo 5c917fb425 Except timeout error and retry 2018-06-07 18:01:18 +02:00
Lonami Exo f72ddbdd5a Implement retry and fail cases in authenticator 2018-06-07 17:25:02 +02:00
Lonami Exo df895a94ab Create auth_key if not present 2018-06-07 16:32:12 +02:00
Lonami Exo a940e2e9a2 Process entities and add a handler for updates 2018-06-07 14:32:22 +02:00
Lonami Exo c7e4ae8672 Send acks 2018-06-07 14:16:47 +02:00
Lonami Exo 805bf00dee Support sending multiple requests at once 2018-06-07 14:04:04 +02:00
Lonami Exo 884dbe2d1f Use a custom Queue to simplify the _send_loop 2018-06-07 13:51:19 +02:00