diff --git a/backend/src/userbot/modules/jobs/handlers/fetch_avatar.py b/backend/src/userbot/modules/jobs/handlers/fetch_avatar.py index 8177e11..1a3df80 100644 --- a/backend/src/userbot/modules/jobs/handlers/fetch_avatar.py +++ b/backend/src/userbot/modules/jobs/handlers/fetch_avatar.py @@ -1,5 +1,12 @@ from pyrogram import Client -from pyrogram.errors import FileIdInvalid, FileReferenceExpired, FileReferenceInvalid +from pyrogram.errors import ( + ChannelInvalid, + ChannelPrivate, + FileIdInvalid, + FileReferenceExpired, + FileReferenceInvalid, + PeerIdInvalid, +) from pyrogram.types import ChatPhoto from userbot.modules.avatars.repository import get_avatar_file, mark_avatar_downloaded @@ -8,10 +15,14 @@ from userbot.modules.jobs.context import JobContext from userbot.modules.jobs.registry import register STALE_FILE_ID = (FileIdInvalid, FileReferenceExpired, FileReferenceInvalid) +UNKNOWN_OWNER = (PeerIdInvalid, ChannelInvalid, ChannelPrivate) async def _fresh_file_id(client: Client, owner_id: int, unique_id: str) -> str | None: - chat = await client.get_chat(owner_id) + try: + chat = await client.get_chat(owner_id) + except UNKNOWN_OWNER: + return None photo = chat.photo if chat else None if photo and photo.big_photo_unique_id == unique_id: return photo.big_file_id