using OF_DL.Models; using OF_DL.Models.Entities.Common; using ArchivedEntities = OF_DL.Models.Entities.Archived; using OF_DL.Models.Post; using OF_DL.Models.Purchased; using OF_DL.Models.Streams; using MessageEntities = OF_DL.Models.Entities.Messages; namespace OF_DL.Services; public interface IDownloadService { Task CalculateTotalFileSize(List urls); Task ProcessMediaDownload(string folder, long media_id, string api_type, string url, string path, string serverFileName, string resolvedFileName, string extension, IProgressReporter progressReporter); Task DownloadArchivedMedia(string url, string folder, long media_id, string api_type, IProgressReporter progressReporter, string? filenameFormat, ArchivedEntities.ListItem? messageInfo, ArchivedEntities.Medium? messageMedia, Author? author, Dictionary users); Task DownloadArchivedPostDRMVideo(string policy, string signature, string kvp, string url, string decryptionKey, string folder, DateTime lastModified, long media_id, string api_type, IProgressReporter progressReporter, string? filenameFormat, ArchivedEntities.ListItem? postInfo, ArchivedEntities.Medium? postMedia, Author? author, Dictionary users); Task DownloadPostDRMVideo(string policy, string signature, string kvp, string url, string decryptionKey, string folder, DateTime lastModified, long media_id, string api_type, IProgressReporter progressReporter, string filenameFormat, SinglePost postInfo, SinglePost.Medium postMedia, SinglePost.Author author, Dictionary users); Task DownloadPostDRMVideo(string policy, string signature, string kvp, string url, string decryptionKey, string folder, DateTime lastModified, long media_id, string api_type, IProgressReporter progressReporter, string? filenameFormat, Post.List? postInfo, Post.Medium? postMedia, Post.Author? author, Dictionary users); Task DownloadAvatarHeader(string? avatarUrl, string? headerUrl, string folder, string username); Task DownloadMessageDRMVideo(string policy, string signature, string kvp, string url, string decryptionKey, string folder, DateTime lastModified, long media_id, string api_type, IProgressReporter progressReporter, string? filenameFormat, MessageEntities.ListItem? messageInfo, MessageEntities.Medium? messageMedia, FromUser? fromUser, Dictionary users); Task DownloadMessageMedia(string url, string folder, long media_id, string api_type, IProgressReporter progressReporter, string? filenameFormat, MessageEntities.ListItem? messageInfo, MessageEntities.Medium? messageMedia, FromUser? fromUser, Dictionary users); Task DownloadPostMedia(string url, string folder, long media_id, string api_type, IProgressReporter progressReporter, string? filenameFormat, Post.List? postInfo, Post.Medium? postMedia, Post.Author? author, Dictionary users); Task DownloadPostMedia(string url, string folder, long media_id, string api_type, IProgressReporter progressReporter, string? filenameFormat, SinglePost? postInfo, SinglePost.Medium? postMedia, SinglePost.Author? author, Dictionary users); Task DownloadPurchasedMedia(string url, string folder, long media_id, string api_type, IProgressReporter progressReporter, string? filenameFormat, Purchased.List? messageInfo, MessageEntities.Medium? messageMedia, Purchased.FromUser? fromUser, Dictionary users); Task DownloadSinglePurchasedMedia(string url, string folder, long media_id, string api_type, IProgressReporter progressReporter, string? filenameFormat, MessageEntities.SingleMessage? messageInfo, MessageEntities.Medium? messageMedia, FromUser? fromUser, Dictionary users); Task DownloadPurchasedMessageDRMVideo(string policy, string signature, string kvp, string url, string decryptionKey, string folder, DateTime lastModified, long media_id, string api_type, IProgressReporter progressReporter, string? filenameFormat, Purchased.List? messageInfo, MessageEntities.Medium? messageMedia, Purchased.FromUser? fromUser, Dictionary users); Task DownloadSinglePurchasedMessageDRMVideo(string policy, string signature, string kvp, string url, string decryptionKey, string folder, DateTime lastModified, long media_id, string api_type, IProgressReporter progressReporter, string? filenameFormat, MessageEntities.SingleMessage? messageInfo, MessageEntities.Medium? messageMedia, FromUser? fromUser, Dictionary users); Task DownloadPurchasedPostDRMVideo(string policy, string signature, string kvp, string url, string decryptionKey, string folder, DateTime lastModified, long media_id, string api_type, IProgressReporter progressReporter, string? filenameFormat, Purchased.List? postInfo, MessageEntities.Medium? postMedia, Purchased.FromUser? fromUser, Dictionary users); Task DownloadPurchasedPostMedia(string url, string folder, long media_id, string api_type, IProgressReporter progressReporter, string? filenameFormat, Purchased.List? messageInfo, MessageEntities.Medium? messageMedia, Purchased.FromUser? fromUser, Dictionary users); Task DownloadStoryMedia(string url, string folder, long media_id, string api_type, IProgressReporter progressReporter); Task DownloadStreamMedia(string url, string folder, long media_id, string api_type, IProgressReporter progressReporter, string? filenameFormat, Streams.List? streamInfo, Streams.Medium? streamMedia, Streams.Author? author, Dictionary users); Task DownloadStreamsDRMVideo(string policy, string signature, string kvp, string url, string decryptionKey, string folder, DateTime lastModified, long media_id, string api_type, IProgressReporter progressReporter, string? filenameFormat, Streams.List? streamInfo, Streams.Medium? streamMedia, Streams.Author? author, Dictionary users); Task DownloadSingleMessagePreviewDRMVideo(string policy, string signature, string kvp, string url, string decryptionKey, string folder, DateTime lastModified, long media_id, string api_type, IProgressReporter progressReporter, string? filenameFormat, MessageEntities.SingleMessage? messageInfo, MessageEntities.Medium? messageMedia, FromUser? fromUser, Dictionary users); Task DownloadMessagePreviewMedia(string url, string folder, long media_id, string api_type, IProgressReporter progressReporter, string? filenameFormat, MessageEntities.SingleMessage? messageInfo, MessageEntities.Medium? messageMedia, FromUser? fromUser, Dictionary users); Task DownloadHighlights(string username, long userId, string path, HashSet paidPostIds, IProgressReporter progressReporter); Task DownloadStories(string username, long userId, string path, HashSet paidPostIds, IProgressReporter progressReporter); Task DownloadArchived(string username, long userId, string path, Dictionary users, bool clientIdBlobMissing, bool devicePrivateKeyMissing, ArchivedEntities.ArchivedCollection archived, IProgressReporter progressReporter); Task DownloadMessages(string username, long userId, string path, Dictionary users, bool clientIdBlobMissing, bool devicePrivateKeyMissing, MessageEntities.MessageCollection messages, IProgressReporter progressReporter); Task DownloadPaidMessages(string username, string path, Dictionary users, bool clientIdBlobMissing, bool devicePrivateKeyMissing, PaidMessageCollection paidMessageCollection, IProgressReporter progressReporter); Task DownloadStreams(string username, long userId, string path, Dictionary users, bool clientIdBlobMissing, bool devicePrivateKeyMissing, StreamsCollection streams, IProgressReporter progressReporter); Task DownloadFreePosts(string username, long userId, string path, Dictionary users, bool clientIdBlobMissing, bool devicePrivateKeyMissing, PostCollection posts, IProgressReporter progressReporter); Task DownloadPaidPosts(string username, long userId, string path, Dictionary users, bool clientIdBlobMissing, bool devicePrivateKeyMissing, PaidPostCollection purchasedPosts, IProgressReporter progressReporter); }