Lonami Exo
01291922c9
Proper usage of messagebox in update handling loop
2022-01-22 13:27:00 +01:00
Lonami Exo
f6df5d377c
Begin reworking update handling
...
Use a fixed-size queue instead of a callback to deal with updates.
Port the message box and entity cache from grammers to start off
with a clean design.
Temporarily get rid of other cruft such as automatic pings or old
catch up implementation.
2022-01-18 19:46:19 +01:00
Lonami Exo
3afabdd7c0
Remove auto-reconnect callback
...
It's an abstraction leak.
The client should know to refetch updates if a long period passed
without them on its own.
2022-01-18 18:21:56 +01:00
Lonami Exo
7142734fb4
Remove StateCache and EntityCache
2022-01-18 18:19:14 +01:00
Lonami Exo
8fc08a0c96
Remove remaining self._all_dcs uses
2022-01-18 18:16:27 +01:00
Lonami Exo
f8264abb5a
Clean-up client's __init__ and remove entity cache
...
Entity cache uses are removed. It was a source of ever-growing memory
usage that has to be reworked. This affects everything that tried to
obtain an input entity, input sender or input chat (such as the
SenderGetter or calls to _get_entity_pair). Input entities need to be
reworked in any case.
Its removal also affects the automatic cache of any raw API request.
Raise last error parameter is removed, and its behaviour made default.
The connection type parameter has been removed, since users really have
no need to change it.
A few more attributes have been made private, since users should not
mess with those.
2022-01-18 12:56:17 +01:00
Lonami Exo
85a9c13129
Fix login info did not persist
2022-01-17 11:50:28 +01:00
Lonami Exo
3f68510393
Fix EntityCache not reading the new EntityType
2022-01-17 11:41:08 +01:00
Lonami Exo
1f1f67b0a6
Remove unused _CacheType
2022-01-16 14:04:26 +01:00
Lonami Exo
4f4c7040d1
Stop using futures as one-shot channels
...
Instead, use a single-item queue. This is asyncio.run-friendly,
even when the client is initialized outside of async def.
2022-01-16 13:59:43 +01:00
Lonami Exo
a62627534e
Get rid of client.loop
...
Instead, use the asyncio-intended way of implicit loop.
2022-01-16 13:51:23 +01:00
Lonami Exo
6eadc8aed8
Simplify accepted values in forward, delete and mark read
...
Forward and delete are meant to delete lists.
Now only lists are supported, which should not be an issue
as message.forward_to and message.delete both exist.
mark_read really only works with one message at a time,
so list support was removed for it, as well as the now
redundant max_id.
2022-01-16 13:03:00 +01:00
Lonami Exo
1e779a91b7
Add progress_callback to download_profile_photo
2022-01-16 12:42:05 +01:00
Lonami Exo
dc0f978b59
Support await on any client.action
2022-01-16 12:40:09 +01:00
Lonami Exo
a3513d5232
Remove broken force_sms
2022-01-16 12:19:07 +01:00
Lonami Exo
a95393648f
Remove custom enum parsing
...
Python enums can already be parsed out-of-the-box.
2022-01-16 12:06:42 +01:00
Lonami Exo
fe941cb940
Address immutability issues on connect
2022-01-15 13:41:23 +01:00
Lonami Exo
f5f0c84553
Completely overhaul connections and transports
...
Reduce abstraction leaks. Now the transport can hold any state,
rather than just the tag. It's also responsible to initialize on
the first connection, and they can be cleanly reset.
asyncio connections are no longer used, in favour of raw sockets,
which should avoid some annoyances.
For the time being, more obscure transport modes have been removed,
as well as proxy support, until further cleaning is done.
2022-01-15 13:33:50 +01:00
Lonami Exo
02703e3753
Fix circular import regarding ignore_takeout
2022-01-15 13:18:53 +01:00
Lonami Exo
7524b652c8
Unify setting session state
2022-01-15 11:22:33 +01:00
Lonami Exo
be0da9b183
Update takeout to use less hacks
2022-01-09 14:41:10 +01:00
Lonami Exo
691160bd92
Remove 3.7 workarounds
2022-01-09 13:03:02 +01:00
Lonami Exo
be6508dc5d
Use frozen dataclasses for session types
...
Now that 3.7 is the minimum version,
we can use dataclasses.
2022-01-09 13:01:16 +01:00
Lonami Exo
7ea30961ae
Bump minimum required Python version to 3.7
2022-01-09 13:00:45 +01:00
Lonami Exo
721c803af9
Stop opening webbrowser on clicking URL buttons
2022-01-09 12:23:06 +01:00
Lonami Exo
232e76e73a
Stop setting the sender to be the channel when missing
2022-01-09 12:20:58 +01:00
Lonami Exo
010ee0813a
Rename send_read_acknowledge
2022-01-09 12:18:15 +01:00
Lonami Exo
1b15a34f69
Remove parse_mode from the client
2022-01-09 12:18:15 +01:00
Lonami Exo
e2132d5f7c
Change the way thumb size selection works
2022-01-09 12:18:15 +01:00
Lonami Exo
03de901b7f
Add enum for typing action
2022-01-09 12:18:15 +01:00
Lonami Exo
dbe66bf805
Remove TLObject.to_json
2022-01-09 12:18:15 +01:00
Lonami Exo
b566e59036
Add stringify back to custom Message
2022-01-09 12:18:15 +01:00
Hackintosh 5
8de375323e
Cleanup events code
2021-12-11 21:46:23 +01:00
penn5
8d1379f3d4
Remove _finish_init from chataction.py
...
This method was removed in 334a847de7
2021-12-11 21:46:23 +01:00
penn5
d3ef3c69c8
Remove _finish_init from newmessage.py
...
This method was removed in 334a847de7
2021-12-11 21:46:23 +01:00
penn5
dea424fdec
Fix typo in messages.py
2021-12-11 21:46:23 +01:00
Reinier Romero Mir
f9643bf737
Add missing async when downloading from URL ( #3222 )
2021-12-01 20:28:55 +01:00
Lonami Exo
bda4259815
Bump to v1.24
2021-12-01 19:08:47 +01:00
Lonami Exo
c9ecd61f7e
Fix peer ID check to work with higher IDs
...
This commit is taken from
5f4bfe6b9b
2021-12-01 19:03:59 +01:00
Lonami Exo
a5dce81d0f
Actually fill parameters in Message._as_input
2021-10-12 18:01:34 +02:00
Lonami Exo
72fc8f6808
Continue work on Message sending overhaul
2021-10-12 17:59:30 +02:00
Lonami Exo
3853f98e5f
Begin work into making Message a viable way to send them
2021-10-09 12:01:45 +02:00
Lonami Exo
5a8c066ff7
Fix generated RpcError were no longer formatting the value
2021-09-28 21:07:15 +02:00
Lonami Exo
1c15375ea4
Fix get_participants was monkey-patching User
...
It no longer can do that. User has __slots__.
2021-09-28 21:06:00 +02:00
Lonami Exo
197a1ca996
Fix some modules were public when they should not have been
2021-09-26 19:58:42 +02:00
Lonami Exo
a9e1a574ae
Fix limit was no longer defaulting to empty tuple
...
Introduced by 5a44510e2d
.
When forwarding the calls, both signantures should match.
2021-09-26 18:37:09 +02:00
Lonami Exo
6f602a203e
Fix custom.Forward not using the new __slots__
2021-09-26 18:33:03 +02:00
Lonami Exo
e3b1dc2059
Make to_dict dynamic
2021-09-26 18:30:08 +02:00
Lonami Exo
86c47a2771
Use __slots__ in all generated classes
2021-09-26 17:52:16 +02:00
Lonami Exo
8bd4835eb2
Remove build_reply_markup from the client
2021-09-26 17:24:18 +02:00
Lonami Exo
6fec2a68c5
Use a proper markdown parser
2021-09-25 20:33:25 +02:00
Lonami Exo
1762f554df
Make events subpackage private
2021-09-24 21:11:50 +02:00
Lonami Exo
5a44510e2d
Forward client calls to impl in a more straightforward manner
2021-09-24 20:46:33 +02:00
Lonami Exo
ce292b36ab
Fix GROUP check in EntityCache
2021-09-24 20:12:23 +02:00
Lonami Exo
debde6e856
Completely overhaul errors to be generated dynamically
2021-09-24 20:12:00 +02:00
Lonami Exo
cfe47a0434
Correct privacy on sessions module
2021-09-19 18:24:16 +02:00
Lonami Exo
26f6c62ce4
Init update state cache to empty in init
2021-09-19 18:17:37 +02:00
Lonami Exo
3b1660669e
Remove self input user and bot cache from client
...
The session_state cache can be used instead.
This does put get_me with input_peer at a disadvantage, but I expect
this is not used all that often, since 'me' does just fine.
2021-09-19 18:16:12 +02:00
Lonami Exo
cc3d4145d8
Update and persist session state on successful login
2021-09-19 18:15:19 +02:00
Lonami Exo
3f13357d0f
Fix SQLiteSession.set_state did not always clear old state
...
For instance, when we stored a user_id of 0 because we did not login yet.
2021-09-19 18:02:08 +02:00
Lonami Exo
016347474a
Populate current user on connection if it's not yet saved
2021-09-19 18:01:01 +02:00
Lonami Exo
35a6d1e294
Fix SessionState did not store takeout_id
2021-09-19 17:59:35 +02:00
Lonami Exo
545e9d69ce
Cache session_state and all_dcs right after connect
2021-09-19 17:51:05 +02:00
Lonami Exo
93dd2a186a
Refresh DC info on connection
2021-09-19 17:41:40 +02:00
Lonami Exo
58c0a5bc24
Make IPv4 mandatory in session files
2021-09-19 17:30:31 +02:00
Lonami Exo
d60ebbe6ea
Fix _get_peer was relying on old utils.resolve_id
2021-09-19 17:21:11 +02:00
Lonami Exo
9479e215fb
Fix remaining upgraded uses of the session to work correctly
2021-09-19 17:08:51 +02:00
Lonami Exo
d33402f02e
Fix _update_loop could get stuck in an infinite loop with no feedback
2021-09-19 17:08:34 +02:00
Lonami Exo
81b4957d9b
Update code to deal with the new sessions
2021-09-19 16:38:11 +02:00
Lonami Exo
1f5722c925
Add missing session/types file
2021-09-19 16:37:53 +02:00
Lonami Exo
29d3c3fd7c
Fix outdated LAYER usage in _create_exported_sender
2021-09-19 15:56:28 +02:00
Lonami Exo
684f640b60
Completely overhaul sessions
2021-09-19 13:45:19 +02:00
Lonami Exo
0b54fa7a25
Make edit_message parameters more consistent
2021-09-18 16:54:54 +02:00
Lonami Exo
4321b97e98
No longer run send_code_request from sign_in
2021-09-18 16:36:11 +02:00
Lonami Exo
431a9309e3
Remove mark from peer_id
2021-09-18 16:29:45 +02:00
Lonami Exo
9f3bb52e4e
Possibly fix _get_response_message for UpdateMessagePoll
2021-09-18 16:10:01 +02:00
Lonami Exo
48c14df957
Remove client.download_file
2021-09-18 16:05:07 +02:00
Lonami Exo
e524a74b84
Remove client.disconnected property
2021-09-18 15:41:04 +02:00
Lonami Exo
bf61dd32af
Change the way iter_participants filters are specified
2021-09-18 14:16:19 +02:00
Lonami Exo
8114fb6c9b
Stop checking fwd_from or not out in message.edit
2021-09-18 13:34:21 +02:00
Lonami Exo
af81899bdc
Don't automatically start the client via async-with
2021-09-18 13:30:39 +02:00
Lonami Exo
ba8cdc80da
Officially remove resolve_invite_link
2021-09-18 13:10:31 +02:00
Lonami Exo
9af8ec8cce
Officially remove bot_file_id support
2021-09-18 13:06:52 +02:00
Lonami Exo
3d36bb7b93
Change the way connection modes are specified
2021-09-18 12:49:44 +02:00
Lonami Exo
783c1771ab
Fix remaining uses of old types namespace
2021-09-17 21:05:09 +02:00
Lonami Exo
dc29a95cef
Change list of buttons to show up as rows and not cols
2021-09-17 21:03:47 +02:00
Lonami Exo
3bc46e8072
Remove broken CdnDecrypter
2021-09-17 20:55:27 +02:00
Lonami Exo
b3c23e343a
Return deleted count from delete_messages
2021-09-17 20:36:40 +02:00
Lonami Exo
40ff7c6bdf
Document default behaviour of limit
2021-09-17 20:19:23 +02:00
Lonami Exo
6e9ad9e31c
Return correct total participant count when a filter is desired
2021-09-17 20:16:01 +02:00
Lonami Exo
1036c3cb52
Remove the aggressive hack from get_participants
2021-09-17 20:13:05 +02:00
Lonami Exo
be3ed894c6
Make changes to the default limit in client.get_list methods
2021-09-17 20:04:57 +02:00
Lonami Exo
e9f9994f4a
Unify client.iter_* methods
2021-09-17 19:35:10 +02:00
Lonami Exo
943ad892f7
Address remaining uses of the Request suffix with raw API
2021-09-13 21:00:31 +02:00
Lonami Exo
334a847de7
Make custom.Message functional
2021-09-13 20:39:41 +02:00
Lonami Exo
499fc9f603
Move alltlobjects.py and fix imports
2021-09-12 16:58:06 +02:00
Lonami Exo
5fd2a017b2
Fix imports
2021-09-12 16:23:55 +02:00
Lonami Exo
604c3de070
Move custom and core objects to a new subpackage
...
This should keep it cleaner, as now _tl is fully auto-generated.
2021-09-12 16:05:56 +02:00
Lonami Exo
c08d724baa
Delete _tl.patched backward-compatibility hack
2021-09-12 15:52:09 +02:00
Lonami Exo
e9b97b5e4a
Fix client method calls and reading TLObjects
2021-09-12 15:47:05 +02:00