/* * https://github.com/morethanwords/tweb * Copyright (C) 2019-2021 Eduard Kuzmenko * https://github.com/morethanwords/tweb/blob/master/LICENSE */ import type { State } from "../config/state"; import rootScope from "../lib/rootScope"; export type ChatAutoDownloadSettings = { photo: number, video: number, file: number }; export default async function getAutoDownloadSettingsByPeerId(peerId: PeerId): Promise { let type: keyof State['settings']['autoDownload']; let photoSizeMax = 0, videoSizeMax = 0, fileSizeMax = 0; const settings = rootScope.settings; const appPeersManager = rootScope.managers.appPeersManager; if(!settings.autoDownloadNew.pFlags.disabled && peerId) { if(peerId.isUser()) { if(await appPeersManager.isContact(peerId)) { type = 'contacts'; } else { type = 'private'; } } else if(await appPeersManager.isBroadcast(peerId)) { type = 'channels'; } else { type = 'groups'; } if(settings.autoDownload.photo[type]) photoSizeMax = settings.autoDownloadNew.photo_size_max; if(settings.autoDownload.video[type]) videoSizeMax = settings.autoDownloadNew.video_size_max; if(settings.autoDownload.file[type]) fileSizeMax = settings.autoDownloadNew.file_size_max; } return { photo: photoSizeMax, video: videoSizeMax, file: fileSizeMax }; }