fix(userbot): drop stale media sessions and survive download timeouts
This commit is contained in:
1 parent
cf277c56cf
commit
9c12628304
6 files changed
+83
-24
No files matched your search
@@ -1,10 +1,9 @@
|
||||
from io import BytesIO
|
||||
|
||||
from pyrogram import Client
|
||||
from pyrogram.errors import FileIdInvalid, FileReferenceExpired, FileReferenceInvalid
|
||||
from pyrogram.types import Photo
|
||||
|
||||
from userbot.modules.avatars.repository import get_avatar_file, mark_avatar_downloaded
|
||||
from userbot.modules.download import download_bytes
|
||||
from userbot.modules.jobs.context import JobContext
|
||||
from userbot.modules.jobs.registry import register
|
||||
|
||||
@@ -29,13 +28,12 @@ async def _download(
|
||||
client: Client, owner_id: int, unique_id: str, file_id: str
|
||||
) -> bytes | None:
|
||||
try:
|
||||
buffer = await client.download_media(file_id, in_memory=True)
|
||||
return await download_bytes(client, file_id)
|
||||
except STALE_FILE_ID:
|
||||
fresh = await _fresh_file_id(client, owner_id, unique_id)
|
||||
if fresh is None:
|
||||
return None
|
||||
buffer = await client.download_media(fresh, in_memory=True)
|
||||
return buffer.getvalue() if isinstance(buffer, BytesIO) else None
|
||||
return await download_bytes(client, fresh)
|
||||
|
||||
|
||||
@register("fetch_avatar")
|
||||
|
||||
Reference in new issue
Block a user