Lonami Exo
db6fd4bdc2
Fix RPC errors being ignored due to modifying the wrong attribute
2017-09-03 11:19:28 +02:00
Lonami Exo
83f3f66113
Fix MtProtoSender never clearing self._pending_receive requests
2017-09-03 10:50:55 +02:00
Lonami Exo
fa34c4bb77
Handle ConnectionResetError on background thread (removed on 9bc1f64
)
2017-09-03 10:05:18 +02:00
Lonami Exo
2a5d08b23d
Turn socket.timeout error into the more general TimeoutError
2017-09-03 10:01:00 +02:00
Lonami Exo
494b82ea9d
Fix check to avoid (dis)connecting if already (dis)connected
2017-09-03 09:59:37 +02:00
Lonami Exo
4de4026bb3
Move the "constant read" thread to the main TelegramClient
2017-09-03 09:56:10 +02:00
Lonami Exo
9bc1f64efe
Move update handling to the MtProtoSender, being functional again
2017-09-02 21:46:44 +02:00
Lonami Exo
21eaf8bd72
Allow setting whether the MtProtoSender should use constant_read
2017-09-02 21:27:11 +02:00
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
Christian Stemmle
ffb1cf483d
Faster crypto by using libssl ( closes #199 )
2017-08-20 01:21:11 +02:00
Lonami Exo
afcddfd7c1
Remove seemingly useless array copies on aes.py ( #199 )
2017-08-17 18:12:19 +02:00
Lonami Exo
9f812d83a9
Use sympy for faster factorization if available ( #199 )
2017-08-17 17:37:27 +02:00
Lonami Exo
7e85a3cda4
Attempt at making get_new_msg_id thread-safe ( #195 )
2017-08-14 15:17:16 +02:00
MeytiGHG
1794acdfec
Check for isinstance(x, JsonSession) instead crashing during transition
2017-08-07 00:54:23 +02:00
Lonami Exo
83c346ccc5
Let InputPeerChannel be casted automatically into InputChannel
2017-08-05 09:37:34 +02:00
Lonami Exo
7844cd358e
Attempt at making layer migrations more smooth ( #158 )
2017-07-26 16:10:45 +02:00
Lonami Exo
160a3699ac
Fix confusing names "MtProtoRequest" and ".confirmed" ( #176 )
...
This also fixes the annoyingly confusing message:
"Odd msg_seqno expected (relevant message), but even received."
2017-07-24 16:54:48 +02:00
Lonami Exo
773376ee21
Fix two more spelling mistakes
2017-07-23 18:38:27 +02:00
Lonami Exo
fe2e9f335b
Style enhancements for PR #173
2017-07-23 17:08:04 +02:00
hnikaein
c9e566342e
All download_* methods now accept streams
2017-07-20 09:37:19 +02:00
Lonami Exo
3be995b5a3
Update to v0.11.5
2017-07-11 11:38:17 +02:00
Lonami Exo
5ded836437
Update to v0.11.4
2017-07-10 16:13:45 +02:00
Lonami Exo
88c4cdfb52
Make get_input_* methods slightly smarter
2017-07-10 16:11:06 +02:00
Lonami Exo
bdee94eaf3
Implement automatic cast to InputUser too ( closes #159 )
2017-07-10 16:04:10 +02:00
Lonami Exo
1f7ac71187
Debug level should always be used for logging since it's a library
2017-07-10 15:21:20 +02:00
Lonami Exo
0119a00658
Rename no_webpage to link_preview for clarity
2017-07-07 10:37:19 +02:00
Lonami Exo
95a989be2c
Automatically cast Channel to InputChannel (similar to InputPeer)
2017-07-07 09:48:06 +02:00
Lonami Exo
f88efa7f49
Let PeerChat be casted to InputPeerChat automatically
2017-07-04 21:18:35 +02:00
Lonami Exo
8fd0d7eadd
Add a new .stringify() function to visualize TLObjects more easily
2017-07-04 21:15:47 +02:00
Lonami Exo
632fcb7c00
Ensure device model is non-empty ( closes #154 )
2017-07-04 19:47:55 +02:00
Lonami Exo
9bb6353fa3
Fix send_message using the incorrect type to return the msg_id ( #156 )
2017-07-04 16:53:07 +02:00
Lonami Exo
127e5f70d8
Update to v0.11.2
2017-07-04 10:39:57 +02:00
Lonami Exo
1f3aec589b
Let TelegramBareClient handle FileMigrateErrors instead ( closes #148 )
2017-07-04 10:21:15 +02:00
Lonami Exo
15673d9f77
Let __call__ = invoke, and encourage this new way to invoke requests
2017-07-02 11:56:40 +02:00
Lonami Exo
23e2802215
Update to layer 68
2017-06-30 11:48:45 +02:00
Lonami Exo
83c8e98448
Ensure that message ids are signed once again
2017-06-27 18:45:52 +02:00
Lonami Exo
0cfbf63eaf
Fix ConnectionResetError not flagging the socket as disconnected
2017-06-27 10:18:35 +02:00
Lonami Exo
b0173c3ec2
Use more accurate values for msg_ids
2017-06-26 11:01:20 +02:00
Lonami Exo
a5ce375358
Update to v0.11.1 and fix setup.py
2017-06-24 18:16:10 +02:00
Lonami Exo
459e988ff5
Rename rpc_n_errors dictionary to rpc_errors_n_all
2017-06-24 18:10:05 +02:00
Lonami Exo
20956b23d1
Replace super calls with simply super()
2017-06-23 10:15:11 +02:00
Lonami Exo
843c16215c
Add timeout parameter on TcpClient.connect() too
2017-06-22 19:21:33 +02:00
Lonami Exo
e4fbd87c75
Turn timeout into a property instead leaving it as a parameter
2017-06-22 11:43:42 +02:00
Lonami Exo
52a42661ee
Add timeout to connect()
2017-06-22 10:39:00 +02:00
Lonami Exo
a9a5c7e254
Use signed longs for every request_id ( #138 follow-up)
2017-06-21 10:21:09 +02:00
Lonami Exo
d58222d007
Use crc32 from zlib instead from binascii
...
It seems to be a bit faster stackoverflow.com/q/44502855
2017-06-20 11:03:46 +02:00
Lonami Exo
86358d7805
Add periodic pings if an updates thread was started (closes #138 )
2017-06-20 09:46:37 +02:00
Lonami Exo
697434be37
Don't do anything on .connect() if it's already connected
2017-06-20 09:46:37 +02:00
Lonami
daa626aa04
Merge pull request #136 from cher-nov/pr20170619_session
...
Fix bugs related to temporary sessions
2017-06-18 23:49:36 +02:00
Dmitry D. Chernov
8d9e50989b
Fix temporary Session fields not being defined
2017-06-19 07:41:47 +10:00
Dmitry D. Chernov
2af962230f
Fix error 400:CONNECTION_APP_VERSION_EMPTY when using temporary sessions
2017-06-19 07:40:35 +10:00
Hasan
c13164f5cf
Use the correct amount of random bytes in DH request
...
The official documentation says a 2048 *bit* number.
`os.urandom` takes an argument that represents the number of *bytes*.
2048 bits is 256 bytes
2017-06-18 23:38:14 +02:00
Lonami Exo
8afb0a3f6b
Rename Request.msg_id to request_msg_id to avoid name clash ( fix #122 )
2017-06-18 10:01:59 +02:00
Lonami Exo
765ae870cf
Fix connection parameters not being copied on reconnection ( #129 )
2017-06-17 22:05:34 +02:00
Lonami
be33ae4e80
Fix rpc_message_to_error failing to construct them
2017-06-17 08:25:48 +02:00
Lonami Exo
2b85463ce6
Don't ignore more possible updates on .receive_updates() ( closes #117 )
2017-06-16 15:36:47 +02:00
Goblenus
c304ee903f
Trigger reconnection on BrokenPipeError and InvalidChecksumError
2017-06-16 14:59:10 +02:00
Lonami Exo
92b4125b2b
Update to v0.11
2017-06-16 10:11:03 +02:00
Lonami Exo
e7b0c06ca5
Make .get_input_user faster when the right type is given
2017-06-16 10:01:05 +02:00
feodoran
13199f737e
Handle more cases on .get_display_name
2017-06-16 09:11:49 +02:00
Lonami Exo
86d45cc276
Improve .get_input_peer and use it only when creating requests*
...
This avoids cyclic dependencies, so types requiring an InputPeer
as a parameter will NOT convert faulty types to the right ones.
2017-06-15 17:03:59 +02:00
Lonami Exo
c02fbae5aa
Allow creating a new parallel connection ( closes #102 )
2017-06-15 15:50:44 +02:00
Lonami Exo
3fccfd40e6
Show error messages on non-specialized error classes ( closes #113 )
2017-06-15 15:25:05 +02:00
Lonami Exo
92088383f7
Fix get_message_history not returning sender on channels ( closes #110 )
2017-06-15 09:41:39 +02:00
Lonami Exo
fc915b2284
Fix get_message_history ignoring chats and enhance find_user_or_chat
2017-06-14 14:06:35 +02:00
Lonami Exo
96d8ca94cf
Move TelegramClient.list_sessions to *Session.list_session
2017-06-14 13:57:30 +02:00
Lonami Exo
d8afb7e548
Also except BlockingIOError on TcpClient.send()
2017-06-12 10:44:04 +02:00
Goblenus
f083b88f59
(Fix) Fix api_id type mismatch
2017-06-12 09:34:53 +02:00
Lonami Exo
1ca41b5854
Automatically infer the value for 'random_id' parameters
2017-06-11 19:16:59 +02:00
Lonami Exo
3ed59d08e5
Fix commit 65912f9
by properly skipping lost messages
2017-06-11 17:53:53 +02:00
Lonami Exo
65912f926b
Allow to send more than one request before receiving them ( #105 )
2017-06-11 14:58:16 +02:00
Lonami Exo
c6acd6adc5
Use only ASCII characters on the code ( closes #104 )
2017-06-10 13:39:37 +02:00
Lonami Exo
5c138977c3
Do not cancel UpdatesThread .receive() on reconnection
2017-06-10 13:16:37 +02:00
Lonami Exo
a73be04da7
Move connection parameters to the session
2017-06-10 13:15:04 +02:00
Lonami Exo
1119a2737a
Remove markdown "parser" since that's not Telethon-specific
2017-06-10 13:00:39 +02:00
Lonami Exo
44ab85962b
Completely change errors (make one class for each)
2017-06-10 11:47:51 +02:00
Lonami Exo
5df4716164
Add errors related to #103
2017-06-10 10:08:08 +02:00
Lonami Exo
7adb4f09d6
Slightly reorganise the project structure
2017-06-09 16:13:39 +02:00
Lonami Exo
ba5bfa105f
Use memoryview() on TcpClient.write() instead slicing the data
2017-06-09 11:50:30 +02:00
Lonami Exo
c6645a555d
Prefer BufferedWriter over BinaryWriter for socket operations
2017-06-09 11:42:39 +02:00
Lonami Exo
5494cb15eb
"Don't go nuts switching back and forth between (non-)blocking"
...
And other improvements (shutting down the socket, proper naming).
https://docs.python.org/3/howto/sockets.html#non-blocking-sockets
2017-06-09 11:27:52 +02:00
Lonami Exo
40616ba704
Support arbitrary file objects for .download_file() and update README
2017-06-09 11:12:56 +02:00
Lonami Exo
40f4c2533a
Incredibly improve downloading media on different DCs*
...
* This involves raising the InvalidDCError on .invoke()
when the message is FILE_MIGRATE_X, but users can always
catch this error and use the .invoke_on_dc() function
2017-06-09 10:50:40 +02:00
Lonami Exo
efd1c1ba64
Always acknowledge received errors for server not to resend them
2017-06-09 10:46:39 +02:00
Lonami Exo
639a17aa5a
Cache exported TelegramBareClients instead MtProtoSenders
2017-06-09 10:35:19 +02:00
Lonami Exo
cf65e5b1cf
Get rid of signature warnings and use nicer *args instead
2017-06-08 19:03:15 +02:00
Lonami Exo
b760f0de50
Fix reconnection (InvalidDC did not occur on .connect())*
...
* Also, use the parameters given for the initial connection
instead ignoring them.
2017-06-08 16:51:20 +02:00
Lonami Exo
6a043b7371
Fix Session not being able to save auth_key=None
2017-06-08 16:45:09 +02:00
Lonami Exo
d788d30de2
Move connect() parameters to init and ignore signature warnings
2017-06-08 16:41:20 +02:00
Lonami Exo
a07c7bd0d0
Move InteractiveClient to examples/ (and stop shipping it to pip)
2017-06-08 14:06:32 +02:00
Lonami Exo
88f87f6de2
Major TelegramClient rewrite, split it into TelegramBareClient*
...
Making a distinction between a bare client and a full-featured
client will make it easier to create instances of the bare
client itself that can be simultaneously and hence have two
separate connections which do not interfer with eachother.
While writing the bare client, full reconnection to a
different data center is once again done only on .connect().
2017-06-08 13:12:57 +02:00
Lonami Exo
6922eb3d39
Update to v0.10.1
2017-06-07 20:15:27 +02:00
Lonami Exo
4a2b6e7fa8
Don't start another thread unless an update handler is added*
...
*Also, stop sending pings, automatic reconnection from
commit fb4885a
does the job better.
2017-06-07 20:10:57 +02:00
Lonami Exo
1860054ec0
Make generate_sequence() thread-safe and move it to Session
2017-06-07 12:00:01 +01:00
Lonami Exo
49ca5c00c7
Create a more upgrade-resistant JSON-based Session class
2017-06-07 11:48:54 +01:00
Lonami Exo
8e3f3063f4
Add more errors and make them more descriptive
2017-06-07 11:09:10 +01:00
Lonami Exo
5c7efdb04f
Make use of relative imports everywhere, again
2017-06-05 18:00:43 +02:00
Dmitry D. Chernov
5362f2578d
Allow using lists and dicts for passing proxy settings
2017-06-05 09:26:10 +02:00
Lonami Exo
cf6f300df1
Improve .is_user_authorized() and add a .get_me() method
2017-06-04 17:24:08 +02:00
Lonami Exo
7acfd0c6c9
Update to v0.10 and some minor grammar fixes
2017-06-03 13:36:41 +02:00
Lonami Exo
b472421b8a
Allow specifying custom version/lang code/etc on client.connect
2017-06-03 13:24:27 +02:00
Lonami Exo
153cbfd350
Use more straightforward calls of hashlib.sha1/sha256
2017-06-02 16:49:03 +02:00
Lonami Exo
6b4f2abb96
Fix disconnect and reconnect for exported senders ( #53 )
2017-05-30 13:27:23 +02:00
Lonami Exo
097d1669b2
Allow invoking requests on different DCs ( #53 )
2017-05-30 13:03:14 +02:00
Lonami Exo
a427465231
Tidy up working with different DCs
2017-05-30 12:14:29 +02:00
Lonami Exo
d321096714
Tidy if/else branch on _recreate_socket
2017-05-30 11:42:14 +02:00
Lonami Exo
2399b7e55e
Remove try/except if a proxy was used, make more members private
2017-05-30 10:40:33 +02:00
Lonami Exo
0b9d76bda1
Replace library print()'s with calls to _logger
2017-05-30 10:24:08 +02:00
Lonami Exo
fb4885aed0
Trigger automatic reconnection if server kicks us ( #94 )
2017-05-30 10:11:18 +02:00
Lonami Exo
6e1798d6ac
Update README.rst
2017-05-29 21:37:58 +02:00
Lonami Exo
7c84c72f06
Minor change to make the code more pythonic
2017-05-29 21:27:20 +02:00
Lonami Exo
042e3069a9
Move UpdatesThread from MtProtoSender to TelegramClient
...
This makes it easier to perform a proper reconnection
2017-05-29 21:24:47 +02:00
Lonami Exo
ebe4232b32
Change the way in which updates are read and handled
2017-05-29 20:41:11 +02:00
Lonami Exo
ae1dbc63da
Handle UnicodeEncodeError's in a cleaner way
2017-05-29 17:07:09 +02:00
Lonami Exo
452532cce7
Make certain methods and members private
2017-05-29 17:06:48 +02:00
Lonami Exo
63b1881c83
Raise FloodWaitError instead sleeping
2017-05-29 16:46:17 +02:00
Lonami Exo
7f84374e98
Attempt at fixing msg_id too low/high ( #95 )
2017-05-26 16:39:59 +02:00
Lonami Exo
fabf806979
Add more errors, update to v0.9.1
2017-05-23 10:31:52 +02:00
Lonami Exo
e60c70c1a7
Add more descriptive errors for get_input_peer ( #93 )
2017-05-23 09:45:48 +02:00
Santiago Reig
b477895830
Enable printing of UTF-8, improvement for #70
...
Convert strings from UTF-8 to ascii to enable printing in non-compatible shells/terminals with UTF-8.
Non-compatible charaters are removed from the string.
2017-05-22 08:37:11 +02:00
Lonami Exo
02a847b64a
Make lint happier
2017-05-21 13:59:16 +02:00
Lonami Exo
63c89af983
Use relative imports always where possible
2017-05-21 13:02:54 +02:00
Lonami Exo
ca80b05694
Add shebangs and set proper file permissions
2017-05-20 15:58:44 +02:00
Lonami Exo
fb9104417e
Add more errors, change the way InvalidDC is created
2017-05-20 15:25:07 +02:00
Lonami Exo
eb7fb2ac24
Make logging a lot less intrusive
...
See https://docs.python.org/3/howto/logging.html#library-config
2017-05-20 11:49:09 +02:00
Lonami Exo
6550d83d42
Fix closed sockets not being recreated as they should
...
See http://stackoverflow.com/a/15958099
2017-05-20 11:34:23 +02:00
Lonami Exo
468033fa7e
Avoid counterintuitive automatic connection
2017-05-20 11:33:37 +02:00
Dmitry D. Chernov
bbd3eb7c28
Raise an exception if recv() returned 0 bytes
...
See for details: https://docs.python.org/3/howto/sockets.html
"When a recv returns 0 bytes, it means the other side has closed (or is in the process of closing) the connection. You will not receive any more data on this connection. Ever."
2017-05-20 11:02:19 +02:00
Lonami Exo
3c3946e6f1
Don't start the updates thread until signed in
2017-05-19 21:44:50 +02:00
Lonami Exo
2f2ee15efd
Update to v0.9
2017-05-19 12:46:17 +02:00
Dmitry D. Chernov
0ef32a7d78
Fix syntax of exception throwing here and there
2017-05-19 08:32:40 +02:00
Dmitry D. Chernov
7f787affc6
MtProtoSender: Fix crash on receiving unknown RPC results
...
Such RPC results may arrive after reconnection, for example.
2017-05-19 08:32:40 +02:00
Dmitry D. Chernov
2ff419a5e7
TelegramClient: Remove redundant check for adding update handlers
...
Adding update handlers when not authorized makes no negative consequences.
Also, check was implemented badly - update handlers can be added after logout/disconnect, for example.
2017-05-11 17:43:02 +02:00
Dmitry D. Chernov
b7ed6d9ec1
TelegramClient: Fix log_out() returning nothing on success
2017-05-11 17:43:02 +02:00
Lonami Exo
d0284c2bd3
Fix is_user_authorized failing on log_out ( closes #76 )
2017-05-11 14:11:15 +02:00
Lonami Exo
f64244eb44
Fix TelegramClient not actually supporting temp sessions ( #78 )
2017-05-11 14:08:38 +02:00
Dmitry D. Chernov
048bc81b74
MtProtoSender: Use threading.Event instead of boolean flags
2017-05-09 19:50:46 +02:00
Dmitry D. Chernov
7ffe2b3130
TcpClient: Combine two identical function calls into one
2017-05-09 19:50:46 +02:00
Dmitry D. Chernov
15e06f9ce2
TcpClient: Use threading.Event instead of boolean flag
2017-05-09 19:50:46 +02:00
Lonami Exo
c367aa9bc9
Revert a49e50d
as suggested by @cher-nov (remove __del__)
...
__del__'s are evil because they rely on the GC
2017-05-08 16:01:53 +02:00
Lonami Exo
db79ff08c7
Avoid crash on certain terminals (workaround for #70 )
2017-05-07 13:33:35 +02:00
Lonami Exo
49a76f23f5
Remove offending characters from #70
2017-05-07 13:05:49 +02:00
Dmitry D. Chernov
a49e50d04d
TelegramClient: Perform disconnection on class destruction ( #74 )
2017-05-06 13:40:42 +02:00
Dmitry D. Chernov
ff469acb81
TelegramClient.get_dialogs: Rename 'count' argument to 'limit' ( #72 )
2017-05-05 15:11:48 +02:00
Gholamhossein Tavasoli
8ffec6b8be
Improve handling invalid UTF-8 strings ( #68 )
2017-05-03 13:02:44 +02:00
Lonami Exo
3d66062eb4
Ignore invalid utf-8 strings ( closes #49 )
2017-05-02 16:16:36 +02:00
Lonami Exo
6069188b54
MtProtoPlainSender was not connecting ( closes #62 )
2017-04-29 20:57:08 +02:00
Lonami Exo
fbe65c2dfb
Reconnect on timeout inside timeout ( #61 )
2017-04-29 11:07:32 +02:00
Lonami Exo
a7595347f3
Make the UpdatesThread a daemon ( closes #60 )
2017-04-29 10:41:56 +02:00
Lonami Exo
89326c998a
Workaround for #50 suggested by @strayge (send not only Ping)
2017-04-21 14:02:21 +02:00
Lonami Exo
192eb3cf57
Fix crash when receiving MessageServices ( closes #52 )
2017-04-17 09:36:24 +02:00
Lonami Exo
fbc7aabf13
Update to v0.8
2017-04-14 15:33:05 +02:00
Lonami Exo
6b2c0271ae
Fix updates thread crashing on logout
2017-04-14 15:28:15 +02:00
Lonami Exo
f6c34f8ba2
Add current time to the log output
2017-04-12 10:35:07 +02:00
Lonami Exo
1d2420d549
Add more informative error message when invoking disconnected
2017-04-11 10:25:09 +02:00
Lonami Exo
4fa43f231f
Fix "Must wait error" not causing updates thread to sleep
2017-04-11 09:58:22 +02:00
Lonami Exo
6d1ce4d48d
Let only the LogOut request be confirmed via ack
2017-04-11 09:57:18 +02:00
Lonami Exo
3e611cdd42
Revert "Workaround for None results"
...
This reverts commit 6e4c437340
.
2017-04-11 09:46:26 +02:00
Lonami Exo
6e4c437340
Workaround for None results ( #47 )
2017-04-10 09:34:58 +02:00
Lonami Exo
f24d4f4a0e
Fix updates thread not sleeping when handling pings
2017-04-09 13:16:22 +02:00
Lonami Exo
1232e8f607
Add logging to MTProtoSender
2017-04-09 13:14:04 +02:00
Lonami Exo
426b09aec0
Slightly improve the updates thread (also easier to understand)
2017-04-06 18:46:09 +02:00
Lonami Exo
ceca636bb1
Do not connect to Telegram until .connect() is invoked
2017-04-06 18:16:15 +02:00
Ader
4734d4a7f9
Add method to list update handlers ( #40 )
2017-03-28 18:46:07 +02:00
Lonami Exo
af4514b15e
Fix uploading big files ( closes #2 )
2017-03-25 17:14:11 +01:00
Epix Zhang
350c11d66f
Add proxy support using PySocks ( closes #37 )
2017-03-20 17:16:34 +01:00
Lonami Exo
b4c81a60b3
Add more errors
2017-03-20 12:44:10 +01:00
Lonami Exo
258c7f1df6
Allow login as a bot ( closes #36 , thanks to @JuanPotato)
2017-03-20 12:32:10 +01:00
Lonami Exo
628b7391e3
Greatly improve the handling of working with different DC
2017-03-20 12:32:10 +01:00
Belegnar
8753df27ed
* reconnect in TelegramClient.connect() forces reconnect only if client was connected
2017-03-10 14:14:51 +03:00
Lonami Exo
8cde95ff95
Update to v0.7.1
2017-02-19 15:48:29 +01:00
strayge
8256cb3e55
added ping requests
2017-02-19 20:20:21 +06:00
Lonami Exo
b080e086b7
Merge branch 'master' of github.com:LonamiWebs/Telethon
2017-01-30 13:36:38 +01:00
Lonami Exo
11629ecf2f
Fix closing socket on Windows
2017-01-30 13:36:15 +01:00
Tiago
72e8773338
Fixed download_document()
2017-01-19 15:16:39 +00:00
Lonami Exo
78fe053ff3
Handle server pongs for manual ping requests
2017-01-19 15:54:28 +01:00
Lonami Exo
9ca4471bcd
Allow passing entities instead input_peers and more*
...
Some fixes to the interactive client (not handling
invalid options, errors when uploading files)
2017-01-17 20:22:47 +01:00
Lonami Exo
8e48455cdc
Fix bug introduced in #d08794 found by @k1-hedayati
2017-01-13 21:22:53 +01:00
Lonami Exo
4862ef1dce
Merge branch 'master' of https://github.com/fdhadzh/Telethon into fdhadzh-master
2016-11-30 15:56:30 +01:00
Lonami Exo
be2bdc0e13
Implements and closes #12 (custom session objects)
2016-11-30 15:36:59 +01:00
Fadi Hadzh
d087941bd0
Many code-style improvements
2016-11-30 00:29:42 +03:00
Lonami Exo
6c93d08b8d
Added two-step verification ( fixes #4 ) and more info for errors
2016-11-26 12:04:02 +01:00
Lonami Exo
4d96de8ab5
Changed README.md to README.rst
2016-11-13 15:39:47 +01:00
Lonami Exo
d290a569c5
Added webp mime type (useful when downloading stickers)
2016-11-13 14:51:50 +01:00
Lonami
308adc4192
Fixed invalid parameters when downloading documents
2016-10-09 13:47:38 +02:00
Lonami
a42effc2b5
Externalized TelegramClient utilities and added more
2016-10-09 12:57:38 +02:00
LiemCH
38bf460930
Update tcp_transport.py
...
Counter before send, in case of fail send, will not result error 500 random_id_duplicate
2016-10-09 10:10:41 +07:00
Lonami
2a666f7ee0
Added ability to download profile photos, changes to get_dialogs()
...
The `get_dialogs()` method now returns dialogs and "entities",
which can be an User, a Chat or even a Channel.
In order to use them you may want to make use of .get_input_peer()
and .get_display_name() methods
2016-10-03 19:44:01 +02:00
Lonami
7399bfacd1
Implemented receive timeout ( #6 ) and fixed error string
2016-10-03 09:54:17 +02:00
Lonami
1ecd51c7d1
Implemented #1 (Sending messages read acknowledge)
2016-10-02 13:57:03 +02:00
Lonami
30f15e67ac
Avoid listening for updates if no update handlers are added
...
This only caused issues if it was the first time we logged in.
All the cases are now covered
2016-10-02 13:42:17 +02:00
Lonami
e035939aa2
Attempt at fixing #5 (RPCError) and updated README
...
Now RPC results can be received from the updates thread, as long
as they are errors. This, however, should not happen!
A recursive lock is now used (and released on every method, rather
than only on the `.receive()` one)
2016-10-02 13:30:14 +02:00
Lonami
77aa37d2ad
Added an .empty() function to the objects, fixes to msgs_ack
...
The .empty() function returns an "empty" instance of the object
(attributes set to None). This is used rather than using reflection.
The msgs_ack handling broke stuff (InvokeWithLayer when there were
updates), so this is now handled; yet there may be a better fix
2016-09-26 17:18:25 +02:00
Lonami
ded655911e
Added ability to both read and write vectors*
...
This change affects the BinaryReader and BinaryWriter
Note that it only allows to write vectors of **TLObjects**,
not any other type
2016-09-26 16:10:07 +02:00
Lonami
36b8a9026f
Fixed revert by hand (I hope)
2016-09-26 13:13:11 +02:00
Lonami
4d5e11f4af
Revert "Fixed logging out, added a proper function to list sessions"
...
This reverts commit 87969745f5
.
The main purpose is to get rid of the JSON encoding (useless)
2016-09-26 13:06:36 +02:00
Lonami
b68772aab5
Fixed JSON encoding and decoding for lists, added empty() method
...
The new empty() method retrieves an empty instance of the
given object, with all the attributes set to None
2016-09-25 10:50:48 +02:00
Lonami
87969745f5
Fixed logging out, added a proper function to list sessions
...
By fixing logging out, other request probably got fixed as well,
since now we can also read MessagesAcknowledge requests
2016-09-23 12:50:01 +02:00
Lonami
d8757af5c5
Updated README, minor changes and pip ready
...
The module is now ready to be installed via pip
README.md has been updated to reflect these changes
Minor changes to the interactive client example
Versioning is now done by editting TelegramClient's
__version__, rather than looking for the string
2016-09-18 12:04:17 +02:00
Lonami
6642f73a3d
Detect current MTProtoLayer automatically
2016-09-17 21:09:20 +02:00
Lonami
51a531225f
Totally refactored source files location
...
Now it *should* be easier to turn Telethon
into a pip package
2016-09-17 20:45:12 +02:00