Lonami Exo
f1157b8fd1
Return downloaded bytes when file=bytes
2018-12-27 19:05:52 +01:00
Lonami Exo
342a4dd502
Update to v1.5
2018-12-25 17:55:15 +01:00
Lonami Exo
fc46e1ec20
Workaround file references by using empty byte strings for cache
...
They seem to work for now, so until there is a need to update it,
cache will just rely on empty byte strings for the file_reference.
2018-12-25 17:02:33 +01:00
Lonami Exo
b66c1e6084
Revert "Get rid of now broken cache"
...
This reverts commit f73ae42a03
.
2018-12-25 16:50:11 +01:00
Lonami Exo
a6c3c382b4
Except MessageIdsEmptyError when getting messages by ID
...
This error may occur even when the IDs are not actually empty.
2018-12-25 12:17:24 +01:00
Lonami Exo
f73ae42a03
Get rid of now broken cache
2018-12-25 11:44:10 +01:00
Lonami Exo
382106aafb
Check g when password's prime is known to be good
2018-12-25 10:59:16 +01:00
Lonami Exo
18f457a41d
Add missing file_reference to InputDocument
2018-12-25 01:04:45 +01:00
Aaron Gallagher
b0e0bc3701
Extend new_algo.salt1 to fix edit_2fa ( #1072 )
...
The salt1 that is sent to the server requires an additional 32 bytes
of random data. It's easy to miss this requirement from reading the
tdesktop source, because this extension is done in a function called
`ValidateNewCloudPasswordAlgo`.
https://github.com/telegramdesktop/tdesktop/blob/2e5a0e056cdb40d61d487c6062bffe1a835f
6ddd/Telegram/SourceFiles/core/core_cloud_password.cpp#L210-L211
2018-12-24 21:16:09 +01:00
Lonami Exo
deb6ca0da0
Fast-path good known prime in 2fa
2018-12-24 20:17:31 +01:00
Lonami Exo
de74711e82
Implement click for KeyboardButtonGame
2018-12-24 17:56:30 +01:00
Lonami Exo
f16ed8235c
Add new is_bot method to check if the logged-in user is a bot
2018-12-24 17:32:34 +01:00
Lonami Exo
ab557a8cef
Use getUsers/getChannels with hash 0 on get_input_entity
2018-12-24 17:32:16 +01:00
Lonami Exo
46fea3fc93
Implement clearing password in edit_2fa
2018-12-24 16:30:45 +01:00
Lonami Exo
6823b6c691
Remove old code to get the hash of a password
2018-12-24 14:47:39 +01:00
Lonami Exo
d2ac7e5b0a
Actually perform all checks in 2fa
2018-12-24 14:16:50 +01:00
Lonami Exo
a623006ea0
Update 2fa code to layer 91
2018-12-24 14:10:15 +01:00
Lonami Exo
2aa089f29c
Prevent KeyError in forward_messages
2018-12-20 20:33:25 +01:00
Kyle2142
d3feaeedb2
Prevent caption=None from crashing ( #1071 )
2018-12-20 10:50:16 +01:00
Lonami Exo
7100b75598
Update to layer 89
...
This breaks edit_2fa
2018-12-18 16:37:07 +01:00
Lonami Exo
09f994c105
Except TypeError on empty access hash from 5018879
thoroughly
2018-12-18 08:39:36 +01:00
Lonami Exo
5018879f84
Raise TypeError in get_input_peer if access_hash is None
...
When auto-casting to input peers if the access hash is now None,
the ID will be used to look-up a cached access hash which will
solve some common pitfalls (using full entities when only the
input variant should and could be used).
2018-12-15 12:23:14 +01:00
Lonami Exo
7ee7b43547
Be explicit that phone numbers only work if in your contacts
2018-12-15 12:04:36 +01:00
Sister Midnight
f3013c6817
Fix ConnectionHttp SSL socket wrap ( #1064 )
2018-12-10 14:43:48 +01:00
Lonami Exo
c48d41d99d
Expect ConnectionError in the send loop
2018-12-06 16:27:09 +01:00
Lonami Exo
f9fc433c0f
Better catch_up behaviour when invalid states are present
2018-12-06 16:07:11 +01:00
Lonami Exo
40730e7862
Fix aaee092
to correct entities' offsets on stripping
2018-12-06 12:33:15 +01:00
Lonami Exo
424079aa12
Fix pts initialized as -1 not being considered
2018-12-04 21:07:18 +01:00
Lonami Exo
0b89d9d3f9
Update to v1.4.3
2018-12-04 14:09:17 +01:00
Lonami Exo
4d8f078ad9
Fix _document_by_attribute calls using cond
2018-12-03 08:49:24 +01:00
Lonami Exo
ed1bcb509f
Use InputMessageReplyTo in get_reply_message
...
This lets bots access to messages other bots sent through replies.
2018-11-29 14:21:49 +01:00
Lonami Exo
9a6f4d35f2
Fix crash on get_messages(ids=InputMessageReplyTo)
2018-11-29 14:19:56 +01:00
Lonami Exo
10b9b4b969
Handle TimeoutError on automatic reconnect
2018-11-29 13:11:34 +01:00
Lonami Exo
4a8a85d7a6
Refetch ChatAction service message to get input users
2018-11-28 18:59:49 +01:00
Lonami Exo
16dd47f5ec
Update to v1.4.2
2018-11-24 20:53:28 +01:00
Lonami Exo
d2e995ef95
Change code to recv and handle disconnections
2018-11-24 20:53:28 +01:00
Lonami Exo
09b16f96fc
Better behaviour for send_read_acknowledge
2018-11-24 20:53:28 +01:00
painor
7e168cb4fb
Remove invalid mentions from message entities ( #1049 )
2018-11-24 19:39:05 +01:00
udf
5b2cfffedc
make utils.get_peer_id raise with message about InputPeerSelf
2018-11-23 16:39:31 +01:00
udf
9362f03fd5
fix utils.get_peer not raising in some cases
2018-11-23 16:39:31 +01:00
Lonami Exo
d214c78bd0
Add missing @property decorator
2018-11-19 12:06:18 +01:00
Lonami Exo
aaee092a46
Locally strip outgoing message text respecting entities
2018-11-19 10:15:56 +01:00
Lonami Exo
d854babf22
Make HTML parser yield the correct offset and lengths
2018-11-19 09:20:13 +01:00
Lonami Exo
d6ec883cd9
Ignore iter_messages from_user unless it's a User
2018-11-19 08:55:49 +01:00
Lonami Exo
8ed3ddba31
Clarify iter_participants filter parameter in the docs
2018-11-19 08:38:31 +01:00
Lonami Exo
207d5ebdcb
Avoid packing more than 1024 messages in a single container
2018-11-19 08:29:44 +01:00
Lonami Exo
0f7c2b891a
Fix get entity by exact name since 2ca8ddb
2018-11-15 17:23:47 +01:00
Lonami Exo
924b59d735
Actually fix cancelling custom conversations from f6bc80b
2018-11-12 08:21:18 +01:00
Lonami Exo
dfab8f5e20
Avoid caching event loop in telethon.sync
...
This would cause issues when creating and setting a different
event loop from a different thread since it would use the old
loop and not the new one, solved by explicitly getting the
loop every time, although this has a slight performance hit.
2018-11-10 11:34:26 +01:00
Lonami Exo
f046d1f0a3
Fix deadlock on unexpected disconnections
2018-11-10 11:23:19 +01:00
Lonami Exo
f6bc80bc6b
Fix cancellation of custom conversation events from d474458
2018-11-08 10:08:41 +01:00
Lonami Exo
cdbd1f6193
Fix valid auth_key never being saved after switching DC
2018-11-03 18:53:26 +01:00
Lonami Exo
0fc97a3e8c
Update to v1.4
2018-11-03 12:46:19 +01:00
Lonami Exo
8e6b98669a
Get rid of full_sync
2018-11-03 12:46:19 +01:00
K900
20a8081e8e
Fix file cache when using MemorySession ( #1033 )
2018-11-01 10:29:23 +01:00
Lonami Exo
67c5572d7b
Possibly fix possible deadlock
2018-10-28 11:53:28 +01:00
painor
45999001be
Added retry_delay parameter for auto-reconnection ( #1031 )
2018-10-28 10:55:58 +01:00
Lonami Exo
24970a875a
Fix raising PasswordHashInvalid missing request arg too
2018-10-27 09:40:30 +02:00
Lonami Exo
2863eb8cc9
Fix raising local FloodWait missing request argument
2018-10-27 09:39:00 +02:00
Lonami Exo
b0e587c03d
Except expected ConnectionError in the receive loop
2018-10-26 10:36:33 +02:00
Lonami Exo
091180b32d
Except CancelledError in MTProtoSender send/recv loop
...
This way, the tasks should not end with the cancelled exception
which should get rid of the warning if any.
2018-10-25 15:54:25 +02:00
Kyle2142
eacfa226fd
Add Conversation.cancel() ( #1030 )
2018-10-25 15:37:36 +02:00
Lonami Exo
2c61c50671
Save session on connect and fix some typos
...
The session is saved upon connecting with the hope to make
sure that the authorization key gets saved to disk before
the next run.
2018-10-24 16:39:59 +02:00
Lonami Exo
4562ba9ccf
Fix auth_key not actually being saved
...
This would make the user have to login every time.
2018-10-22 20:58:07 +02:00
Lonami Exo
7dece209a0
Cancel tasks on reconnect instead of awaiting them
...
This prevents us from locking forever on any task that doesn't
rely on cancellation tokens, in this case, Connection.recv()'s
_recv_queue.get() would never complete after the server closed
the connection.
Additionally, working with cancellation tokens in asyncio is
somewhat annoying to do.
Last but not least removing the Connection._disconnected future
avoids the need to use its state (if an exception was set it
should be retrieved) to prevent asyncio from complaining, which
it was before.
2018-10-21 16:20:05 +02:00
Lonami Exo
f2e77f4030
Fix using the wrong logger in Connection
2018-10-21 16:10:09 +02:00
Lonami Exo
740a715acd
Handle empty code when starting
2018-10-21 16:05:31 +02:00
Lonami Exo
0755421fc2
Fix update loop should not disconnect causing race condition
...
When starting the client, on phone migrations, it would
disconnect twice right after connecting which would
trigger a not-connected error.
2018-10-21 16:02:13 +02:00
Lonami Exo
396ec908dd
Fix _borrow_exported_sender connection
2018-10-20 17:11:40 +02:00
Lonami Exo
39929db2b8
Patch __enter__/__exit__ specially in full_sync
2018-10-19 18:04:53 +02:00
Lonami Exo
a2bae8374e
Fix .get_entity('me') not working from c31635c
( #1024 )
2018-10-19 16:57:46 +02:00
Lonami Exo
0686ec4440
Implement after_msg_id back
2018-10-19 16:53:50 +02:00
Lonami Exo
9dc4009152
Handle the right errors
2018-10-19 14:41:50 +02:00
Lonami Exo
b93b01cb02
Fix manual BadMessageError instantiation
2018-10-19 14:02:20 +02:00
Lonami Exo
6b280dc3bd
Clarify MTProtoSender._disconnected
2018-10-19 14:01:03 +02:00
Lonami Exo
945b34b103
Set MTProtoSender.auth_key on its creation
2018-10-19 13:56:11 +02:00
Lonami Exo
8563b9560d
Fix auth_key not being set
2018-10-19 13:35:29 +02:00
Lonami Exo
939854a0dd
Fix-up e2fe3eb
(packer was OK, encryption was not made)
2018-10-19 13:33:24 +02:00
Lonami Exo
f5bc952309
Don't set the disconnected flag twice
2018-10-19 13:25:00 +02:00
Lonami Exo
e2fe3eb503
Use new broken MessagePacker
2018-10-19 13:24:52 +02:00
Lonami Exo
83f60deef9
Allow updating AuthKey.key
...
This will preserve references to the AuthKey more cleanly.
2018-10-19 12:40:36 +02:00
Lonami Exo
6d30a38316
Let Connection._disconnected be a proper Future
...
This means that awaiting on disconnect will properly raise errors,
allowing to differentiate clean disconnects from faulty ones.
2018-10-19 10:46:34 +02:00
Lonami Exo
542d0f539b
Revisit connection and properly detail the class' intent
2018-10-19 10:35:22 +02:00
Lonami Exo
e5fc9d8674
Fix several broken links in the docs
2018-10-17 11:50:11 +02:00
Lonami Exo
a9a2401e44
Fix CallbackQuery using string regex
2018-10-17 11:44:08 +02:00
Lonami Exo
419fe6dca3
Raise RuntimeError on with blocks that need async
2018-10-17 11:30:07 +02:00
Lonami Exo
9cbc088b76
Make disconnect synchronous
...
This also fixes a bug when auto-reconnecting in MTProtoSender.
2018-10-16 11:56:17 +02:00
Lonami Exo
b219da6b87
Fix Dialog.is_group for types.ChatForbidden
2018-10-15 18:43:53 +02:00
Lonami Exo
34cefed9ff
Except BotMethodInvalidError on getContacts
2018-10-15 18:42:35 +02:00
Lonami Exo
99129daeee
Show the request that caused RPC errors in their messages
2018-10-15 18:35:51 +02:00
Lonami Exo
0094eb391e
Support exclusive conversations by default
2018-10-12 22:17:07 +02:00
Lonami Exo
cf6686ff42
Revert async sessions from 3dd8b7c
(breaks sync properties)
...
Such as ChatGetter.input_chat and SenderGetter.input_sender
which rely on the fact that access to the session file will
be synchronous.
2018-10-12 22:00:02 +02:00
Lonami Exo
e677a6bb05
Fix is_user_authorized after log_out
2018-10-12 19:57:16 +02:00
Lonami Exo
6e77f583f1
Detect arbitrary negative HTTP error codes
2018-10-12 19:47:40 +02:00
Lonami Exo
74f7ae525f
Document InlineBuilder
2018-10-12 12:38:46 +02:00
Lonami Exo
9ee415749d
Fix InlineBuilder.photo/document and clearer errors
2018-10-12 11:50:36 +02:00
Lonami Exo
32c884d543
Revert d392939
and use empty tuple as a sentinel value
2018-10-08 11:33:56 +02:00
Lonami Exo
27345d5749
Work around importing sync and using full_sync
2018-10-08 11:13:24 +02:00
Lonami Exo
2d94a104d1
Syncify events too
2018-10-06 21:08:38 +02:00
Lonami Exo
ded24db3dd
Fix proxy support by removing conflicting arguments
2018-10-06 20:56:09 +02:00
Lonami Exo
8c14259728
Update documentation with new sections
2018-10-06 20:20:11 +02:00
Lonami Exo
fb9660afe0
Add missing awaits
2018-10-06 12:39:07 +02:00
Lonami Exo
67be6418b6
Remove callback parameter from custom.Button
...
Its behaviour was strange. Removing and adding an event
handler every time a message is sent is not a good idea
and it would just do more harm than good.
2018-10-05 20:54:50 +02:00
josephbiko
3dd8b7c6d1
Support async def in sessions ( #1013 )
2018-10-05 20:25:49 +02:00
Tulir Asokan
653f3c043d
Add full_sync module ( #1016 )
2018-10-05 19:59:56 +02:00
Lonami Exo
d392939018
Create a default module to use as a sentinel value
...
This looks better in the documentation than utils.Default,
cleans the utils with specific stuff like this, and users
may use it more easily.
2018-10-05 14:20:50 +02:00
Lonami Exo
0fcc2e5e52
Add autocast for InputDocument and InputChatPhoto
2018-10-05 14:11:47 +02:00
Lonami Exo
aa3f26263c
Fix timeout not accepting timedelta
2018-10-05 14:06:15 +02:00
Lonami Exo
dedbf29ca4
Fix Conversation.wait_event not resolving them (from d474458
)
2018-10-05 13:42:07 +02:00
Lonami Exo
dc77136453
Don't expect responses from ack, log send errors, remove TODOs
2018-10-05 13:26:44 +02:00
Lonami Exo
ef60ade647
Rewrite container packing to support arbitrary sizes
2018-10-05 13:26:44 +02:00
Lonami Exo
7e7bbcf4c0
Remove irrelevant TODOs and add more logging
2018-10-05 13:26:44 +02:00
Lonami Exo
a5d4e97922
Fix alternative connection modes
2018-10-05 13:26:44 +02:00
Lonami Exo
ebde3be820
Add support for proxy again
2018-10-05 13:26:44 +02:00
Lonami Exo
db83709c6b
Support connection timeout
2018-10-05 13:26:44 +02:00
Lonami Exo
0cc8bca098
Delete TcpClient
2018-10-05 13:26:44 +02:00
Lonami Exo
1b9d6aac06
Gzip only content related data
2018-10-05 13:26:44 +02:00
Lonami Exo
37b9922f64
Handle cancellation on the receive loop
2018-10-05 13:26:44 +02:00
Lonami Exo
e319fa3aa9
Handle IncompleteReadError and InvalidChecksumError
2018-10-05 13:26:44 +02:00
Lonami Exo
3fd7c33127
Fix automatic reconnect (e.g. on bad auth key)
...
This took more time than it should have to debug.
2018-10-05 13:26:44 +02:00
Lonami Exo
bc1fd9039d
Handle receiving errors
2018-10-05 13:26:44 +02:00
Lonami Exo
cf7e5d5592
Set auth_key on connection
2018-10-05 13:26:44 +02:00
Lonami Exo
21ffa2f26b
Fix DC migration and seqno
2018-10-05 13:26:44 +02:00
Lonami Exo
ac567ebf1d
Handle bad salt/msg not resending containers
2018-10-05 13:26:44 +02:00
Lonami Exo
3b1142aaca
Add back auth key generation process
2018-10-05 13:26:44 +02:00
Lonami Exo
5edc2216c7
Handle initial connection if network is down correctly
2018-10-05 13:26:44 +02:00
Lonami Exo
2d275989cb
Properly handle cancellation in _ReadyQueue
2018-10-05 13:26:44 +02:00
Lonami Exo
105bd52eee
Abstract the send queue off MTProtoSender
2018-10-05 13:26:44 +02:00
Lonami Exo
b02ebcb69b
Stop waiting for send items on disconnection
2018-10-05 13:26:44 +02:00
Lonami Exo
470fb9f5df
Make use of the MTProtoLayer in MTProtoSender
2018-10-05 13:26:44 +02:00
Lonami Exo
9402b4a26d
Create a new layer to lift encryption off the MTProtoSender
2018-10-05 13:26:44 +02:00
Lonami Exo
5daad2aaab
Actually use the new connection class
2018-10-05 13:26:44 +02:00
Lonami Exo
daf94e416b
Fix connection never receiving and missing clone method
2018-10-05 13:26:44 +02:00
Lonami Exo
2fd51b8582
Let all connection modes implement the new Connection
2018-10-05 13:26:44 +02:00
Lonami Exo
096424ea78
Create a new Connection class to work through queues
2018-10-05 13:26:44 +02:00
painor
340f5614b5
Add name mention formatting to HTML and Markdown ( #1019 )
2018-10-04 15:56:32 +02:00
Manuel1510
2468b32fc5
Implement next_offset and allow empty results in answer() ( #1017 )
2018-10-04 09:12:12 +02:00
nailerNAS
c2966297f1
Add delete method to custom.Dialog ( #1014 )
2018-09-28 15:47:24 +02:00
Lonami Exo
785071a5cd
Update to v1.3
2018-09-22 19:37:16 +02:00
Lonami Exo
ec0aa65fe1
An user -> a user
2018-09-22 19:18:42 +02:00
Lonami Exo
d5d3733fd4
Create events.register and siblings for "handler templates"
...
This can be thought of as a different approach to Flask's blueprints.
2018-09-22 12:51:58 +02:00
Lonami Exo
cb6f980277
Better autocast to InputPeerDialog and documentation
2018-09-22 10:56:37 +02:00
Lonami Exo
92c9bb12b7
Use asyncio.open_connection in the TcpClient
...
(cherry picked from commit 573fed1f512831cd9790130cc878655fef2fde98)
2018-09-19 19:03:36 +02:00
Lonami Exo
9275a9fcbb
Fix several typos and misleading docs ( #987 , #990 )
2018-09-19 17:51:18 +02:00
Lonami Exo
5e13a6f7a8
Fix-up get_message failing for UpdateInlineBotCallbackQuery
2018-09-19 16:42:22 +02:00
Lonami Exo
ac59cfa25b
Return chat from inline queries that "don't have it"
2018-09-19 16:40:35 +02:00
udf
3ef2416138
Add method to resolve inline message IDs ( #1005 )
2018-09-19 14:22:35 +02:00
Lonami Exo
db8bea3968
Fix getting messages by ID for private chats
2018-09-16 15:45:38 +02:00
Lonami Exo
4e07712b04
Return new .web_preview's .photo/.document if present in Message
2018-09-15 10:45:15 +02:00
Lonami Exo
080585da49
Support coroutine callbacks in start()
2018-09-09 16:17:20 +02:00
Lonami Exo
2f09e5c335
Support custom-callback filter for all events
2018-09-09 15:48:54 +02:00
Lonami Exo
11ef4ce370
Fix _document_by_attribute failing on empty media
2018-09-06 15:41:04 +02:00
Lonami Exo
4e5b8c9c34
Let sender = chat for messages from channels
2018-09-06 10:33:56 +02:00
Lonami Exo
ae085f30a8
Save update state upon disconnect
2018-09-04 11:58:55 +02:00
Lonami Exo
3c92f6a791
Fix sqlite's conn may be None if never used
...
This happened when signing up with the library
and getting migrate errors.
2018-09-04 11:28:01 +02:00
Lonami Exo
bbeb8f4ba3
Clarify and fix some docstrings
2018-09-04 11:27:10 +02:00
Wirtos
36df6d1bf9
Manually register ogg mimetype too ( #973 )
2018-08-28 21:17:10 +02:00
Lonami Exo
0e91fc3668
Manually register webp mimetype
...
Otherwise, sending stickers would fail on some systems.
2018-08-27 17:19:10 +02:00
Lonami Exo
8a9650f131
Fix-up previous commit 0bb0d0b
missing parameter
2018-08-27 10:58:06 +02:00
Lonami Exo
576ac666d9
Fix resolving events while disconnected
2018-08-27 01:20:01 +02:00
Lonami Exo
5ca1edb228
Return the correct entity from .get_entity(username)
...
The precedence of the or operator made the check succeed always
out of pure luck, since `''.lower()` would never be the chosen
username, but a present username is truthy.
This presumably worked because Telegram only returns one result
from the call, or puts the right entity the first one.
2018-08-26 12:00:17 +02:00
s3mple
29d122e810
Fix-up previous commit f17d7e9
( #967 )
2018-08-24 19:50:55 +02:00
s3mple
f17d7e9c5e
New exception class for multiple errors ( #965 )
2018-08-24 18:25:58 +02:00
Lonami Exo
52a4327769
Fix MemorySession file caching
2018-08-22 16:21:22 +02:00
Lonami Exo
8e62f797bb
Support custom encoding for StringSession
2018-08-22 16:12:27 +02:00
s3mple
aa9bc9080f
Support custom symbol set for aggressive get_participants
2018-08-21 17:15:35 +02:00
Lonami Exo
fbc46bd388
Use loop.create_future instead asyncio.Future
2018-08-21 12:22:06 +02:00
Lonami Exo
d3a6822fc9
Properly resolve events
2018-08-21 12:18:12 +02:00
Lonami Exo
47190d7d55
Fix event loop not being passed into many asyncio calls
2018-08-21 11:31:14 +02:00
Lonami Exo
d474458136
Simplify event resolving logic
...
Although this commit introduces a race condition since an
event may only be half-resolved. A lock is thus needed,
but it depends on an event-loop to which we don't have
access in the class-level.
2018-08-21 11:08:08 +02:00
Lonami Exo
9f237cc928
Simplify event building logic
...
This will also fix some bugs where the event type being accessed
would not be available, since it is now built on-demand, without
the need to keep track for the count of each event type.
2018-08-21 10:27:12 +02:00
Lonami Exo
f0cd1fdd6e
Don't disconnect sender on cancellation ( #958 )
...
This was causing a "race condition" where the sender would
be disconnected after cancellation when another was created.
2018-08-20 14:59:17 +02:00
Lonami Exo
171e13daa9
Special case File responses without parent request ( #658 )
2018-08-20 11:42:51 +02:00
Lonami Exo
dda1f0b1dd
Stop copying reply when resending Message, fix file replies
2018-08-19 11:49:36 +02:00
Lonami Exo
f4b9c9d6d4
Remove critical code from assert statements
2018-08-14 19:14:13 +02:00
Lonami Exo
7efa53fedf
Update to v1.2
2018-08-14 18:48:56 +02:00
Lonami Exo
06da651f27
Fix edits in custom.Conversation
2018-08-14 18:42:16 +02:00
Lonami Exo
216805d62d
Fix telethon.sync for custom.Conversation
2018-08-14 18:41:13 +02:00
Lonami Exo
653686996a
Revisit catch_up ( #808 )
2018-08-13 12:32:12 +02:00
Lonami Exo
d3efc8f57d
Better logging for packing errors
...
https://github.com/expectocode/telegram-export/issues/76
2018-08-08 12:04:20 +02:00
Lonami Exo
e3bf6e3330
Document reply markup limits
2018-08-07 12:46:05 +02:00
Lonami Exo
9195bccb41
Fix sending files from disk after 6d1bc22
( #941 and #943 )
2018-08-06 18:03:42 +02:00
Lonami Exo
44558cc592
Add utils.resolve_bot_file_id inverse
2018-08-06 17:54:07 +02:00
Lonami Exo
f332e4c423
Clearer variable naming
2018-08-06 16:31:15 +02:00
Lonami Exo
f39f9a94b5
Remove unnecessary async/await
2018-08-06 16:30:25 +02:00
Lonami Exo
d3a9dcd36c
Replace wait code with asyncio.wait_for and pass the client's loop
2018-08-06 16:22:11 +02:00
Lonami Exo
8ce001318e
Fix StringSession(None)
2018-08-05 19:45:56 +02:00
Lonami Exo
0011f19f8b
Create a StringSession
2018-08-05 16:24:34 +02:00
Lonami Exo
63174ae404
Properly clean-up Conversation
2018-08-05 13:15:19 +02:00
Lonami Exo
26bcc78d14
Fix Conversation.get_response
2018-08-05 12:28:54 +02:00
Lonami Exo
cc067b2569
Add Conversation to the sync magic module
2018-08-05 11:05:01 +02:00
Lonami Exo
48113851a8
Fix built Conversation events don't have the client
2018-08-05 02:01:06 +02:00
Lonami Exo
ca40a9c282
Add Conversation.wait_event
2018-08-05 01:55:41 +02:00
Lonami Exo
1ecb751222
Add Conversation.send_file and .mark_read
2018-08-04 23:21:19 +02:00
Lonami Exo
396b1a4177
Improve getting edits in a Conversation
2018-08-04 15:35:51 +02:00
Lonami Exo
5f73482d29
Restart Conversation total timeout upon __aenter__
2018-08-04 15:35:04 +02:00
Lonami Exo
a688c8a4ce
Fix exception ignored warnings and invalid state #935
2018-08-04 15:06:11 +02:00
Nikolay Tretyak
d0c566bbdb
Fix iter_participants is failing when _total is None ( #936 )
2018-08-04 11:30:24 +02:00
Lonami Exo
2cf95ce2b9
Fix accessing buttons on messages with reply markup
2018-08-04 11:16:51 +02:00
Lonami Exo
c1d67f35c9
Fix creating unknown RPCError messages with known code failing
2018-08-04 00:43:53 +02:00
Lonami Exo
785ef7676f
Create a basic custom.Conversation
2018-08-03 17:51:56 +02:00
Lonami Exo
60c61181d9
Return custom.InlineResults instead of a simple list
2018-08-02 23:31:51 +02:00
Lonami Exo
7cce7aa3e4
Return helpers.TotalList instances on client.get_ methods
2018-08-02 23:00:10 +02:00
Lonami Exo
070c971d11
Set media as None if it is MessageMediaEmpty
2018-08-02 20:18:28 +02:00
Lonami Exo
f4ea662fdd
Fix sign in not saving self user to session file
2018-08-02 19:40:48 +02:00
Lonami Exo
7a7923b317
Fallback to MemorySession if sqlite3 is not available
2018-08-02 15:17:44 +02:00
Lonami Exo
16f7626ceb
Fix custom.Button._is_inline failing for MessageButton
2018-08-02 14:53:26 +02:00
Lonami Exo
3612652f39
Use builtin base64.urlsafe_b64decode and fix docstring
2018-08-02 13:59:27 +02:00
Lonami Exo
2ca8ddbfb4
Use cache for invite links
2018-08-02 13:47:35 +02:00
Lonami Exo
328f737ef7
Support custom.MessageButton as buttons reply markup
2018-08-02 13:17:59 +02:00
Lonami Exo
10da14418c
Create utils.get_peer
2018-08-02 12:56:40 +02:00
Lonami Exo
80a5e709cb
Support .download_media with bot API file_id
2018-08-01 13:40:07 +02:00
Lonami Exo
e359b428c3
Merge branch 'inlineresult'
2018-08-01 01:06:59 +02:00
Lonami Exo
7a2d7d98ad
Implement client.inline_query()
2018-08-01 01:06:47 +02:00
Lonami Exo
49a6cb4ef8
Fix InlineResult.click()
2018-08-01 01:06:08 +02:00
Lonami Exo
76c7217000
Support downloading web documents
2018-08-01 00:37:25 +02:00
Lonami Exo
7d880a856e
Implement InlineResult.download_media
2018-08-01 00:15:23 +02:00
Lonami Exo
6d1bc227aa
Support bot API file_id on send_file
2018-07-31 23:35:22 +02:00
Lonami Exo
972950fc2e
Create utils.resolve_bot_file_id
2018-07-31 23:35:07 +02:00
Lonami Exo
638eeb3c82
Fix attributes not being inferred for open()ed files
2018-07-31 12:14:13 +02:00
Lonami Exo
f0a26d7c76
Implement global search ( closes #920 )
2018-07-29 23:16:22 +02:00
Lonami
223b007a55
Fix get_message_id after custom message patch
2018-07-29 15:49:12 +02:00
Lonami Exo
96742334a4
Fix incoming = outgoing = True not working
2018-07-29 13:03:10 +02:00
Lonami Exo
682e650187
Create a basic InlineResult class
2018-07-29 12:56:11 +02:00
Lonami Exo
cc4c620261
Show more information for bare RPCError ( #919 )
2018-07-29 12:40:40 +02:00
Lonami Exo
f2c8663266
Fix copy pasted docs and snake_case files
2018-07-28 11:28:02 +02:00
Lonami Exo
26f121060d
Always support aggressive in iter_participants ( #904 )
2018-07-25 12:40:49 +02:00
Lonami Exo
7729a2a78f
More logging for bad messages ( #907 )
2018-07-25 12:33:12 +02:00
Lonami Exo
b3990546eb
Fix RPCError may occur for no parent message ( #908 )
2018-07-25 12:19:28 +02:00
Lonami Exo
7b4cd92066
Revert 030f292
(use libssl if available)
2018-07-25 12:11:58 +02:00
Lonami Exo
200a4e47b8
Clarify some strings
2018-07-25 02:21:44 +02:00
Lonami Exo
7b22c72c3e
Use UTC timezone for events.UserUpdate
2018-07-24 20:38:38 +02:00
Lonami Exo
6c51c35ccf
Fix _iter_ids not expecting InputChannel
2018-07-24 18:20:34 +02:00
Lonami Exo
7778b665db
Update to v1.1.1
2018-07-23 12:44:46 +02:00
Lonami Exo
d8fa0c81f6
Fix-up 52292d7
accessing types under the wrong module
2018-07-23 12:19:41 +02:00
Lonami Exo
056842d1a0
Fix trailing comma breaking Python 3.5.2 compat
2018-07-23 12:18:35 +02:00
Lonami Exo
52292d77fb
Use types. namespace in utils
2018-07-22 19:40:00 +02:00
Lonami Exo
ace7254344
Fix classes MRO and abstractmethod usage
...
Furthermore utils needs to access the message by reference
through types.Message because it is patched and replaced.
2018-07-22 19:26:34 +02:00
Lonami Exo
1c0d595205
Replace custom.Message creation with ._finish_init
2018-07-22 19:20:55 +02:00
Lonami Exo
fd17098447
Rename MessageBase for Message
2018-07-22 17:22:52 +02:00
Lonami Exo
c4e94abcf0
Complete moving properties to the new message base
2018-07-22 16:49:42 +02:00
Lonami Exo
a3ac6d1645
Create a common message base class
2018-07-22 13:26:12 +02:00
Lonami Exo
5df46f9ed8
(Try to) fix infinite recursion in custom.Message again
2018-07-22 12:27:08 +02:00
Lonami Exo
bc03c29216
Fix logical bugs when getting input peers in custom.Message
...
Such as incorrectly handling InputPeerSelf/InputPeerChat and
using self._input_sender when self._input_chat was expected.
2018-07-22 11:33:29 +02:00
Lonami Exo
e4963237dc
Fix-up a332d29
should not be exported on invalid DC
2018-07-22 01:08:03 +02:00
Lonami Exo
a332d29c4c
Fix-up 5a9a00e
to handle exporting senders to the same DC
2018-07-22 00:40:39 +02:00
Lonami Exo
46b2d910d7
Fix logging of functools.partial() callbacks
2018-07-21 17:52:42 +02:00
Lonami Exo
3d7bff64c2
Update to v1.1
2018-07-21 15:29:09 +02:00
Lonami Exo
3bdfd4b32c
Make build_reply_markup public
2018-07-21 13:55:26 +02:00
Lonami Exo
7750c9ff2f
Make sure to not add callbacks from buttons= twice
2018-07-21 13:24:32 +02:00
Lonami Exo
24758b82ec
Don't make a request at all if it will trigger flood wait
2018-07-21 12:25:20 +02:00
Lonami Exo
a9cc35e604
Avoid triggering FileMigrateError when possible
2018-07-21 11:59:44 +02:00
Lonami Exo
5a9a00e7ae
Assume exported auths last forever
...
This implies that export senders will NOT be deleted from
memory once all borrows are returned, thus their auth_key
remains as well. When borrowing them if they existed they
will be connect()ed if it's the first borrow.
This probably fixes #901 .
2018-07-21 11:24:20 +02:00
Lonami Exo
13437cc3f2
Fix infinite recursion for custom.Message.message
2018-07-21 10:19:17 +02:00
Lonami Exo
aa67f107af
Temporarily use blocking SSL sockets on connect
2018-07-19 20:56:45 +02:00
Lonami Exo
4027ac6a6f
Wrap socket with SSL after connecting
...
See https://github.com/Anorov/PySocks/issues/29
2018-07-19 20:38:53 +02:00
Lonami Exo
7f78d7ed2f
Use classmethod for all Event.build
2018-07-19 01:47:32 +02:00
Lonami Exo
2d7c8908eb
Create events.InlineQuery
2018-07-15 11:31:24 +02:00
Lonami Exo
5017a9d1da
Fix typos and add the URL_INVALID error
2018-07-14 10:43:24 +02:00
Lonami Exo
dc3d281274
Load update state date with explicit timezone ( #808 )
2018-07-14 00:01:45 +02:00
Lonami Exo
051d56af88
Support clicking buttons known their data
2018-07-12 16:26:22 +02:00
Lonami Exo
22c8fd7378
Fix Updates object being dispatched to user handlers
2018-07-12 09:45:29 +02:00
Lonami Exo
38c65adf35
Set timezone info when reading datetimes
2018-07-12 00:30:57 +02:00
Lonami Exo
8b4c8d30e7
Fix events.MessageDeleted setting readonly properties
2018-07-11 11:34:20 +02:00
Lonami Exo
4f5c6f1006
Merge branch 'event-reusing'
2018-07-11 11:31:46 +02:00
Lonami Exo
e2ffa816dc
Fix infinite recursion
2018-07-11 11:23:11 +02:00
Lonami Exo
1d0fd6801d
Build events only once per update
2018-07-11 11:22:43 +02:00
Lonami Exo
81f31e09c8
Keep track of how many events for each type were added
2018-07-11 10:50:19 +02:00
Lonami Exo
e902304360
Expose silent parameter when sending messages
2018-07-11 10:16:21 +02:00
Lonami Exo
a3d6baf408
Actually add callbacks registered through Button
2018-07-10 19:50:18 +02:00
Lonami Exo
f6c45dcc63
Support filtering events.CallbackQuery
2018-07-10 17:59:13 +02:00
Lonami Exo
ea07cf8d12
Add buttons parameter to client.edit_message
2018-07-10 17:59:13 +02:00
Lonami Exo
05e8e60291
Create events.CallbackQuery
2018-07-10 17:59:13 +02:00
Lonami Exo
8eecd9c226
Reuse code to get chat and sender
2018-07-10 17:59:13 +02:00
Lonami Exo
531a02a2a1
Support buttons when sending a file too
2018-07-10 17:59:13 +02:00
Lonami Exo
8c28be04bc
Create a custom.Button class and support send_message(buttons=...)
2018-07-10 17:59:13 +02:00
Lonami Exo
a50d013ee6
Support interactively signing in as a bot
2018-07-10 17:59:13 +02:00
Lonami
ac5f8da50c
Fix update.pts may be None
2018-07-10 16:59:40 +02:00
josephbiko
e6981e7676
Remove empty except ( #887 )
2018-07-09 20:54:43 +02:00
Lonami Exo
4328663c78
Support timedelta as datetimes
2018-07-09 13:36:52 +02:00
Lonami Exo
1437b69829
Update to v1.0.4
2018-07-09 12:32:47 +02:00
Lonami Exo
1b22d0eb12
Add missing await
2018-07-08 23:44:56 +02:00
Lonami Exo
7b6e65a7a5
Re-export ConnectionHttp from the network package
2018-07-08 17:48:38 +02:00
Lonami
128053750d
Implement HTTP(S) mode ( closes #112 ) ( #883 )
2018-07-08 17:45:49 +02:00
Lonami Exo
e0513e10df
Remove debug print
2018-07-08 15:24:33 +02:00
Lonami Exo
3a9cce8720
Add missing async/await to events' documentation
2018-07-08 15:11:10 +02:00
Lonami Exo
d02cb84abe
Fix end of sync with block warning on disconnect
2018-07-08 00:05:09 +02:00
Lonami Exo
54bffb30d8
Fix send_message('me', Message)
2018-07-08 00:05:09 +02:00
Lonami Exo
cb3846cb7f
Add client.get_peer_id
2018-07-07 12:45:50 +02:00
Lonami Exo
3b3b148a43
Revert add_mark parameter on utils.get_peer_id
...
And a fix for -1000 IDs that wasn't being accounted for.
2018-07-07 12:44:21 +02:00
Lonami Exo
bb4ed4019f
Revert forward_messages requiring named from_peer arg
2018-07-07 12:14:50 +02:00
Lonami Exo
bd878acbde
Support InputNotifyPeer autocast
2018-07-07 12:14:03 +02:00
Lonami Exo
dfda61a1b5
Correct thumb parameter documentation
2018-07-07 12:01:42 +02:00
Lonami Exo
393e1966c7
Avoid exceeding maximum container size
...
This issue would likely be triggered when automatically
merging multiple requests into a single one while having
their size exceed 1044456 bytes like SaveFilePartRequest.
This commit avoids such issue by keeping track of the
current size, and if it exceeds the limit, avoid merge.
2018-07-07 11:58:48 +02:00
Lonami Exo
33ce702ab9
Pre-pack outgoing TLMessage
...
This has several benefits:
- The message can be resent without re-calling bytes(),
which for some requests may be expensive.
- Converting requests to bytes early lets us detect
errors early, such as OverflowError on bad requests.
- Containers can't exceed 1044456 bytes so knowing their
length is important. This can now be done in O(1).
But also several drawbacks:
- If the object is modified the bytes won't reflect this.
This isn't an issue because it's only done for in msgs.
- Incoming messages can no longer be reconverted into
bytes but this was never needed anyway.
2018-07-07 11:46:21 +02:00
Lonami Exo
b237947af1
Update to v1.0.3
2018-07-04 15:41:11 +02:00
Lonami Exo
44630542d0
Fix MessageAction not allowing access to media
...
This caused some issues with events.MessageEdited because
some MessageAction can trigger these edit updates such as
scoring in a game.
2018-07-03 14:13:44 +02:00
Lonami Exo
43afdb9d77
Fix-up 53fbfb2
for InputPeerChat or others
2018-07-03 14:05:42 +02:00
Lonami Exo
53fbfb215f
Fix Telegram may omit entities' access hash in updates
2018-07-02 18:43:42 +02:00
Lonami Exo
53c660d0dc
Don't remove reader if fd == -1
2018-06-30 13:26:28 +02:00
Harry
dfcf414111
Fix hachoir don't close files by itself ( #875 )
2018-06-29 16:45:18 +02:00
Lonami Exo
baedd10110
Update to layer 82
2018-06-29 13:23:56 +02:00
Lonami Exo
dd0eb7a90e
Explicitly open files as 'r' instead of leaving it out
2018-06-29 11:34:57 +02:00
Lonami Exo
d64eb7ea2b
Avoid cyclic imports on older Python versions
2018-06-29 11:04:42 +02:00
Lonami Exo
3c2ff45b0b
Support dispatching updates in a sequential order
2018-06-29 10:45:04 +02:00
Lonami Exo
0f737a86af
Revert sign_in needing named code argument
2018-06-29 09:57:57 +02:00
Lonami Exo
dbca38c6f5
Allow iterating over messages in reverse
2018-06-28 21:15:29 +02:00
Lonami Exo
ac6dbb8a5c
Fix is_connected accessing unexisting property
2018-06-28 16:04:12 +02:00
Lonami Exo
0f5f6cc050
Fix opposite condition
2018-06-28 15:50:26 +02:00
Lonami Exo
cedf90eb57
Update to v1.0.2
2018-06-28 15:37:30 +02:00
Lonami Exo
ac2b10f2a5
Stop using loop's time() function
2018-06-28 15:12:18 +02:00
Lonami Exo
491302bb32
Fix parallel downloads when using exported senders
2018-06-28 14:10:36 +02:00
Lonami Exo
fb40e7b508
Update mtprotoplainsender.py asserts
2018-06-28 09:48:03 +02:00
Lonami Exo
3154575ab6
Update to v1.0.1
2018-06-27 19:55:37 +02:00
Lonami Exo
a6782ac6ea
Send getState upon successful reconnection
2018-06-27 19:40:32 +02:00
Lonami Exo
c0412e4410
Fix run_until_disconnected disconnect with telethon.sync
2018-06-27 19:39:47 +02:00
Lonami Exo
ad01bda503
Fix custom.Message.buttons being None in channels ( #870 )
...
The implications behind this were bigger than expected. The sender
of the message is not actually needed for anything in the bot. The
bot itself may be needed, but only for KeyboardButtonSwitchInline.
2018-06-27 19:25:14 +02:00
Lonami Exo
18f06f1a25
Fix bad notification due to wrong system clock never ending
2018-06-27 19:04:33 +02:00
Inokenty
f014c040a3
Keyword arg instead positional for sign_in ( #869 )
2018-06-27 17:23:46 +02:00
Lonami Exo
a46a45d060
Don't disconnect on del if already disconnected/loop closed
2018-06-27 13:57:17 +02:00
Lonami Exo
72835dfb44
Update to v1.0
2018-06-27 13:41:20 +02:00
Lonami Exo
4be248932d
Fix non-ending awaits due to requests not being resent on reconnect
2018-06-27 10:26:26 +02:00
Lonami Exo
58aadce5ba
Fix-up 2b090f8
not actually resaving new auth_keys
2018-06-27 10:15:59 +02:00
Lonami Exo
e604960a1d
Include TAKEOUT_INIT_DELAY_X in the available errors
2018-06-27 09:46:14 +02:00
Lonami Exo
75865cbaa8
Syncify async generators too
2018-06-27 09:34:35 +02:00
Lonami Exo
8c5bbdf7eb
Check from_user client-side for PMs in iter_messages
2018-06-26 16:48:03 +02:00
Lonami Exo
09ea8ffe0b
Fix send_file completely ignoring input parameters
2018-06-26 16:39:43 +02:00
Lonami Exo
2bd0c6c525
Support URLs on send_file
2018-06-26 16:39:22 +02:00
Lonami Exo
2b090f8888
Fix connect not saving different authkeys
2018-06-26 16:20:30 +02:00
Lonami Exo
9159e2a720
Remove report_errors/flood_sleep_threshold from the session
2018-06-26 16:09:16 +02:00
chrizrobert
1eb4af33df
Fix get_entities_text with cls ( #866 )
2018-06-26 15:58:55 +02:00
Lonami Exo
dbb81173fa
Add an assistant bot example
2018-06-26 15:48:56 +02:00
Lonami Exo
6152e33454
Fix sync run_until_disconnected not liking Ctrl+C
2018-06-26 15:48:38 +02:00
Lonami Exo
f6bfcad49e
Don't close session file on _switch_dc disconnect
2018-06-26 13:37:34 +02:00
Lonami Exo
3556d5ed79
Fix-up 9971145
still accessing unexisting properties
2018-06-26 13:15:25 +02:00
Lonami Exo
96e8b0b840
Remove get_fwd_sender
2018-06-26 12:38:58 +02:00
Lonami Exo
9971145721
Assert properties exist on disconnect
2018-06-26 12:03:31 +02:00
Lonami Exo
19900a373a
More useful messages from authenticator.py
2018-06-26 11:32:09 +02:00
Lonami Exo
32786d16fd
Support using the client in with blocks
2018-06-26 11:26:01 +02:00
Lonami Exo
d4b508bf48
Fix __del__ with sync magic
2018-06-26 11:23:51 +02:00
Lonami Exo
75dc4809f5
Remove all deprecated methods
2018-06-26 11:10:11 +02:00
Lonami Exo
a43c6c2b68
Work around Python 3.5.2 bug causing 100% CPU load on script's end
2018-06-26 11:10:11 +02:00
Lonami Exo
f295ea668a
Make sync.syncify a public function for user types
2018-06-26 11:10:11 +02:00
Lonami Exo
044e6e8a85
Await updates task to finish upon disconnect
2018-06-26 11:10:11 +02:00
Lonami Exo
fc834f60fb
Fix custom.Dialog passing the wrong instance to custom.Draft
2018-06-25 21:24:46 +02:00
Lonami Exo
d65f8ecc0d
Document the magic sync module
2018-06-25 21:14:58 +02:00
Lonami Exo
551b0044ce
Reuse more code using sqlite's cursor
2018-06-25 20:11:48 +02:00
Lonami Exo
313bead615
Close sqlite's cursor after usage
2018-06-25 19:49:33 +02:00
Lonami Exo
4da50ba3a0
Add a syncify magic module to use asyncio as sync
2018-06-25 14:24:56 +02:00
Lonami Exo
9c6d2894fc
Allow start when the loop is not running
2018-06-25 13:42:29 +02:00
Lonami Exo
db5cb74bdd
Allow run_until_disconnected when the loop is running
2018-06-25 13:32:31 +02:00
Lonami Exo
c1046c2acc
Fix "user joined" being "user added itself"
2018-06-25 13:21:23 +02:00
Lonami Exo
59f6b75391
Stop showing "data left after" warning
2018-06-25 12:54:33 +02:00
Lonami Exo
410518aa65
Stop using await with properties
2018-06-25 11:38:56 +02:00
Lonami Exo
0d09f9d8c1
Create a custom.Forward class
2018-06-25 11:34:10 +02:00
Lonami Exo
efc9f4c414
Get rid of all remaining async properties
2018-06-25 11:03:20 +02:00
Lonami Exo
ae47fd37b0
Update to v1.0-rc1
2018-06-24 15:51:24 +02:00
Lonami Exo
266d44dd86
Fix EventsCommon still having async properties
2018-06-24 13:05:58 +02:00
Lonami Exo
d4479a0a4e
Save the session file less often
2018-06-24 12:21:58 +02:00
Lonami Exo
184424957d
Create a separate method to start reconnections
2018-06-24 10:44:31 +02:00
Lonami Exo
0d0e78e10b
Use the right chat peer in private messages
2018-06-23 15:10:07 +02:00
Lonami Exo
51da48ddd2
Support custom parse_mode to use MessageEntityMentionName
2018-06-22 16:18:23 +02:00
Lonami Exo
3d3698562b
Cleanly handle KeyboardInterrupt in run_until_disconnected
2018-06-22 13:26:24 +02:00
Lonami Exo
1a1d9d346c
Fix most private messages being outgoing since 56ddaae
...
56ddaae
checked to_id and from_id to compare if they were equal,
and if they were, mark the event as outgoing for convenience in
your private chat (saved messages).
However when reconstructing the Message from UpdateShortMessage
to_id didn't mimic 100% Telegram's behaviour (the chat to which
the message is sent is "different" depending on who sent the
messages). This bug is what actually caused most messages to
be outgoing, even though 56ddaae's logic is correct.
2018-06-22 10:25:20 +02:00
Lonami Exo
8d98c04932
Fix awaits on input_chat property
2018-06-22 10:05:29 +02:00
Lonami Exo
f733f8e565
Rewrite the first part of the docs for asyncio
2018-06-21 21:54:54 +02:00
Lonami Exo
5e322a6ca9
Remove async properties from custom.Message
...
Awaiting on a property was strange and only really made sense
in events.NewMessage. Methods like client.get_messages() and
similar return entire custom.Message which won't need to touch
the network, and requiring the await was a poor UX.
2018-06-21 21:15:48 +02:00
Lonami Exo
3973755333
Support .name attr in utils.is_type/client.upload_file
...
This means open()'ed files will have their name used properly,
and that you can set b.name = 'somename.jpg' to io.BytesIO()
objects to have them uploaded as images.
2018-06-21 16:31:03 +02:00
Lonami Exo
d8af64e3b9
Clarify/fix get[_input]_entity docstrings
2018-06-21 11:08:14 +02:00
Lonami Exo
5c602d4ba7
Add __str__ to RpcResult/GzipPacked
2018-06-21 09:58:12 +02:00
Lonami Exo
a99fce471a
Fix cancelling a None handle on first connection+error
2018-06-21 09:48:11 +02:00
Lonami Exo
cfa5cd0db2
Fix is_user_authorized always returning True
2018-06-21 09:32:09 +02:00
Lonami Exo
8d5c052fce
Fix TypeError when accessing unexisting sender
2018-06-21 09:26:31 +02:00
Lonami Exo
d6818f25f5
Fix rare iter_dialogs infinite loop
2018-06-20 21:12:47 +02:00
Lonami Exo
9c0a22ddd7
Fix Python 3.5 compatibility
2018-06-20 20:18:16 +02:00
Lonami Exo
9e3f6483e8
Fix pattern= and move pattern_match to events.NewMessage
2018-06-20 20:03:44 +02:00
Lonami Exo
a1477a84bf
Update in-memory updates.State
2018-06-20 19:58:01 +02:00
Lonami Exo
4ab5c7d92d
Fix reconnect sentinel when not reconnecting in send_loop
...
It would cause issues with the debug logs, since it assumes it's
a TLMessage, which have an .obj attribute. Second, the send_loop
is also smarter regarding reconnects (since OSError often occur
due to not being connected at all, namely ConnectionResetError).
2018-06-20 18:19:57 +02:00
Lonami Exo
c8ee0bdca9
Fix socket may be None when closing twice
2018-06-20 17:59:11 +02:00
Lonami Exo
a0eb824e87
Support ignore_migrated in iter_dialogs
2018-06-20 12:03:42 +02:00
Lonami Exo
c893eaaa84
Allow filtering new messages by sender/forwards
2018-06-20 11:58:44 +02:00
Lonami Exo
ad1ab64415
Save last ack to resend in case of bad salt
2018-06-20 11:12:04 +02:00
Lonami Exo
c85ba4accc
Revisit documentation, cross-references and unnecessary indents
2018-06-20 11:06:03 +02:00
Lonami Exo
4e9a84c3b5
Remove underscore from module names
2018-06-18 21:02:42 +02:00
Lonami Exo
262018959f
Process entities from sent requests/updates
2018-06-18 20:44:20 +02:00
Lonami Exo
fbf3bf119c
Separate errors needing regex from those which don't
2018-06-18 19:09:45 +02:00
Lonami Exo
463847ad50
Revisit and remove a few TODOs
2018-06-18 18:46:06 +02:00
Lonami Exo
ebfe8ebf40
Configurable per-client request/connection retries
2018-06-18 18:13:00 +02:00
Lonami Exo
09ea1179ca
Except msg_id KeyError on bad salt/msg
2018-06-18 17:20:31 +02:00
Lonami Exo
3648f7c756
Log outgoing message types and incoming message IDs
2018-06-18 17:14:04 +02:00
Lonami Exo
51d8ea0fa8
Shield disconnected Future in the MTProtoSender instead
2018-06-18 15:55:24 +02:00
Lonami Exo
efc48ee3b0
Shield self.disconnected and log RpcCallFail
2018-06-18 14:28:30 +02:00
Lonami Exo
ee7a44d447
Return an empty list from get_entities_text if no entities
2018-06-18 13:54:09 +02:00
Lonami Exo
3c1d7d2da2
Fix MessageEmpty when searching for messages
2018-06-18 13:48:50 +02:00
Lonami Exo
7641ba2d32
Fix sleep on the wrong indent and handle CancelledError
...
This was causing a huge slow-down every time a request was
received delaying all the subsequent incoming messages too
2018-06-18 13:29:12 +02:00
Lonami Exo
374f5e2aab
Periodically send ping/getState
2018-06-18 13:22:25 +02:00
Lonami Exo
94d6c339c4
Add more logging in the MTProtoSender
2018-06-18 11:29:54 +02:00
Lonami Exo
e36aff51dd
Raise ConnectionError when sending without connection
...
Otherwise the program could potentially block on await client(...)
since this has no timeout (unless asyncio.wait_for() was used) and
would give no further hint that the program was halted there.
2018-06-17 20:25:22 +02:00
Dan Elkouby
d5b349e031
Implement a mechanism to notify of connection failures ( #852 )
2018-06-17 19:29:41 +02:00
Lonami Exo
d9d586171f
Fix MTProtoSender should not send content-related queries
2018-06-17 16:23:22 +02:00
Lonami Exo
145d4b7105
Remove socket fd from the loop reader upon closing
2018-06-17 15:48:26 +02:00
Lonami Exo
aaa7ec757b
Support start() retrying on PasswordHashInvalidError
2018-06-17 14:07:45 +02:00
Lonami Exo
4d1272f1d2
Fix __ is invalid in usernames (cc @Kyle2142)
2018-06-17 12:08:55 +02:00
Lonami Exo
b65cbd8647
Validate to_id when iterating over messages by ID
2018-06-17 11:57:11 +02:00
Lonami Exo
226c35ff8f
Pump up default timeout from 5 to 10s
2018-06-17 11:46:56 +02:00
Lonami Exo
d18ee9ecc5
Handle (re)connection errors more gracefully
2018-06-17 11:41:35 +02:00
Lonami Exo
8086772506
Make sure not to include sentinel in containers
2018-06-16 18:40:08 +02:00
Lonami Exo
bb2cacd525
Fix automatic reconnection by unblocking the send queue
2018-06-16 18:34:36 +02:00
Lonami Exo
56ddaaee6f
Make non-fwded messages sent to yourself outgoing
2018-06-16 17:35:24 +02:00
Lonami Exo
7cfecfaf21
Support pathlib.Path on download/upload
2018-06-16 17:01:20 +02:00
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
Lonami Exo
e2a0de1913
Don't retry forever on TcpClient.connect()
2018-04-25 10:06:11 +02:00
Lonami Exo
387a255221
Faster iter_messages by sleeping only as much as needed
2018-04-25 09:51:50 +02:00
Lonami Exo
ea404c5477
Add update_state table to persist pts and such
2018-04-23 21:16:09 +02:00
Lonami Exo
ab91bc2829
Add missing InputPhoto/Document -> InputMedia autocast
2018-04-23 15:33:44 +02:00
Lonami Exo
f31ca142a3
Support autocast to InputMessage
2018-04-23 11:05:38 +02:00
Lonami Exo
6ecef42ec7
Add search/filter/from_user parameters to iter_messages
2018-04-22 16:30:14 +02:00
Lonami Exo
544651caa7
Retry on RpcCallFailError
2018-04-22 16:30:00 +02:00
Lonami Exo
5dc43276bb
Add missing caption when sending Message with media
2018-04-20 09:44:33 +02:00
Lonami Exo
1c2e9d2f27
Fix reply_to didn't override Message's reply on sending them
2018-04-20 09:36:34 +02:00
Lonami Exo
b0dda777fe
Support omitting the entity on client.edit_message
2018-04-18 10:27:44 +02:00
Yifei Kong
03bebfb600
Fix tiny docstring typo ( #771 )
2018-04-17 13:01:23 +02:00
Lonami Exo
6893359f9d
Fix tiny error in a docstring for #764
2018-04-15 16:21:15 +02:00
Lonami Exo
f9b9fa6e70
Update to v0.18.3
2018-04-15 15:41:11 +02:00
Lonami
ffdfa8f262
Merge pull request #766 from LonamiWebs/tidygenerator
...
Tidy up the telethon-generator package
2018-04-15 13:21:26 +02:00
Lonami Exo
3b7c4fe278
Further TLObject generator clean-up
...
Split everything into several functions, reused some more
common code (like accessing the "real" arguments instead
constantly filtering) and more, like using classmethods
instead staticmethods and then hardcoding the class name.
2018-04-14 20:28:25 +02:00
Jon Besga
0017ce30e6
Set client._authorized after log_out() ( #765 )
2018-04-14 19:15:33 +02:00
Lonami Exo
200d3c0360
Clean-up unused methods and reuse more common utils
2018-04-14 17:22:39 +02:00
Lonami Exo
ace715e059
Don't log broken packets as individual bytes
2018-04-14 15:02:27 +02:00
Lonami Exo
75d37a3870
Handle web pages on .download_media
2018-04-14 13:07:50 +02:00
Lonami Exo
88597f0da8
Don't get full channel on iter_participants unless necessary
2018-04-14 12:08:50 +02:00
Lonami Exo
4da7df6349
Several documentation fixes and additions
2018-04-14 12:03:08 +02:00
Lonami Exo
a13863a4fb
Re-export events.Raw (removed on b7c3f80
)
2018-04-13 17:36:23 +02:00
Lonami Exo
1316e07dca
Add missing InputPeerSelf case to .get_entity()
2018-04-13 13:24:37 +02:00
Lonami Exo
17a2946311
Fix get_input_peer allow_self for custom.Dialog
2018-04-13 13:08:29 +02:00
vegeta1k95
3bf259d6b3
Make TLObjects picklable ( #752 )
2018-04-12 18:02:46 +02:00
vegeta1k95
bd1b0ecdb4
Make RPCError class picklable ( #751 )
2018-04-08 16:48:55 +02:00
Lonami Exo
414fec91f1
Stop using input version on events to just get the ID
2018-04-08 15:55:10 +02:00
Lonami Exo
93b5909be5
Add chat_id-like convenience properties to the events
2018-04-08 14:24:01 +02:00
Jeff
259bb6ace1
Several documentation fixes/additions ( #750 )
2018-04-08 14:15:26 +02:00
Lonami Exo
8e01946957
Fix .start() failing on some terminals
2018-04-08 11:47:18 +02:00
Lonami Exo
5fd6155168
Fix remove_event_handler's loop
2018-04-08 11:22:59 +02:00
Lonami Exo
e69c186782
Support more filter types for convenience ( #745 )
2018-04-07 12:31:30 +02:00
Lonami Exo
3b2d065d35
Simplify .get_input_entity code flow (since 591e34b
)
2018-04-06 19:21:02 +02:00
Lonami Exo
0cd44b245c
Allow auto-casting custom.Dialog into input_entity
2018-04-06 19:11:31 +02:00
Lonami Exo
baa6976a0b
Fix broken links, add more examples and a new section
2018-04-06 19:00:21 +02:00
Lonami Exo
b7c3f80679
Split events into separate files
2018-04-05 20:14:22 +02:00
Lonami Exo
f9f49a893b
Return a single message from client.forward on non-list inputs
2018-04-04 20:58:58 +02:00
Lonami Exo
591e34b491
Change TypeError with ValueError, don't call .get_dialogs()
...
This closes #735 and #736 since now it can be properly handled
from user code, and behave more correctly depending on the situation.
Also the errors provide more information on how to get around it.
2018-04-04 13:35:51 +02:00
Lonami Exo
07a8a73e3e
Support callable parse_mode's
...
This allows to more easily plug in custom parse methods.
2018-04-03 14:23:05 +02:00
Lonami Exo
eabaa3854a
Replace offset with match.start() to allow custom regex
2018-04-03 13:47:40 +02:00
Tanuj
a1448f3da8
Clearer variable names in get_input_entity ( #738 )
2018-04-03 13:05:01 +02:00
Lonami Exo
7bc021bba4
Update to layer 75 (again)
2018-03-30 20:28:07 +02:00
Lonami Exo
500792975e
Handle AUTH_KEY_DUPLICATED on connection
2018-03-30 12:18:18 +02:00
Lonami Exo
2b9babb30f
Handle GzipPacked lost requests & possibly fix reading normal
...
Reading normal "lost" requests didn't .seek(-4) to read the TLObject
again. Now it has been slightly refactored to seek back always and
only seek forward when needed (e.g. rpc error).
2018-03-30 11:50:41 +02:00
Lonami Exo
dede5520dd
Rename .entities -> ._entities from 7e9d19d
to avoid collision
2018-03-29 00:56:05 +02:00
Lonami Exo
395e702586
Make py:obj default Sphinx's role
2018-03-28 16:03:47 +02:00
Lonami Exo
dcb7820c5f
Add a new events.MessageRead
2018-03-28 15:52:55 +02:00
Lonami Exo
1fdf976c04
Update to v0.18.2
2018-03-27 18:02:55 +02:00
Kyle2142
6c9becb1ed
Add edit_2fa function ( #725 )
2018-03-27 17:35:33 +02:00
Lonami Exo
302a823c88
Fix invalid access to .participants on chat forbidden result
2018-03-27 17:15:22 +02:00
Lonami Exo
7b94530bfc
Move me/self check on get_input_entity to the beginning
...
It would otherwise fail since the addition of getting entity
by exact name if someone had 'me' or 'self' as their name.
2018-03-27 11:29:47 +02:00
Lonami Exo
8d652c35a1
Add missing Photo/Document cases to get_input_media
2018-03-27 11:22:31 +02:00
Lonami Exo
ae2abd2ba9
Add __str__/.stringify() to tl.custom for completeness
2018-03-27 11:08:40 +02:00
Lonami Exo
1c9dc8dc63
Fix getting ID on custom Dialog class from dce0fd9
2018-03-24 18:44:13 +01:00
Lonami Exo
790b0d2d23
Guess entity type on positive IDs in events and avoid some RPCs
...
Now specifying a single positive integer ID will add all the types
to the white/blacklist so it can be "guessed". Explicit peers will
always be only that type, and an RPC is avoided (since it was not
needed to begin with).
2018-03-24 18:34:07 +01:00
Lonami Exo
13e59983af
Slightly change docs for events ( #668 )
2018-03-24 12:42:19 +01:00
Lonami Exo
898e550335
Except the right type for get_input_peer ( closes #722 )
2018-03-24 12:09:33 +01:00
Lonami Exo
43c6896481
Add a custom role for TL references and make use of it
2018-03-23 21:42:17 +01:00
Lonami Exo
c6d821910e
Mention that codes can expire immediately
2018-03-22 19:20:35 +01:00
Lonami Exo
021cb21686
Replace custom Box class with a single-item list for args by ref
2018-03-22 19:13:42 +01:00
Lonami Exo
33e908de42
Fix markdown regex not supporting [] inside URLs
2018-03-22 19:02:08 +01:00
Lonami Exo
dce0fd9e03
Add missing documentation for telethon.tl.custom and crosslinks
2018-03-22 19:02:08 +01:00
Jeff
95f368201e
Fix ChatAction not handling all pin events ( #715 )
2018-03-21 10:01:14 +01:00
Lonami Exo
f2407409b3
Fix send_file(force_document=True) for albums ( closes #713 )
2018-03-21 09:46:57 +01:00
Lonami Exo
3550974b71
Fix documentation for events
...
Changing the .__name__ of a class will make it not show in the
generated documentation, so instead we need to use a different
variable.
2018-03-21 09:17:56 +01:00
Lonami Exo
89ae0cb164
Make readthedocs build run without warnings
2018-03-21 08:55:13 +01:00
Lonami Exo
987cf41ec6
Higher timeout and log them as warning if any data was received
...
This might be the cause for "number of retries reached 0" so
more specific logging calls might be useful. If while reading
a response it times out but some data had already been read,
said data will be lost.
The sequence of events that triggered reaching 0 retries was:
- Sending requests with IDs XYZ
- socket.timeout while reading
- Items timed out. Retrying
- Processing RPC result
- Received response for XYZ
- Lost request with ID XYZ
2018-03-18 20:08:00 +01:00
Alex Root Junior
986ddbe600
Fix forwarding messages to channels ( #705 )
2018-03-18 17:23:10 +01:00
Lonami Exo
d379b26339
Fix assignement to wrong variable on ChatAction
2018-03-18 10:24:48 +01:00
Lonami Exo
7825994393
Update to v0.18.1
2018-03-17 17:38:46 +01:00
Lonami Exo
32fd64d655
Remove SQLAlchemy session
2018-03-17 17:38:16 +01:00
Lonami Exo
dc07d65075
Add remove_event_handler and list_event_handlers
2018-03-17 17:08:11 +01:00
Lonami Exo
36b09a9459
.download_file's file is not optional
2018-03-16 09:57:37 +01:00
Lonami Exo
d6c051fd52
Add __str__ and .stringify() to events
2018-03-16 09:54:16 +01:00
Lonami Exo
b20aa0ccc9
Stopping workers should not clear their count (may fix #686 )
2018-03-15 10:30:05 +01:00
Lonami Exo
1e3120b0b6
Bring back report_errors to the constructor
2018-03-15 10:22:21 +01:00
Lonami Exo
3b42bc9991
Slice albums larger than 10 items and allow mixing docs
2018-03-15 10:17:45 +01:00
Lonami Exo
d7ef0f5e09
Stop sending gifs as images
...
This is often not the case, most gifs are animated and when
sent as images inside albums they lose the animation.
2018-03-15 10:13:57 +01:00
Lonami Exo
45b7318f08
Fix Telegram only recognises 3 image filetypes
2018-03-15 09:52:45 +01:00
Lonami Exo
48869f0f4e
Fix MessageEdited ignoring NewMessage constructor arguments
...
These include outgoing/incoming and pattern which are now handled.
2018-03-14 21:09:51 +01:00
Lonami Exo
d5bc3c1a6c
Fix misleading documentation regarding report_errors
2018-03-14 21:05:50 +01:00
Lonami Exo
1ff5826c26
Call .get_dialogs only once on entity not found
2018-03-14 21:01:00 +01:00
Lonami Exo
8ae12fbb70
Return the entire entity from the helper events._get_entity too
2018-03-14 10:32:59 +01:00
Lonami Exo
7e9d19d727
Add known entities to all updates and use them in the events
...
This should reduce the amount of API calls made when getting the
full sender/chat on events (mostly on channels, where Telegram
seems to always send Updates instead only a normal Update).
2018-03-14 10:28:21 +01:00
Lonami Exo
fd309f0407
Add filter parameter to iter_participants and fix search for chats
2018-03-13 13:15:02 +01:00
Lonami Exo
a134336536
Fix ResolveUsernameRequest may return ChannelForbidden
2018-03-13 12:44:24 +01:00
Lonami Exo
751461f0f5
Modify iter_participants to also include .participant info
2018-03-12 10:33:51 +01:00
Lonami Exo
657c771fa0
Fix incorrect participant count on some channels
2018-03-12 09:52:16 +01:00
Lonami Exo
8b1cc4c8cb
Better handle pinned dialogs and limit on .get_dialogs()
2018-03-11 09:55:31 +01:00
Lonami Exo
a596f88497
Fix wrong super() args for events.MessageDeleted ( fix #675 )
2018-03-11 09:48:48 +01:00
Lonami Exo
055aa7fe43
Fix MessageService not handled on .delete_messages ( closes #681 )
2018-03-11 09:43:55 +01:00
Lonami Exo
70ef93a62e
Stop treating image/webp as images as Telegram throws error
2018-03-11 09:38:52 +01:00
Lonami Exo
e088fc3a4e
Add extra safety checks when getting peer ID
2018-03-10 12:13:17 +01:00
Lonami Exo
2fb42772c6
Add .video_note and .gif convenience properties to NewMessage
2018-03-08 20:21:56 +01:00
Lonami Exo
cf650e061e
Avoid editing events.NewMessage that are forwards
2018-03-08 20:18:10 +01:00
Lonami Exo
9d46bb35c8
Rename and reorder some params in Draft for consistency ( #673 )
2018-03-08 13:05:40 +01:00
Lonami Exo
8cefb22e14
Add .text and .raw_text properties to the Draft class ( #673 )
2018-03-08 12:56:20 +01:00
Lonami Exo
6e6d40be18
Implement Draft.send() ( closes #673 )
2018-03-08 12:37:06 +01:00
Lonami Exo
3d49f740df
Use the new client.iter_dialogs() in client.get_input_entity()
2018-03-08 11:48:59 +01:00
Lonami Exo
5673866553
Create client.iter_ versions for all client.get_ methods
...
While doing so, the client.iter_drafts method has been simplified
as it made some unnecessary calls.
client.get_message_history has been shortened to client.get_messages,
and fixes a bug where the limit being zero made it return a tuple.
client.iter_messages also uses a local dictionary for entities so
it should become less big in memory (and possibly faster).
client.get_participants would fail with user entities, returning
only their input version.
2018-03-08 11:44:13 +01:00
Lonami Exo
09f0f86f1e
Add convenience NewMessage attrs to get media of specific types
2018-03-08 10:30:49 +01:00
Lonami Exo
841aed13da
Fix tuple/ternary operator fail on SQLAlchemy session ( #671 )
2018-03-08 10:16:46 +01:00
Lonami Exo
3a3ae75b46
Fix-up bot API style IDs not working on .get_input_entity
2018-03-08 10:12:43 +01:00
Lonami Exo
0f34a9b333
Fix .get_input_entity error message always showing None
2018-03-08 10:08:26 +01:00
Lonami Exo
ce0dee63b1
Support getting any entity by just their positive ID
2018-03-08 10:05:40 +01:00
Lonami Exo
d3d190f36e
Fix-up previous commit overriding .action_message with None
2018-03-07 17:57:54 +01:00
Lonami Exo
801018fa9b
Add respond, reply and delete methods to events.ChatAction
...
Also introduces the new .action_message member.
2018-03-07 17:51:59 +01:00
Lonami Exo
dc99d119c3
Fix events.MessageDeleted always failing due to extra "self."
2018-03-07 17:31:21 +01:00
Lonami Exo
fca4904d0f
Add more logging calls when confirming a request
2018-03-07 11:30:03 +01:00
Lonami Exo
d0bdb7ea3f
Lower message severity when retrying invoke the first time
2018-03-07 11:13:55 +01:00
Lonami Exo
dd6802e032
Support PhotoSize in .download_media ( #669 )
...
This simplifies downloading thumbnails (and any other PhotoSize).
2018-03-07 11:45:37 +01:00
Lonami Exo
e3adec5ea9
Fix caption being None
...
This would later be an empty string with some modifications that
were removed upon upgrading to layer 75, which changed where the
captions are used and their naming.
2018-03-07 09:09:05 +01:00
Lonami Exo
7201482ebd
Support limit=0 on .get_participants to fetch count only
2018-03-06 12:24:37 +01:00
Lonami Exo
4f880dcd56
Replace BLOB with LargeBinary in sqlalchemy.py ( closes #670 )
2018-03-06 12:09:37 +01:00
Lonami Exo
fe627d1970
Update to v0.18
2018-03-04 12:03:09 +01:00
Lonami Exo
82c034dc56
Add forward_to on events.NewMessage
2018-03-04 00:32:26 +01:00
Lonami Exo
3a13f5f02f
Implement a forward_messages convenience method
2018-03-04 00:27:21 +01:00
Lonami Exo
363e751f48
Fix UserList not being considered a list
2018-03-04 00:23:13 +01:00
Lonami Exo
4de811b8cb
Expose the client on events as a public property
2018-03-03 23:55:35 +01:00
Lonami Exo
458d220af9
Fix users not being set for some events.ChatAction and properties
2018-03-03 23:41:27 +01:00
Lonami Exo
1c8bf44713
Add input user versions to events.ChatAction
2018-03-03 23:31:06 +01:00
Lonami Exo
c40a3ca77c
Split MessageChanged into MessageEdited and MessageDeleted
2018-03-03 23:23:14 +01:00
Lonami Exo
854c42b7ef
Add a file= parameter to client.send_message()
2018-03-03 23:12:05 +01:00
Lonami Exo
0f72aa8f94
Fix set union
2018-03-03 17:08:49 +01:00
Lonami Exo
96a1f580a4
Remove useless if condition on the memory session
2018-03-03 17:01:06 +01:00
Lonami Exo
81f8b7f76e
Add back _entity_values_to_row
2018-03-03 16:48:57 +01:00
Lonami Exo
57f50889b0
Fix non-aggressive get_participants and inverted condition
2018-03-03 15:12:48 +01:00
Lonami Exo
0e0e7f1c9e
Avoid unnecessary "or 0" in the session classes
2018-03-03 14:59:30 +01:00
Lonami Exo
6060b3430c
Fix sqlite session clone causing integrity error
...
Triggered on migrations, the dc id would be None.
2018-03-03 14:02:48 +01:00
Lonami Exo
67a782a6d7
Fix wrong peer type being used when not found in the session
2018-03-03 12:22:02 +01:00
Lonami Exo
a9c83250a1
Small clean-up of the session classes
2018-03-03 12:51:35 +01:00
Lonami Exo
1e420f7f91
Document the new abstract session better
2018-03-03 12:13:42 +01:00
Lonami
30f7a49263
Abstract Session class (merge #657 from tulir/sessions)
2018-03-03 11:33:47 +01:00
Lonami Exo
74bffd2ae3
Support multiple captions when sending albums
2018-03-02 21:33:49 +01:00
Lonami Exo
2e31a686e8
Upgrade to layer 75
...
Captions are now "messages" and also support message entities.
2018-03-02 21:28:33 +01:00
Tulir Asokan
290afd85fc
Fix AlchemySession session table updating
2018-03-02 21:58:16 +02:00
Tulir Asokan
47cdcda9e2
Move device info out of Session
2018-03-02 21:05:09 +02:00
Tulir Asokan
5e88b21aa9
Use single quotes
2018-03-02 20:42:51 +02:00
Tulir Asokan
f805914c80
Handle SQLAlchemy import errors
2018-03-02 20:40:03 +02:00
Tulir Asokan
c1a8896faa
Fix SQLAlchemy implementation
2018-03-02 20:14:11 +02:00
Tulir Asokan
dc2229fdba
Move salt and ID to base session and remove unused imports
2018-03-02 18:39:04 +02:00
Lonami Exo
a7f98fd3cc
Ignore bad file descriptor while closing
2018-03-02 17:26:42 +01:00
Tulir Asokan
e1d7cc541f
Add setters for non-persistent values that apps might change
2018-03-02 18:23:18 +02:00
Tulir Asokan
03d4ab3765
Fix create_engine check
2018-03-02 13:25:40 +02:00
Tulir Asokan
07c2fc50ec
Add SQLAlchemy-based session
2018-03-02 13:22:30 +02:00
Tulir Asokan
118d9b10e8
Add more abstraction
2018-03-02 13:20:11 +02:00
Tulir Asokan
d9a73744a4
Remove old sqlite session variables and clone code
2018-03-02 12:36:39 +02:00
Tulir Asokan
df3faaeb7f
Fix abstract Session method ordering
2018-03-02 11:11:59 +02:00
Lonami Exo
4c7224e56a
Fix n might be None when stopping workers
2018-03-02 10:10:59 +01:00
Tulir Asokan
4c64d53e71
Move non-persistent stuff to base Session class
2018-03-02 11:10:11 +02:00
Tulir Asokan
c5e6f7e265
Split Session into three parts and make a module for sessions
2018-03-01 23:40:28 +02:00
Lonami Exo
f09ab6c6b6
Fix-up 771c573
to properly stop background update workers
...
The "special" StopIteration object didn't actually make any sense.
Instead looping forever, workers now loop while there are workers,
so that they stop looping once the count is cleared.
Dummy values are still inserted so that they don't need to timeout
on the queue before exiting (these values are None) so in essence,
this keeps the best of both of worlds.
2018-03-01 20:13:21 +01:00
Lonami Exo
3a3f221bd1
Look in all dialogs when getting entities by peer ID
2018-03-01 20:03:51 +01:00
Lonami Exo
771c573db1
Better attempt at joining update worker threads
2018-03-01 13:31:39 +01:00
Joscha Götzer
835ff51e25
Multiple small changes/fixed typos to docs/error messages ( #623 )
2018-03-01 13:21:28 +01:00
Joscha Götzer
3184641549
Allow access to events' pattern match ( #654 )
2018-03-01 00:15:30 +01:00
Lonami Exo
3655df50dc
Postpone events resolution
2018-02-28 21:09:05 +01:00
Lonami Exo
3afd7dca84
Invoke multiple getParticipant's at the same time ( #580 )
2018-02-28 17:10:44 +01:00
Lonami Exo
057c6a0b12
Support getting more than 10k members on .get_participants()
...
Discussed on #580 , original PR made on #639 .
2018-02-28 13:24:44 +01:00
Lonami Exo
229cd78df0
Fix markdown's URL regex not acceping newlines
2018-02-27 14:10:02 +01:00
Lonami Exo
d5832e4f3b
Fix time offset failing if system time was ahead of time
...
While the offset was working, the last message ID was never reset,
so it would always pick an higher message ID (safety check), which
completely defeated the purpose of negative time offsets. Should
close #496 .
2018-02-27 11:43:42 +01:00
Joscha Götzer
0b662f3b04
Support stopping propagation of events ( #622 )
2018-02-27 11:30:42 +01:00
Lucas Yuji Suguinoshita Aciole
29f10f2771
Fix named arguments after kwargs ( #646 )
...
In Python3, you're unable to send named parameters after **kwargs
* Use single quotes
2018-02-27 10:05:27 +01:00
Lonami Exo
8d1b6629cb
Sending open()'ed files would make their name the entire path
2018-02-26 14:14:44 +01:00
Lonami Exo
5a54e2279f
Avoid relying on .__iter__ to tell iterators apart
...
.send_file() would fail with stream objects (those from open())
since they are iterable, and asserting that they weren't bytes
or str was not enough.
2018-02-26 14:12:21 +01:00
Lonami Exo
6f16aeb553
Add logging calls on the TcpClient
2018-02-26 13:41:07 +01:00
Lonami Exo
9604161c91
Fix incoming private messages not working with whitelists
...
For some reason this was only happening with bots and not
actual private messages. The fix doesn't seem to affect
previous behaviour with actual users in private messages.
2018-02-26 12:15:53 +01:00
Lonami Exo
3b0ab7794b
Get name attribute from streams instead always 'unnamed'
2018-02-25 20:35:55 +01:00
Lonami Exo
623c1bd7d1
Add missing parameters to TelegramClient.send_voice_note
2018-02-25 20:34:40 +01:00
Lonami Exo
098602ca13
Let events.Raw.resolve() be a no-op
2018-02-25 10:36:53 +01:00
Lonami Exo
cfc5ecfded
Fix tiny bug regarding .get_me(input_peer=True) crashing events
2018-02-25 10:35:39 +01:00
Lonami Exo
9ef75e5070
Allow specifying no event type to default to events.Raw
2018-02-24 18:25:22 +01:00
Lonami Exo
e5aecca79c
Update to v0.17.4
2018-02-24 18:08:14 +01:00
Lonami Exo
3301bf3ff6
Fix voice notes default filename being "None - None.oga"
2018-02-24 17:42:32 +01:00
Kyle2142
f9cec54c39
Add .get_participants() convenience method ( #639 )
...
Closes #363 and #380 .
2018-02-23 21:20:32 +01:00
Lonami Exo
a353679796
Fix downloading from another DC using wrong auth the first time
2018-02-23 13:13:39 +01:00
Lonami Exo
005a8f0a7f
Fix .send_file() not respecting MessageMedia captions
2018-02-23 12:10:07 +01:00
Lonami Exo
cda5e59e86
Make .send_message() accept another Message as input
2018-02-23 12:07:57 +01:00
Lonami Exo
448a04a7c5
Stop using InputPeerSelf() on events and special case edit()
...
Used to fail on the chat with your own (where messages are
"incoming" instead outgoing). Now the ID of the chat and
sender are compared to achieve the same effect. Fixes #632 .
2018-02-22 21:01:18 +01:00
Lonami Exo
f13a7e4afd
Allow getting the input peer for yourself and cache it
...
Warm-up for #632 , which needs this information accessible.
2018-02-22 20:37:56 +01:00
Lonami Exo
359cdcd772
Handle more parsing username cases ( closes #630 )
2018-02-22 10:27:12 +01:00
Lonami Exo
7f35ed59c6
Fix infinite recursion on .get_entity by exact name
2018-02-20 17:30:01 +01:00
Dmitry Bukhta
0731a1d698
Raise ProxyConnectionError instead looping forever ( #621 )
...
We shouldn't try reconnecting when using a proxy if what's
unavailable is the proxy server (and not Telegram servers).
2018-02-20 17:05:02 +01:00
Jannik
ea0da8fc0e
Add pattern argument on the NewMessage event ( #620 )
2018-02-20 15:55:02 +01:00
Lonami Exo
4050d1ca00
Support getting entities by exact name/title match
2018-02-19 21:05:39 +01:00
Lonami Exo
c31635cc34
Further validate the username on parse_username
2018-02-19 21:03:33 +01:00
Lonami Exo
39621ceae9
Use req_pq_multi instead req_pq when creating an auth_key
2018-02-19 20:31:47 +01:00
Lonami Exo
bf086f3e80
Fix UpdateDeleteMessages doesn't have .channel_id ( #619 )
2018-02-19 20:23:52 +01:00
Lonami Exo
1eeedc613b
Fix sending byte strings as files not working
2018-02-19 15:29:32 +01:00
Lonami Exo
b136074340
Update to v0.17.3
2018-02-19 15:29:02 +01:00
Lonami Exo
89df481ae4
Make MessageChanged.Event inherit NewMessage.Event
2018-02-18 14:07:13 +01:00
Lonami Exo
b93e1b5f50
Add add_event_handler and deprecate add_update_handler
2018-02-18 13:29:05 +01:00
Lonami Exo
1179c9e21b
Fix start not asking for password if needed
2018-02-18 12:17:02 +01:00
Lonami Exo
33fd6895d3
Use hachoir to determine audio and video metadata if possible
...
Closes #611
2018-02-17 13:01:12 +01:00
Lonami Exo
2bfe86cda1
Fix bot_token could not be specified alone on .start()
2018-02-17 12:32:30 +01:00
Lonami Exo
d581589313
Add missing UpdateShortChatMessage case on events.NewMessage
2018-02-17 11:40:38 +01:00
Lonami Exo
6d993af338
Move events chats and blacklist_chats into the base, reuse code
2018-02-17 11:29:16 +01:00
Lonami Exo
8718cf0e7e
Reuse turning chats into a set of IDs and handle self case
2018-02-17 10:41:43 +01:00
Lonami Exo
83d9d1d78e
Fix markdown parser not inverting delimiters dict
2018-02-16 20:30:19 +01:00
Lonami Exo
030f292203
Dump libssl bindings in favour of the new optional cryptg module
2018-02-16 18:24:44 +01:00
Lonami Exo
c11aefa95b
Fix message entities being ignored by edit_message
2018-02-16 13:42:12 +01:00
Lonami Exo
8194288797
Update to v0.17.2
2018-02-15 22:43:07 +01:00
Lonami Exo
75d99fbb53
Fix HTML entity parsing failing when needing surrogates
2018-02-15 11:52:46 +01:00
Lonami Exo
178643d3a1
Periodically send getState even without disconnect ( 341fb38
)
...
After some more tests, even if the server doesn't drop the
connection, it might also just stop sending updates at all.
2018-02-15 11:41:32 +01:00
Lonami Exo
196275e9c8
Add edit and delete shorthand methods to events.NewMessage
2018-02-15 11:35:12 +01:00
Lonami Exo
62c057a058
Add edit_message convenience method and refactor to accomodate it
2018-02-15 11:19:34 +01:00
Lonami Exo
80f918956a
Revert "official apps must be obfuscated" ( 29471f3
)
...
It didn't really make any sense and @danog keeps changing it.
2018-02-15 10:02:12 +01:00
Dmitry D. Chernov
55bcc29ae0
Errors: Fix passing 'self' to the constructors of the superclasses
...
This is necessary only if the superclass name is specified explicitly instead of super() call.
2018-02-14 17:09:22 +10:00
Lonami Exo
08b9d7c4ef
Add more logic to better retrieve input_sender on events
2018-02-13 10:24:35 +01:00
Lonami Exo
c83638ed0e
Add further logging calls to better spot lost requests
2018-02-12 13:40:00 +01:00
Lonami Exo
9abeefac7f
Send video files as video by default instead as document ( #601 )
2018-02-12 10:33:51 +01:00
Lonami Exo
0633e204c2
Fix whitelisting multiple chats on events not working
2018-02-11 10:30:45 +01:00
Lonami Exo
eca1e8ec87
Default to markdown parse mode on send_message
...
This is consistent with official clients and also provide
the expected result when replying to NewMessage events.
2018-02-10 10:45:55 +01:00
Lonami Exo
7d8d86c5f1
Support inline mentions (bot API style or username/phone)
2018-02-10 10:30:31 +01:00
Lonami Exo
6240677831
Fix sign up method not accepting integer codes
2018-02-09 19:39:20 +01:00
Lonami Exo
6261affaa1
Update to v0.17.1
2018-02-09 17:16:28 +01:00
Lonami Exo
14389a0ef2
Better document the events module
2018-02-09 15:56:42 +01:00
Lonami Exo
5167754368
Fix input_sender events' property not using cached value
2018-02-09 13:10:02 +01:00
Lonami Exo
f5eda72329
Add a new Raw Event
2018-02-09 13:08:09 +01:00
Lonami Exo
8786a52257
Add a new MessageChanged Event
2018-02-09 13:05:34 +01:00
Lonami Exo
ffe826b35f
Add a new UserUpdate Event
2018-02-09 12:45:40 +01:00
Lonami Exo
379c775558
Add a new ChatAction Event
2018-02-09 11:37:17 +01:00
Lonami Exo
510bbf0fc8
Create a more reusable Event base class
2018-02-09 11:36:41 +01:00
Lonami Exo
91ba50174a
Provide easier access to media through NewMessage event
2018-02-08 19:43:15 +01:00
Lonami Exo
c79fbe451f
Fix NewMessage event not dropping MessageService
2018-02-07 14:06:36 +01:00
Lonami Exo
2e0a8d6bce
Add respond and reply methods to the NewMessage event
2018-02-07 13:55:41 +01:00
Lonami Exo
dc43757cff
Don't access NewMessage properties when building the event
2018-02-07 13:55:25 +01:00
Lonami Exo
9c09233b4f
Make NewMessage's input chat/sender actual Input* if possible
2018-02-07 13:45:17 +01:00
Lonami Exo
ef837b1a53
Add a NewMessage event to handle incoming messages
2018-02-07 10:42:40 +01:00
Lonami Exo
5ec984dd82
Allow adding events with the client.on decorator
2018-02-07 10:41:58 +01:00
Lonami Exo
06bc761a5b
Update to v0.17
2018-02-03 16:03:17 +01:00
Lonami Exo
fd08d53253
Trust the server will not send duplicates
...
This change was also suggested by the test on the previous commit.
2018-02-03 15:42:43 +01:00
Lonami Exo
341fb38136
Invoke getState after the server kicks us idling for updates
...
For some reason, the server seems to kick us after 1024 items from
the network are received. Tested with the following code, 1022
updates were received, after BadServerSalt, NewSessionCreated and
MsgsAck:
client = TelegramClient(..., spawn_read_thread=False)
client.connect(_sync_updates=False)
sender = client._sender
client = None
while True:
try:
sender.receive(None)
except TimeoutError:
pass
except ConnectionResetError:
sender.connect()
If one were to run this code after being kicked no further items
will be retrieved and it will always timeout. Invoking a ping has
no effect either. Invoking some "high level" request like getState
seems to do the trick.
2018-02-03 15:39:37 +01:00
Lonami Exo
eefd37c2d7
Stop calling .disconnect() from .__del__()
...
It was causing some strange behaviour with the synchronized Queue
used by the UpdateState class. Calling .get() with any timeout
would block forever. Perhaps something else got released when
the script ended and then any call would block forever, thus the
thread never joining.
2018-02-03 12:15:38 +01:00
Lonami Exo
2ffe2b71dc
Except OSError with errno.WSAEACCES when connecting
...
"OSError: [WinError 10013] An attempt was made to access a
socket in a way forbidden by its access permissions."
2018-02-03 11:44:05 +01:00
Lonami Exo
cf21808118
Raise error on .get_entity() on non-joined invite link
2018-02-02 17:24:12 +01:00
Lonami Exo
fbd53e2126
Override TLObject's __eq__ and __ne__ methods
2018-02-01 12:10:03 +01:00
Lonami Exo
add122bfe7
Support signing up through .start()
2018-02-01 10:12:57 +01:00
Lonami Exo
d5a91c7273
Don't set session to None on .log_out()
2018-02-01 09:39:41 +01:00
Birger Jarl
c8bbbe3e3c
Save session data when migrating from JSON ( #570 )
2018-01-31 21:01:53 +01:00
Lonami Exo
bf56d32118
Add missing FutureSalts response special case ( #81 )
2018-01-30 18:32:42 +01:00
Lonami Exo
700b4c3169
Fix-up #565 with some rewording/behaviour changes
...
Such as not waiting unless strictly needed and better wording.
2018-01-27 21:37:57 +01:00
Matteo
067006d248
Add batch_size and wait_time to get_message_history ( #565 )
2018-01-27 21:29:38 +01:00
frizzlywitch
3b8365f871
Remove square braces from IPv6 addresses ( #561 )
2018-01-26 14:38:13 +01:00
Lonami Exo
43a3f40527
Properly close the sqlite3 connection ( #560 )
2018-01-26 09:59:49 +01:00
Lonami Exo
5c2dfc17a8
Make timeout logging message debug to scare people less
2018-01-25 18:44:21 +01:00
Lonami Exo
4a83784fe8
Simplify TLObject.pretty_format since Telegram returns no dicts
2018-01-25 09:51:12 +01:00
Lonami Exo
2873dcf1c6
Add '_' key to TLObject's .to_dict() and remove recursive param
...
Closes #559
2018-01-25 09:44:07 +01:00
Lonami Exo
db698858e0
Except TypeNotFoundError on ._invoke()
2018-01-23 22:26:19 +01:00
Lonami Exo
6c73538bd4
Fix time_offset not being used at all after BadMsgNotification
...
Telegram would refuse to reply any further unless the message ID
had the correct time (causing some behaviour like .connect()
never connecting, due to the first request being sent always
failing). The fix was to use time_offset when calculating the
message ID, while this was right, it wasn't in use.
2018-01-23 11:39:43 +01:00
Lonami Exo
32b92b32a7
Update .send_file() documentation (for f0eb41b
)
2018-01-23 12:13:03 +01:00
Lonami Exo
58d90e7e34
Fix .download_media() not accepting Document
2018-01-23 12:10:23 +01:00
Lonami Exo
81c95b5a60
Fix recursive .get_input_media() forgetting parameters
2018-01-23 12:04:35 +01:00
Lonami Exo
f0eb41b902
Accept message/media on .send_file, remove redundancy off README
2018-01-23 11:59:35 +01:00
Tulir Asokan
5f2f04c6c2
Add HTML parse mode ( #554 )
2018-01-22 10:06:11 +01:00
Lonami Exo
abe26625e6
Add missing ResolvedPeer, InputNotifyPeer, TopPeer cases
2018-01-21 11:04:46 +01:00
Lonami Exo
f1371c3999
Early return from Session.get_input_entity() if Input* given
2018-01-20 19:39:48 +01:00
Lonami Exo
86816a3bdf
Add missing InputChannel case on .get_input_peer()
2018-01-20 19:29:05 +01:00
Lonami Exo
b716c4fe67
Several documentation enhancements and build warnings fixes
...
- Made the documentation even more friendly towards newbies.
- Eased the usage of methods like get history which now set
a default empty message for message actions and vice versa.
- Fixed some docstring documentations too.
- Updated the old normal docs/ to link back and forth RTD.
- Fixed the version of the documentation, now auto-loaded.
2018-01-20 11:47:17 +01:00
Lonami Exo
4d4e81e609
Fix cyclic imports on Python 3.4 by moving Session one level up
2018-01-19 22:55:28 +01:00
Lonami Exo
519c113b58
Update to v0.16.2
2018-01-19 21:17:57 +01:00
Lonami Exo
e3c56b0d98
Reduce autocast overhead as much as possible
...
Rationale: if the user is doing things right, the penalty for
being friendly (i.e. autocasting to the right version, like
User -> InputPeerUser), should be as little as possible.
Removing the redundant type() call to access .SUBCLASS_OF_ID
and assuming the user provided a TLObject (through excepting
whenever the attribute is not available) is x2 and x4 times
faster respectively.
Of course, this is a micro-optimization, but I still consider
it's good to benefit users doing things right or avoiding
redundant calls.
2018-01-19 13:00:17 +01:00
Lonami Exo
33e50aaee1
Reuse .on_response/.__str__/.stringify, override iff necessary
2018-01-19 12:12:52 +01:00
Lonami Exo
f6d98a61cf
Add stub .get_input_entity() to TelegramBareClient
...
.resolve() calls should now work even if the subclass isn't in use.
2018-01-19 11:52:44 +01:00
Lonami Exo
1c9fa76ede
Add new method to .resolve() parameters instead on init
...
TLObject's __init__ used to call utils.get_input_* methods and
similar to auto-cast things like User into InputPeerUser as
required. Now there's a custom .resolve() method for this purpose
with several advantages:
- Old behaviour still works, autocasts work like usual.
- A request can be constructed and later modified, before the
autocast only occured on the constructor but now while invoking.
- This allows us to not only use the utils module but also the
client, so it's even possible to use usernames or phone numbers
for things that require an InputPeer. This actually assumes
the TelegramClient subclass is being used and not the bare version
which would fail when calling .get_input_peer().
2018-01-19 11:47:45 +01:00
Lonami Exo
b546c02210
Return a custom class for sized InputFile instead extra attrs
2018-01-18 20:09:59 +01:00
Lonami Exo
0e4611a593
Properly implement InputPhoto/InputDocument caching
...
Since uploading a file is done on the TelegramClient, and the
InputFiles are only valid for a short period of time, it only
makes sense to cache the sent media instead (which should not
expire). The problem is the MD5 is only needed when uploading
the file.
The solution is to allow this method to check for the wanted
cache, and if available, return an instance of that, so to
preserve the flexibility of both options (always InputFile,
or the cached InputPhoto/InputDocument) instead reuploading.
2018-01-18 19:36:47 +01:00
Lonami Exo
7e707dbbd9
Fix using enum on sqlite instead its value
2018-01-18 19:35:46 +01:00
Lonami Exo
1a3feec481
Move upload/download file methods to the TelegramClient
2018-01-18 13:55:03 +01:00
Lonami Exo
55efb2b104
Use a different schema for file cache which actually persists
...
Caching the inputFile values would not persist accross several
days so the cache was nearly unnecessary. Saving the id/hash of
the actual inputMedia sent is a much better/persistent idea.
2018-01-18 09:52:39 +01:00
Lonami Exo
428abebed8
Fix sending albums failing on invalid cache
2018-01-17 13:29:08 +01:00
Lonami Exo
bfe9378054
Fix .send_file failing with strings (as they are iterable)
2018-01-17 13:28:56 +01:00
Lonami Exo
fde0d60f72
Update old interactive example ( #546 )
2018-01-16 18:36:50 +01:00
Lonami Exo
49f204c955
Fix .get_input_media using None caption and missing venue type
2018-01-16 14:04:12 +01:00
Lonami Exo
36e2101910
Allow sending multiple files as album ( closes #455 )
2018-01-15 18:15:30 +01:00
Lonami Exo
494c90af69
Fix uploaded files cache may have expired
2018-01-15 12:36:46 +01:00
Lonami Exo
00859d52c3
Ask for the phone on start only if required
2018-01-15 09:48:37 +01:00
Lonami Exo
8be7e76b74
Use the idling state instead checking if read thread is present
...
This caused some multithreading bugs, for instance, when there was
no read thread and the main thread was idling, and there were some
update workers. Several threads would try to read from the socket
at the same time (since there's no lock for reading), causing
reads to be corrupted and receiving "invalid packet lengths"
from the network. Closes #538 .
2018-01-14 21:20:22 +01:00
Lonami Exo
c5e969d585
Add more useful logging on invalid packet length received
2018-01-13 19:26:45 +01:00
Lonami Exo
0d429f55c5
Fix asking for phone on .start()
2018-01-13 12:00:53 +01:00
Lonami Exo
77301378f8
Make .start() more friendly by asking phone if not given
...
Ping #530
2018-01-13 11:55:12 +01:00
Lonami Exo
1fd20ace2c
Update to v0.16.1
2018-01-11 22:18:58 +01:00
Lonami Exo
77ef659cbf
Clearer error when invoking without calling .connect() ( #532 )
2018-01-11 15:42:27 +01:00
Joscha Götzer
80f81fe69a
Added .start() convenience method to quickly connect/authorize ( #528 )
2018-01-11 12:43:46 +01:00
Lonami Exo
eaef392a9b
Add and except missing FLOOD_TEST_PHONE_WAIT_X error
2018-01-10 17:34:34 +01:00
Lonami Exo
8038971753
Add clear_mentions parameter to .send_read_acknowledge()
2018-01-10 12:50:49 +01:00
Lonami Exo
045f7f5643
Assert hash is not None when migrating from JSON sessions
2018-01-10 10:46:43 +01:00
Lonami Exo
01820c9943
Associate phone code hash with phone (so phone can change)
2018-01-08 14:18:36 +01:00
Lonami Exo
c12af5e412
Remove references to the wiki
2018-01-08 14:04:04 +01:00
Nikola Vlahović
0c3216cb36
Fix channel check issue on send_read_acknowledge ( #526 )
2018-01-08 12:46:47 +01:00