Open lcipria opened 2 months ago
Most RPC errors come directly from Telegram, and this one is no exception. So I don't think the library will be able to "fix" this.
I don't have plans to look into this any time soon, but it sounds like you've already dug into the code a bit, so you're welcome to experiment calling https://tl.telethon.dev/methods/upload/get_file.html directly and see if it can be made work.
See this https://github.com/LonamiWebs/Telethon/issues/3199
Requirements are slightly different for offset
than ones that stated. You will need to use something like my example function from this Issue (pad_request_size
) and then truncate result to your desired offset.
to be honest i wrapped the method like this:
def __iter_download(self, file, offset, limit, request_size):
n = 0
for chunk in self.client.iter_download(file = file, offset = offset, request_size = request_size):
yield chunk
if (n := n+1) >= limit:
break
and it works for me...
I guess there's some dark magic involving _load_next_chunk during _request?
P.S. by not manually set "limit", in my case, it will be automatically be set to 37 and the call will be executed.
Code that causes the issue
client.iter_download(file = message, limit = 1, offset = 983040, request_size = 131072)
Expected behavior
iterate for 1 chunk containing the 131072 bytes after the first 983040 from the file in the message
Actual behavior
telethon.errors.rpcerrorlist.LimitInvalidError: An invalid limit was provided.
Traceback
Telethon version
1.36.0
Python version
3.10.12
Operating system (including distribution name and version)
Ubuntu 22.04.4 LTS
Other details
as documentation:
P.S. using
offset = 1048576
it worksclient.iter_download(file = message, limit = 1, offset = 1048576, request_size = 131072)
Checklist
pip install -U https://github.com/LonamiWebs/Telethon/archive/v1.zip
and triggered the bug in the latest version.