Lonami Exo
863d2e8368
Make confirm_received a flag, avoid race conditions, fix bg RPCError
...
There was a race condition between TelegramBareClient.invoke
receiving part and MtProtoSender._handle_rpc_result actually
reading the result after setting request.confirmed = True.
The .confirmed is now a threading.Event to avoid the sleep(0.1).
RPC errors have been moved inside the request so they're not
raised on a background thread anymore.
2017-09-02 20:41:00 +02:00
Lonami Exo
b908296efa
Remove unused TcpClien.read(timeout=...) param, change other accessors
2017-09-02 19:33:42 +02:00
Lonami Exo
36f51e1e3f
Remove ability to TcpClient.cancel_read()
...
This simplifies the process of sending and receiving data,
and makes use of Python's socket.settimeout instead a hand-crafted
version with a sort-of arbitrary self.delay = 0.1 (seconds), which
should improve the speed of the method
2017-09-02 19:14:11 +02:00
Lonami Exo
cc280a129d
Remove TcpClient.write/read shared locks
...
Since they were shared between write and read, and now the read
is done constantly on a separate thread, the read lock would
cause the write method to be locked and not functional at all
2017-09-02 18:49:29 +02:00
Lonami Exo
43b79c3d36
Add a thread to constantly read messages from the network
2017-09-02 18:27:22 +02:00
Lonami Exo
0197271f74
Fix SignUpRequest using an incorrectly named parameter
2017-09-02 16:52:56 +02:00
Lonami Exo
bea1b7f526
Preserve backward compatibility with old .sign_in() code
2017-08-31 10:38:53 +02:00
Lonami
5f636fdf31
Let .sign_in() call .send_code_request()
2017-08-31 10:34:09 +02:00
Lonami Exo
8bff10d956
Fix get_input_* not skipping None entities ( #215 )
...
This was an issue when parsing optional parameters, since None
could not be specified, resulting in a strange crash.
2017-08-30 11:12:25 +02:00
Lonami Exo
b4811261e9
Set a known buffer size if possible on BinaryWriter()s
2017-08-29 20:44:51 +02:00
Lonami Exo
7ad2ece168
Simplify modifying TelegramClient.session through its __init__
2017-08-29 16:06:14 +02:00
Lonami Exo
22673aec0e
Replace the old Session+pickle with JsonSession (name change)
2017-08-29 15:59:08 +02:00
Lonami Exo
82304b18eb
Attempt at supporting IPv6 ( #211 and #112 )
2017-08-29 13:49:41 +02:00
Lonami Exo
592e107f52
Recreate the TCP socket only when needed
2017-08-29 13:35:56 +02:00
Lonami Exo
cff7655a10
Add support for TCP intermediate mode ( #112 )
2017-08-29 11:39:44 +02:00
Lonami Exo
a3c2c462a7
Add support for tcp_obfuscated on the Connection class ( #112 )
2017-08-28 21:44:02 +02:00
Lonami Exo
fa22a3f848
Create a centralized Connection class, replaces TcpTransport ( #112 )
2017-08-28 21:23:31 +02:00
Lonami Exo
bc72e52834
Reuse the AESModeCTR class on CdnDecrypter
2017-08-28 20:30:33 +02:00
Lonami Exo
5404670469
Implement and use TCP obfuscated as a PoC ( #112 )
...
Credits to MadelineProto/Connection.php by @danog
2017-08-28 20:25:44 +02:00
Lonami Exo
adfebfc82c
Remove ThreadTcpClient test (committed by mistake)
2017-08-28 17:46:31 +02:00
Lonami Exo
2c6377e069
Update to v0.12.2
2017-08-28 17:29:08 +02:00
Lonami Exo
06b2d5d786
Fix CDN client not being disconnected
2017-08-28 16:33:23 +02:00
Lonami Exo
8afcd0b91f
Turn HashChecker into CdnDecrypter to abstract CDN-specific aspects
2017-08-28 16:25:10 +02:00
Lonami Exo
b504ce14bc
Verify the files downloaded from CDNs and raise on sha256 mismatch
2017-08-28 14:17:31 +02:00
Lonami Exo
00b5b5021b
Report errors to pwrtelegram.xyz by default
2017-08-25 15:34:20 +02:00
Lonami Exo
2517b9787d
TLObject.stringify() was showing bytes as lists
2017-08-24 20:56:08 +02:00
Lonami Exo
2e55998d7f
Update to v0.12.1
2017-08-24 19:09:37 +02:00
Lonami Exo
98bbcb6cd6
Favour rsa module over PyCrypto since the former is pure Python
2017-08-24 18:41:48 +02:00
Lonami Exo
b7dbf9767e
Fix TelegramClient.sign_in not accepting an integer for the code
2017-08-24 18:05:32 +02:00
Lonami Exo
4384ccb132
Tidy up TelegramBareClient.download_file CDN's mess
2017-08-24 18:00:47 +02:00
Lonami Exo
d5323c5506
Enhance a lot choosing a valid path when downloading files
2017-08-24 17:44:38 +02:00
Lonami Exo
e5e7715a31
Decrypt files downloaded from CDNs ( closes #208 )
2017-08-24 15:50:44 +02:00
Lonami Exo
940a2896e8
Part size when downloading files is now 4096 bytes, not 1024
2017-08-24 13:15:33 +02:00
Lonami Exo
09272ef6fc
Support connecting and downloading encrypted files from CDNs ( #208 )
2017-08-24 13:02:48 +02:00
Lonami Exo
d5fd147881
Add a few more default RSA public keys from Telegram
2017-08-23 21:50:33 +02:00
Lonami Exo
66876b6722
Use pycrypto's RSA instead the old weird RSA implementation
2017-08-23 21:49:27 +02:00
Lonami Exo
0cae62f091
Fix silly bug with two wrongly ordered lines (on download document)
2017-08-23 16:06:41 +02:00
Lonami Exo
571d8bc21f
Update to v0.12
2017-08-23 01:47:52 +02:00
Lonami Exo
c0bae1d608
Replace type(...) == ... with isinstance() checks
2017-08-23 01:45:49 +02:00
Lonami Exo
65d5ab685f
Let .upload_file() support streams and byte arrays
2017-08-23 01:43:08 +02:00
Lonami Exo
8ed77418bf
Make .download_profile_photo() more friendly
2017-08-23 01:35:12 +02:00
Lonami Exo
1d0ad9628d
Rename "callback" to "progress_callback" for consistency
2017-08-23 00:55:34 +02:00
Lonami Exo
fd6a9a4318
Make downloading files a lot more friendly with .download_media()
2017-08-23 00:48:00 +02:00
Lonami Exo
4234efcc86
Make sending files a lot more friendly with a simple .send_file()
2017-08-23 00:27:33 +02:00
Lonami Exo
81ccd21cdb
Allow specifying a phone number or username for common methods
2017-08-23 00:01:10 +02:00
Lonami Exo
fb5c43b539
Ensure .connect() always returns True/False
2017-08-22 23:17:05 +02:00
Lonami Exo
1a6231472e
Ensure the connection is flagged as closed on errors, move #201
2017-08-22 23:12:32 +02:00
Lonami Exo
88ec9c297e
Improve libssl.py's file formatting
2017-08-22 23:05:07 +02:00
Lonami Exo
274e16ac66
Avoid defining Python's AES class if libssl's is available
2017-08-22 23:05:07 +02:00
Tural
12b84c929a
Fix log_out problems on macOS devices
2017-08-21 09:00:23 +02:00