Commit Graph

182 Commits

Author SHA1 Message Date
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
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
c02fbae5aa Allow creating a new parallel connection (closes #102) 2017-06-15 15:50:44 +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
1ca41b5854 Automatically infer the value for 'random_id' parameters 2017-06-11 19:16:59 +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
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
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
d788d30de2 Move connect() parameters to init and ignore signature warnings 2017-06-08 16:41:20 +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
49ca5c00c7 Create a more upgrade-resistant JSON-based Session class 2017-06-07 11:48:54 +01:00
Lonami Exo
5c7efdb04f Make use of relative imports everywhere, again 2017-06-05 18:00:43 +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
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
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
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
452532cce7 Make certain methods and members private 2017-05-29 17:06:48 +02:00
Lonami Exo
fabf806979 Add more errors, update to v0.9.1 2017-05-23 10:31:52 +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
468033fa7e Avoid counterintuitive automatic connection 2017-05-20 11:33:37 +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
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
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
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
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