/* * 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 as any, queueId, onlyCache); else if(isWebDocument(media)) downloadOptions = getWebDocumentDownloadOptions(media); downloadOptions.downloadId = options.downloadId; const fileName = getDownloadFileNameFromOptions(downloadOptions); return {fileName, downloadOptions}; }