Lonami Exo
269949595f
Allow phone as int on .sign_in ( #278 )
2017-10-01 19:02:53 +02:00
Lonami Exo
d30fdbe778
Support "string" peers on .get_input_entity
2017-10-01 16:59:18 +02:00
Lonami Exo
8df4d7c4a5
Internal methods should use .get_input_entity
2017-10-01 16:54:11 +02:00
Lonami Exo
1cdf879888
Fix .get_input_entity failing for chats
2017-10-01 16:53:47 +02:00
Lonami Exo
71b6e527a6
Allow using parenthesis or spaces in phones when .get_entity
2017-10-01 15:50:23 +02:00
Lonami Exo
5b6f9b6542
Add a new .get_input_entity method and use it on .get_entity
2017-10-01 14:19:04 +02:00
Lonami Exo
9445d2ba53
More enhancements on .sign_in from different clients ( #278 )
2017-10-01 11:37:18 +02:00
Lonami Exo
1d250a5441
Allow overriding phone on .sign_in ( fix #278 )
2017-10-01 11:31:26 +02:00
Lonami Exo
68e7d481f4
Add support to get all dialogs at once
2017-10-01 11:25:12 +02:00
Lonami Exo
671ac1cdb7
Fix **kwargs not being passed to TelegramBareClient
2017-09-30 18:02:08 +02:00
Lonami Exo
61033b2f56
Allow disabling spawning a second thread
2017-09-30 11:28:15 +02:00
Lonami Exo
7cef5885fa
Rename process_updates/polling to workers
2017-09-30 11:17:31 +02:00
Lonami Exo
479afddf50
Move core functionality to the TelegramBareClient
...
Rationale: the intended behaviour of the TelegramClient will now
be to focus on abstracting the users from manually importing
requests and types to work with Telegram's API. Thus, all the
core functionality has been moved to the TelegramBareClient,
which will now be responsible of spawning new threads or
connections and even handling updates.
This way there is a clear distinction between the two clients,
TelegramClient is the one meant to be exposed to the end user,
since it provides all the mentioned abstractions, while the
TelegramBareClient is the "basic" client needed to work with
the API in a comfortable way.
There is still a need for an MtProtoSender, which still even
lower level, and knows as little as possible of what requests
are. This handles parsing the messages received from the
server so that their result can be understood.
2017-09-30 10:27:46 +02:00
Lonami Exo
b61deb5cfb
Delete methods to create_new_connection and invoke_on_dc
2017-09-30 10:27:46 +02:00
Lonami Exo
0a693c705a
Create a new connection when called from a different thread
...
This allows to invoke several requests in parallel while not
waiting for other requests to be written to the network.
2017-09-30 10:27:46 +02:00
Lonami Exo
56103845de
Fix LogOutRequest consuming all retries ( #270 )
2017-09-29 13:58:15 +02:00
Lonami Exo
afc4bd9cab
Rename constructor/subclass_of_id to upper case, keep only static
2017-09-29 13:11:33 +02:00
Lonami Exo
f233110732
Allow sending several requests at once through new MessageContainer
2017-09-25 20:52:27 +02:00
Lonami Exo
c0ee123156
Add a small sleep when trying to reconnect forever
2017-09-25 11:04:09 +02:00
Lonami Exo
b04607e7ba
Ignore requests invoked from ReadThread instead raising
...
Any unhandled exception on the ReadThread would cause it to stop,
and handling the exception to the main thread on the next invoke
or poll. Instead causing the thread to stop, simply ignore it.
2017-09-23 11:31:58 +02:00
Lonami Exo
b0f6b23e52
Fix creating new connections accessing invalid attributes
2017-09-22 16:11:07 +02:00
Lonami Exo
bfa3001f87
Fix MainThread would lock when reconnecting
...
This is because it was thinking that the ReadThread would be
ready to read the result, but actually, this thread is also
locked trying to reconnect at the same time
2017-09-22 16:02:10 +02:00
Lonami Exo
6d60e83adc
Start background thread only if it was None
2017-09-22 13:13:41 +02:00
Lonami Exo
4d5f16f2aa
Fix background thread could not reconnect properly
2017-09-22 12:44:09 +02:00
Lonami Exo
4245ec5abc
Make reconnect private
2017-09-22 12:31:41 +02:00
Lonami Exo
bc15b451b5
Use a safer reconnect behaviour (respect multithread too)
2017-09-22 12:20:38 +02:00
Lonami Exo
12c6d4d3ac
Start the background thread only if the user is authorized
2017-09-21 15:36:20 +02:00
Lonami Exo
2b2da843a1
Create a Connection only once and avoid no-op if was "connected"
2017-09-21 13:44:22 +02:00
Lonami Exo
c22224f516
Attempt at handling ProxyConnectionError on .connect()
2017-09-20 13:23:52 +02:00
Lonami Exo
b8d7b1c8af
Phone number shouldn't actually start with '+'
2017-09-20 13:23:52 +02:00
jiang gau
9ae4f7f641
Fix wrong check on .send_message ( closes #250 )
2017-09-19 16:27:10 +02:00
Lonami Exo
91f44613a8
Fix SendMessageRequest could return UpdateShortSentMessage
2017-09-18 11:59:55 +02:00
Lonami Exo
143e046cf5
Attempt at passing errors to the main thread through .updates
2017-09-18 10:59:54 +02:00
Lonami Exo
e3ab98815d
Fix reconnect on TypeNotFoundError failing
2017-09-18 10:21:53 +02:00
Lonami Exo
e0e3947d2f
Fix some misleading errors/documentation
2017-09-18 09:37:20 +02:00
Lonami Exo
940dfe6816
Fix process_updates=True preventing new sessions from signing in
2017-09-17 18:13:58 +02:00
Lonami Exo
05a8723d36
Catch calling .receive() when .sender is None on recv_thread
2017-09-17 16:37:08 +02:00
Lonami Exo
73fe7258d1
Modify .send_message to return the sent message object
2017-09-13 12:00:27 +02:00
Lonami Exo
d12fb5b924
Add an optional reply_to parameter to .send_message/media
2017-09-13 11:51:23 +02:00
Lonami Exo
7043f4c9ba
Add a convenience method to send voice notes
2017-09-13 11:30:20 +02:00
Lonami Exo
a76c31ede2
Add lru_cache decorator to .get_entity()
2017-09-11 12:53:39 +02:00
Lonami Exo
83f9cafabf
Make .get_entity() public
2017-09-11 11:54:32 +02:00
Lonami Exo
188b1c8816
Fix client reconnection not actually working
2017-09-11 11:38:36 +02:00
Lonami Exo
48dead76ac
Retry up to five times before giving up on a request
2017-09-11 10:52:36 +02:00
Lonami Exo
54ba0661c6
Fix wrong variable name causing .connect() to fail
2017-09-08 18:28:31 +02:00
Lonami Exo
c81537bed0
Simplify the workflow with UpdateState exposing a single flag param
2017-09-08 12:54:38 +02:00
Lonami Exo
25bbb20b0c
Use RLocks properly on MtProtoSender (only needed on net IO)
2017-09-07 21:32:46 +02:00
Lonami Exo
16a5ab3070
Add back the periodic PingRequest
2017-09-07 21:23:37 +02:00
Lonami Exo
a24b4020fe
Allow adding update handlers without the need to poll updates
2017-09-07 20:29:51 +02:00
Lonami Exo
b8e881b6b6
Add basic updates processing to ignore updates with lower .pts
2017-09-07 20:17:40 +02:00
Lonami Exo
d237375208
Allow adding callback methods to UpdateState
2017-09-07 18:58:54 +02:00
Lonami Exo
d4f36162cd
Create and use UpdateState to .process() unhandled TLObjects
2017-09-07 18:49:08 +02:00
Lonami Exo
49e884b005
Raise AssertionError if trying to invoke requests from ReadThread
2017-09-07 18:48:41 +02:00
Lonami Exo
06b2834c02
Fix GetContactsRequest using str instead int (layer 70->71) ( #234 )
2017-09-07 10:45:55 +02:00
Lonami Exo
a38381665c
Support invoking requests from within the ReadThread ( fixes #226 )
2017-09-04 20:28:41 +02:00
Lonami Exo
fe86b88bef
Make .sign_up() return the logged user just like .sign_in()
2017-09-04 18:07:20 +02:00
Lonami Exo
15fd5390ae
Optimize imports
2017-09-04 17:18:33 +02:00
Lonami Exo
97cab7347b
Make lint happier
2017-09-04 17:10:04 +02:00
Lonami Exo
6f0bd14c2f
Use an Enum for the ConnectionMode and support specifying it
2017-09-04 11:24:10 +02:00
Lonami Exo
27408b46da
Only reconnect from background thread if .disconnect wasn't called
2017-09-03 13:44:52 +02:00
Lonami Exo
fa34c4bb77
Handle ConnectionResetError on background thread (removed on 9bc1f64
)
2017-09-03 10:05:18 +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
b908296efa
Remove unused TcpClien.read(timeout=...) param, change other accessors
2017-09-02 19:33:42 +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
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
b7dbf9767e
Fix TelegramClient.sign_in not accepting an integer for the code
2017-08-24 18:05:32 +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
0cae62f091
Fix silly bug with two wrongly ordered lines (on download document)
2017-08-23 16:06:41 +02:00
Lonami Exo
c0bae1d608
Replace type(...) == ... with isinstance() checks
2017-08-23 01:45:49 +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
1a6231472e
Ensure the connection is flagged as closed on errors, move #201
2017-08-22 23:12:32 +02:00
Tural
12b84c929a
Fix log_out problems on macOS devices
2017-08-21 09:00:23 +02:00
MeytiGHG
1794acdfec
Check for isinstance(x, JsonSession) instead crashing during transition
2017-08-07 00:54:23 +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
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
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
20956b23d1
Replace super calls with simply super()
2017-06-23 10:15:11 +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
86358d7805
Add periodic pings if an updates thread was started (closes #138 )
2017-06-20 09:46:37 +02:00
Lonami Exo
765ae870cf
Fix connection parameters not being copied on reconnection ( #129 )
2017-06-17 22:05:34 +02:00