from __future__ import annotations from typing import TYPE_CHECKING, Any, Dict from ..types import File from .base import Request, TelegramMethod if TYPE_CHECKING: from ..client.bot import Bot class GetFile(TelegramMethod[File]): """ Use this method to get basic info about a file and prepare it for downloading. For the moment, bots can download files of up to 20MB in size. On success, a :class:`aiogram.types.file.File` object is returned. The file can then be downloaded via the link :code:`https://api.telegram.org/file/bot/`, where :code:`` is taken from the response. It is guaranteed that the link will be valid for at least 1 hour. When the link expires, a new one can be requested by calling :class:`aiogram.methods.get_file.GetFile` again. **Note:** This function may not preserve the original file name and MIME type. You should save the file's MIME type and name (if available) when the File object is received. Source: https://core.telegram.org/bots/api#getfile """ __returning__ = File file_id: str """File identifier to get info about""" def build_request(self, bot: Bot) -> Request: data: Dict[str, Any] = self.dict() return Request(method="getFile", data=data)