Lonami Exo
badefcec48
Add new action method to easily send chat actions like typing
2019-04-13 10:37:23 +02:00
Lonami Exo
fadc343821
Fix catch_up pts loading and remember pts per update
2019-04-13 09:12:59 +02:00
Lonami Exo
73742633bd
Smarter grouping behaviour when forwarding messages
2019-04-11 15:18:15 +02:00
Lonami Exo
cf3a4bc658
Expose grouped parameter in forward_messages (default True)
2019-04-11 12:47:14 +02:00
Lonami Exo
9965cda968
Save pts and date in a tuple for immutability
...
This way it is easy and cheap to copy the two required values
to all incoming updates in case we need to getDifference since
the previous pts/date to fetch entities.
This is still a work in progress.
2019-04-10 21:10:34 +04:00
Lonami Exo
bec0fa414e
Add missing files for the previous commit
2019-04-09 16:55:33 +04:00
Lonami Exo
b32d8307ec
Fix sending albums not returning the sent messages ( #1151 )
2019-04-09 16:48:58 +04:00
Lonami Exo
9598e1877c
Fix _get_response_message when integers are given #1151
2019-04-09 16:31:50 +04:00
Lonami Exo
2fb560624d
Fix seeking on strings from c0828f5
when uploading files
2019-04-09 09:29:06 +04:00
Lonami Exo
ff8349ff3f
Prevent download_profile_photo from downloading arbitrary files
...
First of all, because it shouldn't be doing that. Second, it was
buggy and was passing the tuple returned by get_input_location to
download_file which doesn't accept tuples (instead it should be
passed the photo object so that download_file could return dc_id
and input file location itself).
2019-04-03 09:51:33 +02:00
Lonami Exo
22fcdeef7f
Better get_input_entity code flow
...
Plenty of unnecessary exceptions were being raised and caught when
the input parameters were already correct. Furthermore, since
8abc7ade22
, the in-disk cache was no
longer being used (so using usernames always reached out to memory).
2019-04-03 09:41:36 +02:00
Lonami
f95933c246
Fix downloading contacts ( #1147 )
2019-04-02 14:33:41 +02:00
Lonami Exo
41e4d0f788
Let forward_messages work with messages from different chats
...
Previously it would take the first chat it found and use the IDs
of all messages, even if they belonged to different chats, resulting
in unexpected messages to be forwarded.
Another solution would be to check that all the chats are the same,
but this solves the issue more nicely and makes it more powerful.
2019-04-02 10:46:37 +02:00
Lonami Exo
a9ab3e1211
Update forward_messages to use _get_response_message
2019-04-02 10:44:42 +02:00
Lonami Exo
c0828f590f
Fix resize if needed not seeking back for image = bytes
2019-04-02 08:59:35 +02:00
Lonami Exo
3398bee77a
Handle disconnection errors more gracefully in background tasks
2019-04-01 08:46:07 +02:00
Lonami Exo
5377169db2
Call catch_up on reconnect (WIP for #1125 )
2019-03-28 12:32:02 +01:00
Lonami Exo
39d9531483
Implement _load_entities for all events
...
Follow-up of c902428af1
This means that now input_chat (and even chat_id) and
similar can be safely used, without needing get_input
2019-03-28 10:47:15 +01:00
Lonami Exo
c902428af1
getDifference if the event's chat was not found (WIP)
2019-03-27 16:21:17 +01:00
Lonami Exo
8abc7ade22
Use the new in-memory entity cache
...
This should avoid a disk access every time an input entity
is needed, which is very often. Another step for #1141 .
2019-03-26 11:39:25 +01:00
Lonami Exo
4d35e8c80f
Create a new in-memory cache for entities ( #1141 )
2019-03-26 11:27:52 +01:00
Lonami Exo
e71638abf1
Document that now incoming private messages can be revoked
2019-03-25 08:46:44 +01:00
Lonami Exo
0b4d64947b
Fix CallbackQuery.edit for messages via inline queries
2019-03-23 19:25:45 +01:00
Lonami Exo
9eabca6987
Fix run_until_disconnected's call to disconnect
2019-03-22 18:20:10 +01:00
Lonami Exo
347db79979
run_until_disconnected() should disconnect() on finally
2019-03-21 12:25:19 +01:00
Lonami Exo
04ba2e1fc7
Revert disconnect() to be async again ( #1133 )
...
It's the only way to properly clean all background tasks,
which the library makes heavy use for in MTProto/Connection
send and receive loops.
Some parts of the code even relied on the fact that it was
asynchronous (it used to return a future so you could await
it and not be breaking).
It's automatically syncified to reduce the damage of being
a breaking change.
2019-03-21 12:21:00 +01:00
Lonami Exo
8f302bcdb0
Don't disconnect() on __del__ ( #1133 )
...
Destructors are not guaranteed to run. Despite having good
intentions (saving entities even if the user forgets), it
should be the user's responsability to cleanly close the
client under any circumstances.
2019-03-21 11:40:57 +01:00
Lonami Exo
f6c4ab6f41
Workaround #1124 (Telegram ignoring offset_date)
2019-03-18 17:36:06 +01:00
Lonami Exo
7c48857d0c
Update docs for send_file/timeouts and add new known error
2019-03-18 17:34:48 +01:00
Lonami
05e5becd78
Merge pull request #1126 from seriyps/mtproto-proxy-other-protocols
...
Implement different MTProto proxy protocols
2019-03-13 18:26:19 +01:00
Lonami Exo
598b9f25e1
Fix DialogsIter not passing the client to the built objects
2019-03-13 09:12:44 +01:00
Lonami Exo
9d5344e90d
Fix-up file to media calls from edit (from 3d72c10
)
2019-03-12 22:18:57 +01:00
Сергей Прохоров
fef580c24b
Revert non-related change
2019-03-12 01:28:59 +01:00
Lonami Exo
1b703e905c
Don't set self._state when checking if logged in
...
This essentially made catch_up useless after .start().
cc #1125 since this affects catch_up.
2019-03-11 09:04:08 +01:00
Lonami Exo
8884015dae
Clarify some docstrings
2019-03-10 13:29:34 +01:00
Сергей Прохоров
b873aa67cc
Implement different mtproto proxy protocols; refactor obfuscated2
2019-03-10 03:26:24 +01:00
Lonami Exo
3d72c10ea5
Reduce calls to utils.is_image
2019-03-06 09:38:17 +01:00
Lonami Exo
758556cd30
Fix upload_file not seeking streams back
...
This would cause issues in _cache_media since utils.is_image fails
in the second pass (it respects the stream's position, and the user
may rightfully pass a stream that should be read only from one pos).
2019-03-06 09:24:50 +01:00
Lonami Exo
fcfebf75a3
Prevent pillow from closing non-exclusive fps ( #1121 )
2019-03-06 09:14:06 +01:00
Lonami Exo
6799295115
Fix iter_participants in non-channels
2019-03-02 21:17:36 +01:00
Lonami Exo
df534585e9
Actually fix ids= not being a list, bump 1.6.1
2019-02-28 08:31:28 +01:00
Lonami Exo
2681dc09bb
Fix iter_messages with ids= not being a list
2019-02-28 08:26:37 +01:00
Lonami Exo
05d174d4ce
Update documentation, errors and add TODOs
2019-02-27 19:30:12 +01:00
Lonami Exo
6b50152bb3
Use constants for chunk sizes, remove irrelevant TODO
2019-02-27 13:07:25 +01:00
Lonami Exo
d02d0e2d5e
Handle negative limits gracefully in async generators
...
We rely on >= 0 for setting the batch size to use (which must
be valid), so it makes sense to make negative limits equal 0.
This is similar to how asyncio.sleep(negative) sleeps 0 seconds,
despite the fact that time.sleep(negative) fails.
2019-02-27 13:01:04 +01:00
Lonami Exo
d508e58d49
Remove the "private" _total parameter
2019-02-27 12:59:50 +01:00
Lonami Exo
bf71e49fcc
Remove batch_size parameter from iter_messages
...
It was only useful for testing purposes, and no other methods
exposed this kind of parameter (but they still use it).
2019-02-27 12:57:54 +01:00
Lonami Exo
b9133567af
Remove weird map chr range from aggressive iter_participants
2019-02-27 12:51:09 +01:00
Lonami Exo
c73b8eda26
Simplify filling RequestIter's buffer
2019-02-27 11:25:35 +01:00
Lonami Exo
40ded93c7c
Use RequestIter in chat methods
2019-02-27 11:12:05 +01:00
Lonami Exo
968da5f72d
Use RequestIter in the dialog methods
2019-02-27 10:38:50 +01:00
Lonami Exo
5b8e6531fa
Add method to collect RequestIter into TotalList
2019-02-27 10:15:32 +01:00
Lonami Exo
6d6c1917bc
Implement iterator over message by IDs
2019-02-27 10:04:12 +01:00
Lonami Exo
60606b9994
Don't make iter_messages a coroutine function
2019-02-27 09:49:14 +01:00
Lonami Exo
35dc46ffb0
Fix searching messages in reverse
2019-02-27 09:48:47 +01:00
Lonami Exo
e3991fadd5
Fix updating offset
2019-02-27 09:37:12 +01:00
Lonami Exo
f765f73fa3
Fix setting batch size
2019-02-27 09:32:33 +01:00
Lonami Exo
e2f44ddbea
Make iter_messages use a common message iterator
2019-02-27 09:31:15 +01:00
Lonami Exo
19f38d6733
Implement iter_messages with search
2019-02-26 21:04:46 +01:00
Lonami Exo
36eb1b1009
Create a new RequestIter ABC to deal with iter methods
...
This should make it easier to maintain these methods, increase
reusability, and get rid of the async_generator dependency.
In the future, people could use this to more easily deal with
raw API themselves.
2019-02-26 20:26:40 +01:00
Lonami Exo
1e4a12d2f7
Clean up iter_messages with reverse=True
2019-02-26 09:42:28 +01:00
Lonami Exo
5b098a909a
Cleanup converting to input media in send album
2019-02-25 18:25:49 +01:00
Lonami Exo
8e36c0002b
Fix sending albums with bot file IDs
2019-02-25 18:23:39 +01:00
Lonami Exo
0934f71c02
Update to layer 95
2019-02-21 12:40:47 +01:00
Lonami Exo
96270bdc18
Fix sending PNGs without alpha channel, edit size typo
2019-02-19 17:48:27 +01:00
Lonami Exo
6db60627e6
Clearer error on send_file(chat, invalid type)
2019-02-19 16:41:51 +01:00
Lonami Exo
41bfb8ae52
Fix photo resizing not working for images with alpha channels
2019-02-14 12:12:17 +01:00
Lonami Exo
d1c755809d
Except RpcMcgetFailError as call fail and sleep on server errors
...
This one in particular may happen when iterating over messages,
perhaps more likely to happen if the group was created in a
different data center.
A small sleep of a few seconds also greatly increases the
chances of the error going away.
2019-02-14 11:00:37 +01:00
nosanity
2e544270cd
Fix login failure due to wrong argument name ( #1109 )
2019-02-14 16:46:57 +10:00
Lonami Exo
559a40c7ea
Fix get_input_media for InputFile
...
It was actually using FileLocation, which had the invalid expected
type for what was being returned. Instead it should have been this
other type.
In addition, more parameters are passed so that the method can have
all the information it needs to correctly cast the type.
2019-02-13 12:33:11 +01:00
Lonami Exo
5c85f830bd
Further document automatic photo resizing
2019-02-13 09:58:02 +01:00
Lonami Exo
fd24f7087e
Resize photos when sending files if needed
2019-02-13 09:50:00 +01:00
Lonami Exo
47d9de98ed
Raise ImportError and not ValueError when sqlite3 is missing
...
Excepting ValueError when creating the SQLiteSession could hide
other errors (e.g. using a newer session file on an older version
of the library). Instead, the original error is raised, as if
sqlite3 was being imported within its __init__ method.
2019-02-13 08:52:54 +01:00
Lonami Exo
4899788d92
Expose phone and phone_code_hash in sign_up
2019-02-12 11:44:36 +01:00
Lonami Exo
bf11bbd8a6
Support sending bytes/stream as photos (improved _get_extension)
...
Letting _get_extension work for photos even when the only information
available is a stream or a few bytes allows sending arbitrary bytes
as photos, if force_document was not set to True explicitly.
2019-02-12 11:33:06 +01:00
Lonami Exo
1007e19172
Fix get_peer_id not working with InputPeerSelf
2019-02-11 10:40:35 +01:00
Dmitry D. Chernov
3b4d00564d
Detail docstring about the 'proxy' parameter in TelegramClient
2019-02-11 18:54:35 +10:00
Dmitry D. Chernov
45d0ba9e2f
Initial implementation of MTProxy support ( #1107 )
2019-02-11 00:16:46 +01:00
Dmitry D. Chernov
9a98d41a2c
Improve TakeoutClient proxy and takeout functionality ( #1106 )
2019-02-10 11:10:41 +01:00
Dmitry D. Chernov
274fa72a8c
Correctly proxy __class__ in TakeoutClient for #1103 ( #1105 )
2019-02-07 16:51:16 +01:00
Lonami Exo
abd26af0ad
Update misleading error message
2019-02-07 10:16:03 +01:00
Dmitry D. Chernov
c8f16a4e89
Fix a couple of inconsistencies in the public interface ( #1102 )
...
* Create `_NOT_A_REQUEST` when needed. Currently, modifications
in the raised exception would be "global".
* `retries` parameters were actually attempts. This has been fixed
to actually be the amount of retries, so 0 now means don't retry.
* Helper function to deal with retries instead of using a range with
different styles every time.
2019-02-06 19:41:45 +01:00
Lonami Exo
c2c8a3caeb
Saner timeouts for conversation ( #1099 )
2019-01-31 11:11:20 +01:00
Lonami Exo
8492300780
Fix search in private chats when from_user was not given
2019-01-31 11:11:20 +01:00
Lonami Exo
10cd61d2f9
Add missing timezone info in important places
...
Things like SQLAlchemy work correctly only for timezone-aware datetimes.
The returned TLObjects all have them, but those that are manually created
were missing them, so serializing the state into SQLAlchemy sessions failed.
2019-01-24 11:16:40 +01:00
Kirill
747caf1652
Support Path-like values for thumb in _file_to_media ( #1095 )
2019-01-22 18:52:53 +01:00
Lonami Exo
bb5c1f24c6
Update to layer 93
2019-01-21 20:09:13 +01:00
Lonami Exo
8f44364c6c
Add supports_streaming to send_file and update docs/errors
2019-01-21 19:47:17 +01:00
Lonami Exo
b0883148f5
Document more RPC errors
...
These two occur when replying to an inline query with a photo and
InputBotInlineMessageMediaAuto empty message, and passing URLs to
PNGs that may not be accessible (i.e. 403 from pixiv).
2019-01-17 16:51:50 +01:00
Lonami Exo
09e58c4e53
Add more missing loggers parameters #1089
2019-01-15 11:09:08 +01:00
Lonami Exo
51f0bf5d84
Fully support email in edit_2fa
2019-01-14 13:57:07 +01:00
Lonami Exo
5ac88f764d
Fix and update links in the documentation
2019-01-12 13:06:14 +01:00
Lonami Exo
fbf7f75b00
Fix send_message with buttons not always returning ReplyMarkup
2019-01-12 12:53:21 +01:00
Lonami Exo
ae4d4ba3ef
Fix-up missing loggers from f271316
2019-01-12 12:15:29 +01:00
Tulir Asokan
f271316d7d
Make logger fully configurable ( #1087 )
2019-01-11 15:52:30 +01:00
Lonami Exo
ca2c8687c8
Expect UserEmpty on get_input_entity
2019-01-08 10:58:58 +01:00
Lonami Exo
0a147d5b95
Add new takeout method
2019-01-05 17:18:40 +01:00
Lonami Exo
1544577757
Don't raise inside __del__ ( #1073 )
2019-01-04 11:26:57 +01:00
Lonami Exo
8c0250f775
Locally check dialog's offset date ( #1043 )
...
Telegram ignores the parameter if it's alone.
2019-01-03 22:35:07 +01:00
Lonami Exo
c51a17bf9a
Actually make AdminLogEvent work
...
Ideally this would have been tested before release one commit ago.
2019-01-03 22:25:50 +01:00
Lonami Exo
eda8d0dbc8
Support configuring the reply markup through buttons
2019-01-03 19:03:47 +01:00
Lonami Exo
4ccabaf422
Add friendly method to get admin log ( #952 )
2019-01-03 13:09:59 +01:00
Lonami Exo
f1157b8fd1
Return downloaded bytes when file=bytes
2018-12-27 19:05:52 +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
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
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
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
7ee7b43547
Be explicit that phone numbers only work if in your contacts
2018-12-15 12:04:36 +01:00
Lonami Exo
f9fc433c0f
Better catch_up behaviour when invalid states are present
2018-12-06 16:07:11 +01:00
Lonami Exo
424079aa12
Fix pts initialized as -1 not being considered
2018-12-04 21:07:18 +01:00
Lonami Exo
9a6f4d35f2
Fix crash on get_messages(ids=InputMessageReplyTo)
2018-11-29 14:19:56 +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
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
cdbd1f6193
Fix valid auth_key never being saved after switching DC
2018-11-03 18:53:26 +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
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
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
a2bae8374e
Fix .get_entity('me') not working from c31635c
( #1024 )
2018-10-19 16:57:46 +02:00
Lonami Exo
945b34b103
Set MTProtoSender.auth_key on its creation
2018-10-19 13:56:11 +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
34cefed9ff
Except BotMethodInvalidError on getContacts
2018-10-15 18:42:35 +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
32c884d543
Revert d392939
and use empty tuple as a sentinel value
2018-10-08 11:33:56 +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
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
aa3f26263c
Fix timeout not accepting timedelta
2018-10-05 14:06:15 +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
cf7e5d5592
Set auth_key on connection
2018-10-05 13:26:44 +02:00