Lonami Exo
cbd5594dba
Use the correct clock time when sleeping on iter_messages
2018-06-15 17:09:16 +02:00
Lonami Exo
509fba8bcc
Fix-up isinstance/is_user_authorized from 06cdf1f
2018-06-15 13:01:16 +02:00
Lonami Exo
b7286be3b0
Get the "correct" chat in private incoming messages
2018-06-15 12:46:41 +02:00
Lonami Exo
31c94ec184
Add a lock for resolving events
2018-06-15 10:11:43 +02:00
Dan Elkouby
df15ee421c
Except connection timeouts in MTProtoSender
2018-06-15 10:58:29 +03:00
Lonami Exo
24d2074e0c
Set _input_chat on custom.Message creation/fixup input_chat
2018-06-14 23:40:44 +02:00
Lonami Exo
091b03c635
Use create_task instead ensure_future
2018-06-14 23:33:56 +02:00
Lonami Exo
f95400ea7e
Try again to get input_chat on EventsCommon
2018-06-14 23:26:04 +02:00
Lonami Exo
06cdf1fdb0
Raise on phone/network migrate if authorized
2018-06-14 23:16:00 +02:00
Lonami Exo
c788e17c22
Fix _handle_update not expanding Updates
2018-06-14 22:51:57 +02:00
Lonami Exo
179af9894f
Add missing parenthesis around await
2018-06-14 22:25:03 +02:00
Lonami Exo
0f14f3b16a
Support custom event loops
2018-06-14 19:35:12 +02:00
Lonami Exo
908dfa148b
Revisit codebase to add missing async/await
2018-06-14 17:09:20 +02:00
Lonami Exo
1247d050ab
Remove unused fields from the Sessions
...
Most of the stuff didn't actually need to be saved and only
belong to the MTProtoState which is not a separate class from
the sessions.
2018-06-14 17:04:15 +02:00
Lonami
bb3a564500
Merge pull request #843 from LonamiWebs/core-rewrite
...
Core rewrite
2018-06-14 16:25:28 +02:00
Lonami Exo
5bb2f50232
Handle Msg state/resend/all (from 7c0af2c
by @andr-04)
2018-06-14 16:23:16 +02:00
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
898ce34c65
Set __all__ on telethon.__init__.py
2018-06-13 11:50:36 +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
d4dc147459
Handle DraftMessageEmpty ( closes #844 )
2018-06-12 19:25:13 +02:00
Lonami Exo
2a90de2b08
Fix broadcast being named post for is_group property
2018-06-12 12:31: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
Lonami Exo
382355a22f
Collapse multiple requests into a single container
2018-06-07 13:33:32 +02:00
Lonami Exo
a3687b8bb5
Complete all methods under MTProtoSender and document them
2018-06-07 12:29:43 +02:00
Lonami Exo
0418f7e375
Fix get_entities_text and allow filtering by type
2018-06-07 10:46:32 +02:00
Lonami Exo
56b09c0c9d
Properly set future results
2018-06-07 10:30:20 +02:00
Lonami Exo
9477c75fce
Fix basic requests sending and receiving
2018-06-06 21:42:48 +02:00
Lonami Exo
e469258ab9
Create a new MTProtoSender structure and its foundation
...
This means that the TcpClient and the Connection (currently only
ConnectionTcpFull) will no longer be concerned about handling
errors, but the MTProtoSender will.
The foundation of the library will now be based on asyncio.
2018-06-06 20:41:01 +02:00
Lonami Exo
ed5c44a260
Support deleting more than 100 messages at once
2018-06-05 21:27:49 +02:00
Lonami Exo
30ad06f29a
Fix events.Raw not having ._set_client
2018-06-04 18:36:23 +02:00
Vaschuk Maxim
3db104c7bc
to_bytes() named argument 'length' removed for PyPy ( #834 )
2018-06-04 12:34:52 +02:00
Lonami Exo
2e43fb3217
More nasty hacks to fix events.NewMessage attrs
2018-06-03 17:09:36 +02:00
Lonami Exo
fe3172b2c9
Fix accept TOS must be called after sign up ( #824 )
2018-06-03 16:47:19 +02:00
Lonami Exo
997f2b62ce
Fix EventCommon/custom.Message conflicting properties
2018-06-03 16:41:13 +02:00
Lonami Exo
8c8a0153ef
Revert 9db9d1e's count and fix typo
2018-06-03 15:20:52 +02:00
Lonami Exo
ab9d10c569
Update to v0.19.1
2018-06-03 14:20:50 +02:00
Lonami Exo
c2b8f8a1d6
Support editing media
2018-06-03 13:49:19 +02:00
Lonami Exo
2fb5215f5f
Fix parsers misbehaving with None text
2018-06-03 13:48:43 +02:00
Lonami Exo
92b6e857a4
Separate file_to_media logic from send_file
2018-06-03 13:37:18 +02:00
Lonami Exo
e93b8f2b13
Update to layer 80 and accept TOS on sign_up ( #824 )
2018-06-03 13:26:51 +02:00
Lonami Exo
b2ed6caff4
Fix setattr for events.NewMessage/custom.Message
2018-06-03 13:00:07 +02:00
Lonami Exo
0a3151175d
Fix infinite recursion on setattr custom.Message
2018-06-03 12:29:30 +02:00
Lonami Exo
81c61a0a2e
Handle MessagesNotModified on iter_messages
2018-06-03 12:03:02 +02:00
Lonami Exo
8d7c7a19c0
Add some setters for custom.Message
2018-06-03 11:53:18 +02:00
Lonami Exo
8b16023566
Allow setting a per-client default parse mode
2018-06-03 11:29:48 +02:00
Lonami Exo
f7222407de
Document custom.Message
2018-06-02 12:52:38 +02:00
Lonami Exo
5c76af34aa
Fix copy-paste typo
2018-06-02 12:38:47 +02:00
Lonami Exo
6dcd0911a7
Move events.NewMessage properties to custom.Message
2018-06-02 12:30:25 +02:00
Lonami Exo
97b0a0610e
Support get_messages(ids=) without entity
2018-06-02 12:09:21 +02:00
Lonami Exo
e2ce55871e
Replace custom.Message's class on creation
2018-06-01 21:20:34 +02:00
Lonami Exo
9db9d1ed5c
Implement __bytes__ and use count instead sum
2018-05-31 22:39:32 +02:00
Lonami Exo
2191fbf30b
Fix custom.Message.click not having buttons
2018-05-31 14:10:19 +02:00
Lonami Exo
a1c511429e
Port NewMessage.edit/delete to custom.Message
2018-05-31 14:01:42 +02:00
Lonami Exo
66d5443fcd
Add custom.Message.fwd_from_entity
2018-05-31 13:56:33 +02:00
Lonami Exo
58f621ba82
Make custom.Message more consistent with previous patches
2018-05-31 13:50:08 +02:00
Lonami Exo
9e4854fcce
Use custom.Message in events
2018-05-31 13:30:22 +02:00
Lonami Exo
b241d80958
Return custom.Message from the TelegramClient
2018-05-31 12:52:03 +02:00
Lonami Exo
5aed494aac
Fix custom.Message special methods
2018-05-31 12:50:08 +02:00
Lonami Exo
192b7af136
Lazily load user/input user on Message
2018-05-31 12:24:25 +02:00
Lonami Exo
aa70436441
Add a custom Message class
2018-05-31 10:32:32 +02:00
Lonami Exo
68bb8e8b91
Add is_user/group/channel and title to Dialog
2018-05-30 19:20:27 +02:00
Lonami Exo
ae87d452c8
Clean-up docs and merge some imports
2018-05-30 18:55:01 +02:00
Lonami Exo
780c66c619
Allow getting messages by their ID
2018-05-28 19:33:23 +02:00
Lonami Exo
6c20f8a2c7
Set is private/group=True for messages deleted out of channels
2018-05-28 18:27:44 +02:00
Lonami Exo
a1b22e0911
Support incoming=False to indicate outgoing=True
2018-05-28 18:25:01 +02:00
ferferga
2c9d3d2fed
Better handling of video notes ( #803 )
2018-05-24 12:28:10 +02:00
Lonami Exo
03f0044ef8
Change default iter/get messages limit
...
And fix-up previous commit.
2018-05-24 10:40:44 +02:00
Lonami Exo
a076688fdc
Avoid sending min_id/max_id params in iter_messages
2018-05-24 10:19:48 +02:00
Lonami Exo
fac6b2348b
Fix pts may be 0 with no workers set ( #808 )
2018-05-22 10:39:40 +02:00
Lonami Exo
b667bb0c1a
Fix some chat IDs start with 1000
2018-05-20 12:31:57 +02:00
Lonami Exo
129f5bf1f8
Add an additional check to avoid duplicate iter_messages
2018-05-17 12:08:52 +02:00
Lonami Exo
cffef411b2
Enhance documentation
2018-05-17 12:00:22 +02:00
Lonami Exo
a8be4bb615
Fix catch_up may use None state
2018-05-17 10:42:20 +02:00
Lonami Exo
89182ea010
Fix iter_messages + from_user not working without filter
2018-05-17 10:17:22 +02:00
Lonami Exo
208adc93a6
Stop using without rowid altogether
...
While something nice to have if supported, it just causes problems
for people trying to use the same session accross systems having
different sqlite versions. See https://t.me/TelethonChat/36771 .
2018-05-14 17:41:47 +02:00
Lonami Exo
c010683685
Fix using *args on phone migrate
2018-05-13 17:15:25 +02:00
Lonami Exo
32b7e9e27a
Whitelist generator's mismatching ID and ya username
2018-05-12 16:12:42 +02:00
Lonami Exo
e3c6676795
Fix short special usernames not being valid (like vote)
2018-05-11 10:09:38 +02:00
Lonami Exo
ee51aa7073
Fix lost requests on disconnect need_confirmation.clear
...
The pending acks shouldn't be cleared, in case of a reconnection
these would be pretty common. E.g. disconnect(), connect(),
invoke, repeat.
2018-05-10 16:45:55 +02:00
Lonami Exo
eb22bce2d9
Add missing connect abstractmethod
2018-05-10 16:16:23 +02:00
Lonami Exo
ba4b7ce881
Make the Connection a proper ABC ( #509 )
2018-05-10 14:22:19 +02:00
Lonami Exo
dd954b8fbd
Avoid receive busy wait when two threads receive items
2018-05-10 09:44:25 +02:00
Lonami Exo
ef509d13c7
Move InvokeAfterMsg to TLMessage to cleanly confirm results
2018-05-09 16:18:42 +02:00
Lonami Exo
e2e7e631b5
Stop using *args when invoking many requests at once
2018-05-09 10:19:45 +02:00
Lonami Exo
e200acbca8
Allow sending ordered MessageContainer
2018-05-09 09:46:07 +02:00
Lonami Exo
bda7eb0ef1
Update to v0.19
2018-05-07 21:30:12 +02:00
Lonami Exo
392508c78d
Add voice/video note parameters to send_file
2018-05-07 19:53:32 +02:00
Lonami Exo
37436bdeee
First attempt at updates catch_up for private chats/groups
2018-05-07 18:02:15 +02:00
Lonami Exo
6652fe276c
Remove broken packet length check
2018-05-07 17:05:27 +02:00
Lonami Exo
f06b9b68d5
Fix race condition causing broken responses
2018-05-07 17:01:04 +02:00
Lonami Exo
2922e8df11
Fix still broken log for broken packets
2018-05-07 16:46:58 +02:00
Lonami Exo
6cd96389c0
Call disconnect on ConnectionResetError hoping a reconnection
...
Maybe self._reconnect() had no effect unless a clean disconnect
was done, and so retrying would be mostly useless. Just a guess.
2018-05-06 18:59:53 +02:00
Lonami Exo
f442e01560
Documentation enhancements
2018-05-06 13:03:30 +02:00
Lonami Exo
2045e00563
Stop manually constructing InputFileLocation
2018-05-06 11:46:04 +02:00
Lonami Exo
ee1e4e18f6
Clean-up download_profile_photo and add missing cases
2018-05-06 11:41:42 +02:00
Lonami Exo
d6935355ae
Fix two tiny typos
2018-04-28 13:42:36 +02:00
Lonami Exo
ce7e5abb58
Support filtering events.Raw by update type
2018-04-28 13:37:19 +02:00
Lonami Exo
5c6ac18a52
Attach original_update to all events
2018-04-28 12:58:41 +02:00
Lonami Exo
08dbc42718
Update to layer 76
2018-04-28 11:49:43 +02:00
Lonami Exo
dc273ab6bc
Add utils.get_input_location
2018-04-27 21:11:13 +02:00
Lonami Exo
f16289cf93
Support download_file with None path to return bytes
2018-04-27 21:11:13 +02:00
Lonami Exo
b71511cd63
Fix saving update state in the SqliteSession
2018-04-27 21:11:13 +02:00
Lonami Exo
2a00bcaa12
Persist updates.State upon disconnection
2018-04-25 13:37:29 +02:00