/* * https://github.com/morethanwords/tweb * Copyright (C) 2019-2021 Eduard Kuzmenko * https://github.com/morethanwords/tweb/blob/master/LICENSE */ import type { DownloadMediaOptions, DownloadOptions } from "../../../mtproto/apiFileManager"; import getDocumentDownloadOptions from "../docs/getDocumentDownloadOptions"; import getPhotoDownloadOptions from "../photos/getPhotoDownloadOptions"; import getWebDocumentDownloadOptions from "../webDocs/getWebDocumentDownloadOptions"; import isWebDocument from "../webDocs/isWebDocument"; import getDownloadFileNameFromOptions from "./getDownloadFileNameFromOptions"; export default function getDownloadMediaDetails(options: DownloadMediaOptions) { const {media, thumb, queueId, onlyCache} = options; let downloadOptions: DownloadOptions; if(media._ === 'document') downloadOptions = getDocumentDownloadOptions(media, thumb as any, queueId, onlyCache); else if(media._ === 'photo') downloadOptions = getPhotoDownloadOptions(media, thumb, queueId, onlyCache); else if(isWebDocument(media)) downloadOptions = getWebDocumentDownloadOptions(media); downloadOptions.downloadId = options.downloadId; const fileName = getDownloadFileNameFromOptions(downloadOptions); return {fileName, downloadOptions}; }