diff --git a/OF DL/Entities/Archived/Archived.cs b/OF DL/Entities/Archived/Archived.cs index 49658e9..7f132e2 100644 --- a/OF DL/Entities/Archived/Archived.cs +++ b/OF DL/Entities/Archived/Archived.cs @@ -17,7 +17,7 @@ namespace OF_DL.Entities.Archived public Counters counters { get; set; } public class Author { - public int id { get; set; } + public long id { get; set; } public string _view { get; set; } } @@ -64,7 +64,7 @@ namespace OF_DL.Entities.Archived public string url { get; set; } public int width { get; set; } public int height { get; set; } - public int size { get; set; } + public long size { get; set; } public List sources { get; set; } } @@ -73,7 +73,7 @@ namespace OF_DL.Entities.Archived public string url { get; set; } public int width { get; set; } public int height { get; set; } - public int size { get; set; } + public long size { get; set; } } public class Thumb @@ -81,7 +81,7 @@ namespace OF_DL.Entities.Archived public string url { get; set; } public int width { get; set; } public int height { get; set; } - public int size { get; set; } + public long size { get; set; } } public class Hls @@ -105,7 +105,7 @@ namespace OF_DL.Entities.Archived public class LinkedPost { public string responseType { get; set; } - public int? id { get; set; } + public long? id { get; set; } public DateTime? postedAt { get; set; } public string postedAtPrecise { get; set; } public object expiredAt { get; set; } diff --git a/OF DL/Entities/Highlights/HighlightMedia.cs b/OF DL/Entities/Highlights/HighlightMedia.cs index d4b141a..af51136 100644 --- a/OF DL/Entities/Highlights/HighlightMedia.cs +++ b/OF DL/Entities/Highlights/HighlightMedia.cs @@ -9,10 +9,10 @@ namespace OF_DL.Entities.Highlights { public class HighlightMedia { - public int id { get; set; } - public int userId { get; set; } + public long id { get; set; } + public long userId { get; set; } public string title { get; set; } - public int coverStoryId { get; set; } + public long coverStoryId { get; set; } public string cover { get; set; } public int storiesCount { get; set; } public DateTime? createdAt { get; set; } @@ -30,7 +30,7 @@ namespace OF_DL.Entities.Highlights public string url { get; set; } public int width { get; set; } public int height { get; set; } - public int size { get; set; } + public long size { get; set; } public List sources { get; set; } } @@ -50,7 +50,7 @@ namespace OF_DL.Entities.Highlights public string url { get; set; } public int width { get; set; } public int height { get; set; } - public int size { get; set; } + public long size { get; set; } public Sources sources { get; set; } } @@ -60,7 +60,7 @@ namespace OF_DL.Entities.Highlights public int width { get; set; } public int height { get; set; } public int duration { get; set; } - public int size { get; set; } + public long size { get; set; } public Sources sources { get; set; } } @@ -80,14 +80,14 @@ namespace OF_DL.Entities.Highlights public string url { get; set; } public int width { get; set; } public int height { get; set; } - public int size { get; set; } + public long size { get; set; } public Sources sources { get; set; } } public class Story { - public int id { get; set; } - public int userId { get; set; } + public long id { get; set; } + public long userId { get; set; } public bool isWatched { get; set; } public bool isReady { get; set; } public List media { get; set; } @@ -102,7 +102,7 @@ namespace OF_DL.Entities.Highlights public string url { get; set; } public int width { get; set; } public int height { get; set; } - public int size { get; set; } + public long size { get; set; } } } } diff --git a/OF DL/Entities/Highlights/Highlights.cs b/OF DL/Entities/Highlights/Highlights.cs index fc29ff7..fbcd4dc 100644 --- a/OF DL/Entities/Highlights/Highlights.cs +++ b/OF DL/Entities/Highlights/Highlights.cs @@ -12,10 +12,10 @@ namespace OF_DL.Entities.Highlights public bool hasMore { get; set; } public class List { - public int id { get; set; } - public int userId { get; set; } + public long id { get; set; } + public long userId { get; set; } public string title { get; set; } - public int coverStoryId { get; set; } + public long coverStoryId { get; set; } public string cover { get; set; } public int storiesCount { get; set; } public DateTime? createdAt { get; set; } diff --git a/OF DL/Entities/Lists/UserList.cs b/OF DL/Entities/Lists/UserList.cs index 0a2c067..cc42563 100644 --- a/OF DL/Entities/Lists/UserList.cs +++ b/OF DL/Entities/Lists/UserList.cs @@ -34,7 +34,7 @@ namespace OF_DL.Entities.Lists public class User { - public int? id { get; set; } + public long? id { get; set; } public string _view { get; set; } } } diff --git a/OF DL/Entities/Lists/UsersList.cs b/OF DL/Entities/Lists/UsersList.cs index 3b77dfa..010db51 100644 --- a/OF DL/Entities/Lists/UsersList.cs +++ b/OF DL/Entities/Lists/UsersList.cs @@ -14,7 +14,7 @@ namespace OF_DL.Entities.Lists public string header { get; set; } public HeaderSize headerSize { get; set; } public HeaderThumbs headerThumbs { get; set; } - public int? id { get; set; } + public long? id { get; set; } public string name { get; set; } public string username { get; set; } public bool? canLookStory { get; set; } @@ -92,7 +92,7 @@ namespace OF_DL.Entities.Lists public class Subscribe { public object id { get; set; } - public int? userId { get; set; } + public long? userId { get; set; } public int? subscriberId { get; set; } public DateTime? date { get; set; } public int? duration { get; set; } @@ -160,7 +160,7 @@ namespace OF_DL.Entities.Lists public class SubscriptionBundle { - public int? id { get; set; } + public long? id { get; set; } public string? discount { get; set; } public string? duration { get; set; } public string? price { get; set; } diff --git a/OF DL/Entities/Messages/Messages.cs b/OF DL/Entities/Messages/Messages.cs index 1f17f70..c211368 100644 --- a/OF DL/Entities/Messages/Messages.cs +++ b/OF DL/Entities/Messages/Messages.cs @@ -43,7 +43,7 @@ namespace OF_DL.Entities.Messages public string url { get; set; } public int width { get; set; } public int height { get; set; } - public int size { get; set; } + public long size { get; set; } public List sources { get; set; } } @@ -52,7 +52,7 @@ namespace OF_DL.Entities.Messages public string url { get; set; } public int width { get; set; } public int height { get; set; } - public int size { get; set; } + public long size { get; set; } } public class Thumb @@ -60,12 +60,12 @@ namespace OF_DL.Entities.Messages public string url { get; set; } public int width { get; set; } public int height { get; set; } - public int size { get; set; } + public long size { get; set; } } public class FromUser { - public int? id { get; set; } + public long? id { get; set; } public string _view { get; set; } } diff --git a/OF DL/Entities/Messages/SingleMessage.cs b/OF DL/Entities/Messages/SingleMessage.cs index f6231fb..2e013f4 100644 --- a/OF DL/Entities/Messages/SingleMessage.cs +++ b/OF DL/Entities/Messages/SingleMessage.cs @@ -17,7 +17,7 @@ namespace OF_DL.Entities.Messages public string header { get; set; } public HeaderSize headerSize { get; set; } public HeaderThumbs headerThumbs { get; set; } - public int? id { get; set; } + public long? id { get; set; } public string name { get; set; } public string username { get; set; } public bool canLookStory { get; set; } @@ -81,7 +81,7 @@ namespace OF_DL.Entities.Messages { public int width { get; set; } public int height { get; set; } - public int size { get; set; } + public long size { get; set; } } public class SingleMessage diff --git a/OF DL/Entities/Post/Post.cs b/OF DL/Entities/Post/Post.cs index 5078f95..d7b661b 100644 --- a/OF DL/Entities/Post/Post.cs +++ b/OF DL/Entities/Post/Post.cs @@ -20,7 +20,7 @@ public class Post public string tailMarker { get; set; } public class Author { - public int id { get; set; } + public long id { get; set; } public string _view { get; set; } } @@ -56,7 +56,7 @@ public class Post public string url { get; set; } public int width { get; set; } public int height { get; set; } - public int size { get; set; } + public long size { get; set; } public List sources { get; set; } } @@ -65,7 +65,7 @@ public class Post public string url { get; set; } public int width { get; set; } public int height { get; set; } - public int size { get; set; } + public long size { get; set; } } public class Thumb @@ -73,7 +73,7 @@ public class Post public string url { get; set; } public int width { get; set; } public int height { get; set; } - public int size { get; set; } + public long size { get; set; } } public class Hls diff --git a/OF DL/Entities/Post/SinglePost.cs b/OF DL/Entities/Post/SinglePost.cs index f38795f..ef37c40 100644 --- a/OF DL/Entities/Post/SinglePost.cs +++ b/OF DL/Entities/Post/SinglePost.cs @@ -12,7 +12,7 @@ namespace OF_DL.Entities.Post public class SinglePost { public string responseType { get; set; } - public int id { get; set; } + public long id { get; set; } public DateTime postedAt { get; set; } public string postedAtPrecise { get; set; } public object expiredAt { get; set; } @@ -67,7 +67,7 @@ namespace OF_DL.Entities.Post public List preview { get; set; } public class Author { - public int id { get; set; } + public long id { get; set; } public string _view { get; set; } } @@ -85,7 +85,7 @@ namespace OF_DL.Entities.Post public string url { get; set; } public int width { get; set; } public int height { get; set; } - public int size { get; set; } + public long size { get; set; } public List sources { get; set; } } @@ -94,7 +94,7 @@ namespace OF_DL.Entities.Post public string url { get; set; } public int width { get; set; } public int height { get; set; } - public int size { get; set; } + public long size { get; set; } } public class Thumb @@ -102,7 +102,7 @@ namespace OF_DL.Entities.Post public string url { get; set; } public int width { get; set; } public int height { get; set; } - public int size { get; set; } + public long size { get; set; } } public class Info @@ -134,7 +134,7 @@ namespace OF_DL.Entities.Post { public int width { get; set; } public int height { get; set; } - public int size { get; set; } + public long size { get; set; } public string url { get; set; } } @@ -143,7 +143,7 @@ namespace OF_DL.Entities.Post public string source { get; set; } public int width { get; set; } public int height { get; set; } - public int size { get; set; } + public long size { get; set; } public int duration { get; set; } } diff --git a/OF DL/Entities/Purchased/Purchased.cs b/OF DL/Entities/Purchased/Purchased.cs index 11fddda..64ae348 100644 --- a/OF DL/Entities/Purchased/Purchased.cs +++ b/OF DL/Entities/Purchased/Purchased.cs @@ -13,17 +13,14 @@ namespace OF_DL.Entities.Purchased public List list { get; set; } public bool hasMore { get; set; } - - - public class FromUser { - public int id { get; set; } + public long id { get; set; } public string _view { get; set; } } public class Author { - public int id { get; set; } + public long id { get; set; } public string _view { get; set; } } @@ -81,10 +78,5 @@ namespace OF_DL.Entities.Purchased public string hls { get; set; } public string dash { get; set; } } - - - - - } } diff --git a/OF DL/Entities/Stories/Stories.cs b/OF DL/Entities/Stories/Stories.cs index 0d8961d..1f2efcd 100644 --- a/OF DL/Entities/Stories/Stories.cs +++ b/OF DL/Entities/Stories/Stories.cs @@ -9,8 +9,8 @@ namespace OF_DL.Entities.Stories { public class Stories { - public int id { get; set; } - public int userId { get; set; } + public long id { get; set; } + public long userId { get; set; } public bool isWatched { get; set; } public bool isReady { get; set; } public List media { get; set; } @@ -31,7 +31,7 @@ namespace OF_DL.Entities.Stories public string url { get; set; } public int width { get; set; } public int height { get; set; } - public int size { get; set; } + public long size { get; set; } public List sources { get; set; } } @@ -51,7 +51,7 @@ namespace OF_DL.Entities.Stories public string url { get; set; } public int width { get; set; } public int height { get; set; } - public int size { get; set; } + public long size { get; set; } public Sources sources { get; set; } } @@ -61,7 +61,7 @@ namespace OF_DL.Entities.Stories public int width { get; set; } public int height { get; set; } public int duration { get; set; } - public int size { get; set; } + public long size { get; set; } public Sources sources { get; set; } } @@ -81,7 +81,7 @@ namespace OF_DL.Entities.Stories public string url { get; set; } public int width { get; set; } public int height { get; set; } - public int size { get; set; } + public long size { get; set; } public Sources sources { get; set; } } @@ -90,7 +90,7 @@ namespace OF_DL.Entities.Stories public string url { get; set; } public int width { get; set; } public int height { get; set; } - public int size { get; set; } + public long size { get; set; } } } } diff --git a/OF DL/Entities/Streams/Streams.cs b/OF DL/Entities/Streams/Streams.cs index a822e97..2ad51e3 100644 --- a/OF DL/Entities/Streams/Streams.cs +++ b/OF DL/Entities/Streams/Streams.cs @@ -17,7 +17,7 @@ namespace OF_DL.Entities.Streams public Counters counters { get; set; } public class Author { - public int id { get; set; } + public long id { get; set; } public string _view { get; set; } } @@ -46,7 +46,7 @@ namespace OF_DL.Entities.Streams public string url { get; set; } public int width { get; set; } public int height { get; set; } - public int size { get; set; } + public long size { get; set; } public List sources { get; set; } } @@ -55,7 +55,7 @@ namespace OF_DL.Entities.Streams public string url { get; set; } public int width { get; set; } public int height { get; set; } - public int size { get; set; } + public long size { get; set; } } public class Thumb @@ -63,7 +63,7 @@ namespace OF_DL.Entities.Streams public string url { get; set; } public int width { get; set; } public int height { get; set; } - public int size { get; set; } + public long size { get; set; } } public class Info @@ -154,7 +154,7 @@ namespace OF_DL.Entities.Streams { public int width { get; set; } public int height { get; set; } - public int size { get; set; } + public long size { get; set; } public string url { get; set; } } @@ -163,7 +163,7 @@ namespace OF_DL.Entities.Streams public string source { get; set; } public int width { get; set; } public int height { get; set; } - public int size { get; set; } + public long size { get; set; } public int duration { get; set; } } diff --git a/OF DL/Entities/Subscriptions.cs b/OF DL/Entities/Subscriptions.cs index 06cf9b0..f5bacdd 100644 --- a/OF DL/Entities/Subscriptions.cs +++ b/OF DL/Entities/Subscriptions.cs @@ -36,7 +36,7 @@ namespace OF_DL.Entities public string header { get; set; } public HeaderSize headerSize { get; set; } public HeaderThumbs headerThumbs { get; set; } - public int id { get; set; } + public long id { get; set; } public string name { get; set; } public string username { get; set; } public bool? canLookStory { get; set; } @@ -96,7 +96,7 @@ namespace OF_DL.Entities public class Subscribe { public object id { get; set; } - public int? userId { get; set; } + public long? userId { get; set; } public int? subscriberId { get; set; } public DateTime? date { get; set; } public int? duration { get; set; } diff --git a/OF DL/Entities/User.cs b/OF DL/Entities/User.cs index ff95c8f..e5dae37 100644 --- a/OF DL/Entities/User.cs +++ b/OF DL/Entities/User.cs @@ -14,7 +14,7 @@ namespace OF_DL.Entities public string? header { get; set; } public HeaderSize headerSize { get; set; } public HeaderThumbs headerThumbs { get; set; } - public int? id { get; set; } + public long? id { get; set; } public string name { get; set; } public string username { get; set; } public bool? canLookStory { get; set; } @@ -124,7 +124,7 @@ namespace OF_DL.Entities public class Subscribe { public long? id { get; set; } - public int? userId { get; set; } + public long? userId { get; set; } public int? subscriberId { get; set; } public DateTime? date { get; set; } public int? duration { get; set; } diff --git a/OF DL/Helpers/APIHelper.cs b/OF DL/Helpers/APIHelper.cs index a1e534f..84ce24e 100644 --- a/OF DL/Helpers/APIHelper.cs +++ b/OF DL/Helpers/APIHelper.cs @@ -295,11 +295,11 @@ public class APIHelper : IAPIHelper } - public async Task?> GetAllSubscriptions(Dictionary getParams, string endpoint, bool includeRestricted, IDownloadConfig config) + public async Task?> GetAllSubscriptions(Dictionary getParams, string endpoint, bool includeRestricted, IDownloadConfig config) { try { - Dictionary users = new(); + Dictionary users = new(); Subscriptions subscriptions = new(); Log.Debug("Calling GetAllSubscrptions"); @@ -359,7 +359,7 @@ public class APIHelper : IAPIHelper return null; } - public async Task?> GetActiveSubscriptions(string endpoint, bool includeRestricted, IDownloadConfig config) + public async Task?> GetActiveSubscriptions(string endpoint, bool includeRestricted, IDownloadConfig config) { Dictionary getParams = new() { @@ -373,7 +373,7 @@ public class APIHelper : IAPIHelper } - public async Task?> GetExpiredSubscriptions(string endpoint, bool includeRestricted, IDownloadConfig config) + public async Task?> GetExpiredSubscriptions(string endpoint, bool includeRestricted, IDownloadConfig config) { Dictionary getParams = new() @@ -390,7 +390,7 @@ public class APIHelper : IAPIHelper } - public async Task> GetLists(string endpoint, IDownloadConfig config) + public async Task> GetLists(string endpoint, IDownloadConfig config) { Log.Debug("Calling GetLists"); @@ -404,7 +404,7 @@ public class APIHelper : IAPIHelper { "limit", "50" }, { "format", "infinite" } }; - Dictionary lists = new(); + Dictionary lists = new(); while (true) { string? body = await BuildHeaderAndExecuteRequests(getParams, endpoint, new HttpClient()); @@ -2067,13 +2067,13 @@ public class APIHelper : IAPIHelper return null; } - public async Task> GetPurchasedTabUsers(string endpoint, IDownloadConfig config, Dictionary users) + public async Task> GetPurchasedTabUsers(string endpoint, IDownloadConfig config, Dictionary users) { Log.Debug($"Calling GetPurchasedTabUsers - {endpoint}"); try { - Dictionary purchasedTabUsers = new(); + Dictionary purchasedTabUsers = new(); Purchased purchased = new(); int post_limit = 50; Dictionary getParams = new() @@ -2240,7 +2240,7 @@ public class APIHelper : IAPIHelper return null; } - public async Task> GetPurchasedTab(string endpoint, string folder, IDownloadConfig config, Dictionary users) + public async Task> GetPurchasedTab(string endpoint, string folder, IDownloadConfig config, Dictionary users) { Log.Debug($"Calling GetPurchasedTab - {endpoint}"); diff --git a/OF DL/Helpers/DBHelper.cs b/OF DL/Helpers/DBHelper.cs index 21e63a5..697fa71 100644 --- a/OF DL/Helpers/DBHelper.cs +++ b/OF DL/Helpers/DBHelper.cs @@ -135,7 +135,7 @@ namespace OF_DL.Helpers } } - public async Task CreateUsersDB(Dictionary users) + public async Task CreateUsersDB(Dictionary users) { try { @@ -150,7 +150,7 @@ namespace OF_DL.Helpers } Log.Debug("Adding missing creators"); - foreach (KeyValuePair user in users) + foreach (KeyValuePair user in users) { using (SqliteCommand checkCmd = new($"SELECT user_id, username FROM users WHERE user_id = @userId;", connection)) { @@ -190,7 +190,7 @@ namespace OF_DL.Helpers } } - public async Task CheckUsername(KeyValuePair user, string path) + public async Task CheckUsername(KeyValuePair user, string path) { try { @@ -243,7 +243,7 @@ namespace OF_DL.Helpers } } - public async Task AddMessage(string folder, long post_id, string message_text, string price, bool is_paid, bool is_archived, DateTime created_at, int user_id) + public async Task AddMessage(string folder, long post_id, string message_text, string price, bool is_paid, bool is_archived, DateTime created_at, long user_id) { try { @@ -495,7 +495,7 @@ namespace OF_DL.Helpers FROM posts AS P INNER JOIN medias AS m ON P.post_id = m.post_id - WHERE m.downloaded = 0 + WHERE m.downloaded = 0 )", connection); var scalarValue = await cmd.ExecuteScalarAsync(); if(scalarValue != null && scalarValue != DBNull.Value) diff --git a/OF DL/Helpers/DownloadHelper.cs b/OF DL/Helpers/DownloadHelper.cs index 82065f9..e936b77 100644 --- a/OF DL/Helpers/DownloadHelper.cs +++ b/OF DL/Helpers/DownloadHelper.cs @@ -77,9 +77,9 @@ public class DownloadHelper : IDownloadHelper try { string customFileName = string.Empty; - if (!Directory.Exists(folder + path)) + if (!Directory.Exists(folder + path)) { - Directory.CreateDirectory(folder + path); + Directory.CreateDirectory(folder + path); } string extension = Path.GetExtension(url.Split("?")[0]); @@ -164,7 +164,7 @@ public class DownloadHelper : IDownloadHelper object? postMedia, object? author, string username, - Dictionary users, + Dictionary users, IFileNameHelper fileNameHelper, CustomFileNameOption option) { @@ -628,7 +628,7 @@ public class DownloadHelper : IDownloadHelper // default: // tempFilename = $"{folder}{path}/{filename}_source.mp4"; // break; - //} + //} string parameters = $"-cenc_decryption_key {decKey} -headers \"Cookie:CloudFront-Policy={policy}; CloudFront-Signature={signature}; CloudFront-Key-Pair-Id={kvp}; {sess} Origin: https://onlyfans.com Referer: https://onlyfans.com User-Agent: {user_agent}\" -y -i \"{url}\" -map 0:v:{streamIndex} -map 0:a? -codec copy \"{tempFilename}\""; @@ -661,7 +661,7 @@ public class DownloadHelper : IDownloadHelper #endregion #region normal posts - public async Task DownloadPostMedia(string url, string folder, long media_id, string api_type, ProgressTask task, string? filenameFormat, Post.List? postInfo, Post.Medium? postMedia, Post.Author? author, Dictionary users) + public async Task DownloadPostMedia(string url, string folder, long media_id, string api_type, ProgressTask task, string? filenameFormat, Post.List? postInfo, Post.Medium? postMedia, Post.Author? author, Dictionary users) { string path; if (downloadConfig.FolderPerPost && postInfo != null && postInfo?.id is not null && postInfo?.postedAt is not null) @@ -679,7 +679,7 @@ public class DownloadHelper : IDownloadHelper return await CreateDirectoriesAndDownloadMedia(path, url, folder, media_id, api_type, task, filename, resolvedFilename); } - public async Task DownloadPostMedia(string url, string folder, long media_id, string api_type, ProgressTask task, string? filenameFormat, SinglePost? postInfo, SinglePost.Medium? postMedia, SinglePost.Author? author, Dictionary users) + public async Task DownloadPostMedia(string url, string folder, long media_id, string api_type, ProgressTask task, string? filenameFormat, SinglePost? postInfo, SinglePost.Medium? postMedia, SinglePost.Author? author, Dictionary users) { string path; if (downloadConfig.FolderPerPost && postInfo != null && postInfo?.id is not null && postInfo?.postedAt is not null) @@ -697,7 +697,7 @@ public class DownloadHelper : IDownloadHelper return await CreateDirectoriesAndDownloadMedia(path, url, folder, media_id, api_type, task, filename, resolvedFilename); } - public async Task DownloadStreamMedia(string url, string folder, long media_id, string api_type, ProgressTask task, string? filenameFormat, Streams.List? streamInfo, Streams.Medium? streamMedia, Streams.Author? author, Dictionary users) + public async Task DownloadStreamMedia(string url, string folder, long media_id, string api_type, ProgressTask task, string? filenameFormat, Streams.List? streamInfo, Streams.Medium? streamMedia, Streams.Author? author, Dictionary users) { string path; if (downloadConfig.FolderPerPost && streamInfo != null && streamInfo?.id is not null && streamInfo?.postedAt is not null) @@ -717,7 +717,7 @@ public class DownloadHelper : IDownloadHelper } - public async Task DownloadMessageMedia(string url, string folder, long media_id, string api_type, ProgressTask task, string? filenameFormat, Messages.List? messageInfo, Messages.Medium? messageMedia, Messages.FromUser? fromUser, Dictionary users) + public async Task DownloadMessageMedia(string url, string folder, long media_id, string api_type, ProgressTask task, string? filenameFormat, Messages.List? messageInfo, Messages.Medium? messageMedia, Messages.FromUser? fromUser, Dictionary users) { string path; if (downloadConfig.FolderPerMessage && messageInfo != null && messageInfo?.id is not null && messageInfo?.createdAt is not null) @@ -735,7 +735,7 @@ public class DownloadHelper : IDownloadHelper } - public async Task DownloadArchivedMedia(string url, string folder, long media_id, string api_type, ProgressTask task, string? filenameFormat, Archived.List? messageInfo, Archived.Medium? messageMedia, Archived.Author? author, Dictionary users) + public async Task DownloadArchivedMedia(string url, string folder, long media_id, string api_type, ProgressTask task, string? filenameFormat, Archived.List? messageInfo, Archived.Medium? messageMedia, Archived.Author? author, Dictionary users) { string path = "/Archived/Posts/Free"; Uri uri = new(url); @@ -754,7 +754,7 @@ public class DownloadHelper : IDownloadHelper return await CreateDirectoriesAndDownloadMedia(path, url, folder, media_id, api_type, task, filename, filename); } - public async Task DownloadPurchasedMedia(string url, string folder, long media_id, string api_type, ProgressTask task, string? filenameFormat, Purchased.List? messageInfo, Medium? messageMedia, Purchased.FromUser? fromUser, Dictionary users) + public async Task DownloadPurchasedMedia(string url, string folder, long media_id, string api_type, ProgressTask task, string? filenameFormat, Purchased.List? messageInfo, Medium? messageMedia, Purchased.FromUser? fromUser, Dictionary users) { string path; if (downloadConfig.FolderPerPaidMessage && messageInfo != null && messageInfo?.id is not null && messageInfo?.createdAt is not null) @@ -771,7 +771,7 @@ public class DownloadHelper : IDownloadHelper return await CreateDirectoriesAndDownloadMedia(path, url, folder, media_id, api_type, task, filename, resolvedFilename); } - public async Task DownloadSinglePurchasedMedia(string url, string folder, long media_id, string api_type, ProgressTask task, string? filenameFormat, SingleMessage? messageInfo, Medium? messageMedia, Entities.Messages.FromUser? fromUser, Dictionary users) + public async Task DownloadSinglePurchasedMedia(string url, string folder, long media_id, string api_type, ProgressTask task, string? filenameFormat, SingleMessage? messageInfo, Medium? messageMedia, Entities.Messages.FromUser? fromUser, Dictionary users) { string path; if (downloadConfig.FolderPerPaidMessage && messageInfo != null && messageInfo?.id is not null && messageInfo?.createdAt is not null) @@ -797,7 +797,7 @@ public class DownloadHelper : IDownloadHelper Purchased.List? messageInfo, Medium? messageMedia, Purchased.FromUser? fromUser, - Dictionary users) + Dictionary users) { string path; if (downloadConfig.FolderPerPaidPost && messageInfo != null && messageInfo?.id is not null && messageInfo?.postedAt is not null) @@ -819,19 +819,19 @@ public class DownloadHelper : IDownloadHelper { try { - string path = $"/Profile"; + string path = $"/Profile"; - if (!Directory.Exists(folder + path)) + if (!Directory.Exists(folder + path)) { - Directory.CreateDirectory(folder + path); + Directory.CreateDirectory(folder + path); } if (!string.IsNullOrEmpty(avatarUrl)) { string avatarpath = $"{path}/Avatars"; - if (!Directory.Exists(folder + avatarpath)) + if (!Directory.Exists(folder + avatarpath)) { - Directory.CreateDirectory(folder + avatarpath); + Directory.CreateDirectory(folder + avatarpath); } List avatarMD5Hashes = WidevineClient.Utils.CalculateFolderMD5(folder + avatarpath); @@ -872,9 +872,9 @@ public class DownloadHelper : IDownloadHelper if (!string.IsNullOrEmpty(headerUrl)) { string headerpath = $"{path}/Headers"; - if (!Directory.Exists(folder + headerpath)) + if (!Directory.Exists(folder + headerpath)) { - Directory.CreateDirectory(folder + headerpath); + Directory.CreateDirectory(folder + headerpath); } List headerMD5Hashes = WidevineClient.Utils.CalculateFolderMD5(folder + headerpath); @@ -970,7 +970,7 @@ public class DownloadHelper : IDownloadHelper } #region drm posts - public async Task DownloadMessageDRMVideo(string policy, string signature, string kvp, string url, string decryptionKey, string folder, DateTime lastModified, long media_id, string api_type, ProgressTask task, string? filenameFormat, Messages.List? messageInfo, Messages.Medium? messageMedia, Messages.FromUser? fromUser, Dictionary users) + public async Task DownloadMessageDRMVideo(string policy, string signature, string kvp, string url, string decryptionKey, string folder, DateTime lastModified, long media_id, string api_type, ProgressTask task, string? filenameFormat, Messages.List? messageInfo, Messages.Medium? messageMedia, Messages.FromUser? fromUser, Dictionary users) { try { @@ -986,9 +986,9 @@ public class DownloadHelper : IDownloadHelper { path = "/Messages/Free/Videos"; } - if (!Directory.Exists(folder + path)) + if (!Directory.Exists(folder + path)) { - Directory.CreateDirectory(folder + path); + Directory.CreateDirectory(folder + path); } @@ -1078,7 +1078,7 @@ public class DownloadHelper : IDownloadHelper } - public async Task DownloadPurchasedMessageDRMVideo(string policy, string signature, string kvp, string url, string decryptionKey, string folder, DateTime lastModified, long media_id, string api_type, ProgressTask task, string? filenameFormat, Purchased.List? messageInfo, Medium? messageMedia, Purchased.FromUser? fromUser, Dictionary users) + public async Task DownloadPurchasedMessageDRMVideo(string policy, string signature, string kvp, string url, string decryptionKey, string folder, DateTime lastModified, long media_id, string api_type, ProgressTask task, string? filenameFormat, Purchased.List? messageInfo, Medium? messageMedia, Purchased.FromUser? fromUser, Dictionary users) { try { @@ -1094,9 +1094,9 @@ public class DownloadHelper : IDownloadHelper { path = "/Messages/Paid/Videos"; } - if (!Directory.Exists(folder + path)) + if (!Directory.Exists(folder + path)) { - Directory.CreateDirectory(folder + path); + Directory.CreateDirectory(folder + path); } if (!string.IsNullOrEmpty(filenameFormat) && messageInfo != null && messageMedia != null) @@ -1184,7 +1184,7 @@ public class DownloadHelper : IDownloadHelper return false; } - public async Task DownloadSinglePurchasedMessageDRMVideo(string policy, string signature, string kvp, string url, string decryptionKey, string folder, DateTime lastModified, long media_id, string api_type, ProgressTask task, string? filenameFormat, SingleMessage? messageInfo, Medium? messageMedia, Entities.Messages.FromUser? fromUser, Dictionary users) + public async Task DownloadSinglePurchasedMessageDRMVideo(string policy, string signature, string kvp, string url, string decryptionKey, string folder, DateTime lastModified, long media_id, string api_type, ProgressTask task, string? filenameFormat, SingleMessage? messageInfo, Medium? messageMedia, Entities.Messages.FromUser? fromUser, Dictionary users) { try { @@ -1291,7 +1291,7 @@ public class DownloadHelper : IDownloadHelper } - public async Task DownloadPostDRMVideo(string policy, string signature, string kvp, string url, string decryptionKey, string folder, DateTime lastModified, long media_id, string api_type, ProgressTask task, string? filenameFormat, Post.List? postInfo, Post.Medium? postMedia, Post.Author? author, Dictionary users) + public async Task DownloadPostDRMVideo(string policy, string signature, string kvp, string url, string decryptionKey, string folder, DateTime lastModified, long media_id, string api_type, ProgressTask task, string? filenameFormat, Post.List? postInfo, Post.Medium? postMedia, Post.Author? author, Dictionary users) { try { @@ -1307,9 +1307,9 @@ public class DownloadHelper : IDownloadHelper { path = "/Posts/Free/Videos"; } - if (!Directory.Exists(folder + path)) + if (!Directory.Exists(folder + path)) { - Directory.CreateDirectory(folder + path); + Directory.CreateDirectory(folder + path); } if (!string.IsNullOrEmpty(filenameFormat) && postInfo != null && postMedia != null) @@ -1396,7 +1396,7 @@ public class DownloadHelper : IDownloadHelper } return false; } - public async Task DownloadPostDRMVideo(string policy, string signature, string kvp, string url, string decryptionKey, string folder, DateTime lastModified, long media_id, string api_type, ProgressTask task, string filenameFormat, SinglePost postInfo, SinglePost.Medium postMedia, SinglePost.Author author, Dictionary users) + public async Task DownloadPostDRMVideo(string policy, string signature, string kvp, string url, string decryptionKey, string folder, DateTime lastModified, long media_id, string api_type, ProgressTask task, string filenameFormat, SinglePost postInfo, SinglePost.Medium postMedia, SinglePost.Author author, Dictionary users) { try { @@ -1412,9 +1412,9 @@ public class DownloadHelper : IDownloadHelper { path = "/Posts/Free/Videos"; } - if (!Directory.Exists(folder + path)) + if (!Directory.Exists(folder + path)) { - Directory.CreateDirectory(folder + path); + Directory.CreateDirectory(folder + path); } if (!string.IsNullOrEmpty(filenameFormat) && postInfo != null && postMedia != null) @@ -1475,7 +1475,7 @@ public class DownloadHelper : IDownloadHelper await m_DBHelper.UpdateMedia(folder, media_id, api_type, folder + path, customFileName + ".mp4", size, true, lastModified); } } - + if (downloadConfig.ShowScrapeSize) { long size = await m_DBHelper.GetStoredFileSize(folder, media_id, api_type); @@ -1501,7 +1501,7 @@ public class DownloadHelper : IDownloadHelper } return false; } - public async Task DownloadStreamsDRMVideo(string policy, string signature, string kvp, string url, string decryptionKey, string folder, DateTime lastModified, long media_id, string api_type, ProgressTask task, string? filenameFormat, Streams.List? streamInfo, Streams.Medium? streamMedia, Streams.Author? author, Dictionary users) + public async Task DownloadStreamsDRMVideo(string policy, string signature, string kvp, string url, string decryptionKey, string folder, DateTime lastModified, long media_id, string api_type, ProgressTask task, string? filenameFormat, Streams.List? streamInfo, Streams.Medium? streamMedia, Streams.Author? author, Dictionary users) { try { @@ -1607,7 +1607,7 @@ public class DownloadHelper : IDownloadHelper return false; } - public async Task DownloadPurchasedPostDRMVideo(string policy, string signature, string kvp, string url, string decryptionKey, string folder, DateTime lastModified, long media_id, string api_type, ProgressTask task, string? filenameFormat, Purchased.List? postInfo, Medium? postMedia, Purchased.FromUser? fromUser, Dictionary users) + public async Task DownloadPurchasedPostDRMVideo(string policy, string signature, string kvp, string url, string decryptionKey, string folder, DateTime lastModified, long media_id, string api_type, ProgressTask task, string? filenameFormat, Purchased.List? postInfo, Medium? postMedia, Purchased.FromUser? fromUser, Dictionary users) { try { @@ -1623,9 +1623,9 @@ public class DownloadHelper : IDownloadHelper { path = "/Posts/Paid/Videos"; } - if (!Directory.Exists(folder + path)) + if (!Directory.Exists(folder + path)) { - Directory.CreateDirectory(folder + path); + Directory.CreateDirectory(folder + path); } @@ -1715,7 +1715,7 @@ public class DownloadHelper : IDownloadHelper } - public async Task DownloadArchivedPostDRMVideo(string policy, string signature, string kvp, string url, string decryptionKey, string folder, DateTime lastModified, long media_id, string api_type, ProgressTask task, string? filenameFormat, Archived.List? postInfo, Archived.Medium? postMedia, Archived.Author? author, Dictionary users) + public async Task DownloadArchivedPostDRMVideo(string policy, string signature, string kvp, string url, string decryptionKey, string folder, DateTime lastModified, long media_id, string api_type, ProgressTask task, string? filenameFormat, Archived.List? postInfo, Archived.Medium? postMedia, Archived.Author? author, Dictionary users) { try { @@ -1723,9 +1723,9 @@ public class DownloadHelper : IDownloadHelper Uri uri = new(url); string filename = System.IO.Path.GetFileName(uri.LocalPath).Split(".")[0]; string path = "/Archived/Posts/Free/Videos"; - if (!Directory.Exists(folder + path)) + if (!Directory.Exists(folder + path)) { - Directory.CreateDirectory(folder + path); + Directory.CreateDirectory(folder + path); } if (!string.IsNullOrEmpty(filenameFormat) && postInfo != null && postMedia != null) diff --git a/OF DL/Helpers/FileNameHelper.cs b/OF DL/Helpers/FileNameHelper.cs index 2d5a3a9..178a4e8 100644 --- a/OF DL/Helpers/FileNameHelper.cs +++ b/OF DL/Helpers/FileNameHelper.cs @@ -18,7 +18,7 @@ namespace OF_DL.Helpers this.auth = auth; } - public async Task> GetFilename(object obj1, object obj2, object obj3, List selectedProperties, string username, Dictionary users = null) + public async Task> GetFilename(object obj1, object obj2, object obj3, List selectedProperties, string username, Dictionary users = null) { Dictionary values = new(); Type type1 = obj1.GetType(); @@ -36,7 +36,7 @@ namespace OF_DL.Helpers { drmProperty = GetNestedPropertyValue(obj2, "files.drm"); } - + if(fileProperty != null && drmProperty != null && propertyName == "mediaCreatedAt") { object mpdurl = GetNestedPropertyValue(obj2, "files.drm.manifest.dash"); @@ -66,7 +66,7 @@ namespace OF_DL.Helpers continue; } } - + } PropertyInfo? property = Array.Find(properties2, p => p.Name.Equals(propertyName.Replace("media", ""), StringComparison.OrdinalIgnoreCase)); if (property != null) diff --git a/OF DL/Helpers/Interfaces/IAPIHelper.cs b/OF DL/Helpers/Interfaces/IAPIHelper.cs index 02c32a8..d94d509 100644 --- a/OF DL/Helpers/Interfaces/IAPIHelper.cs +++ b/OF DL/Helpers/Interfaces/IAPIHelper.cs @@ -16,7 +16,7 @@ namespace OF_DL.Helpers Task GetDecryptionKeyCDM(Dictionary drmHeaders, string licenceURL, string pssh); Task GetDRMMPDLastModified(string mpdUrl, string policy, string signature, string kvp); Task GetDRMMPDPSSH(string mpdUrl, string policy, string signature, string kvp); - Task> GetLists(string endpoint, IDownloadConfig config); + Task> GetLists(string endpoint, IDownloadConfig config); Task> GetListUsers(string endpoint, IDownloadConfig config); Task> GetMedia(MediaType mediatype, string endpoint, string? username, string folder, IDownloadConfig config, List paid_post_ids); Task GetPaidPosts(string endpoint, string folder, string username, IDownloadConfig config, List paid_post_ids, StatusContext ctx); @@ -26,13 +26,13 @@ namespace OF_DL.Helpers Task GetArchived(string endpoint, string folder, IDownloadConfig config, StatusContext ctx); Task GetMessages(string endpoint, string folder, IDownloadConfig config, StatusContext ctx); Task GetPaidMessages(string endpoint, string folder, string username, IDownloadConfig config, StatusContext ctx); - Task> GetPurchasedTabUsers(string endpoint, IDownloadConfig config, Dictionary users); - Task> GetPurchasedTab(string endpoint, string folder, IDownloadConfig config, Dictionary users); + Task> GetPurchasedTabUsers(string endpoint, IDownloadConfig config, Dictionary users); + Task> GetPurchasedTab(string endpoint, string folder, IDownloadConfig config, Dictionary users); Task GetUserInfo(string endpoint); Task GetUserInfoById(string endpoint); Dictionary GetDynamicHeaders(string path, string queryParam); - Task> GetActiveSubscriptions(string endpoint, bool includeRestrictedSubscriptions, IDownloadConfig config); - Task> GetExpiredSubscriptions(string endpoint, bool includeRestrictedSubscriptions, IDownloadConfig config); + Task> GetActiveSubscriptions(string endpoint, bool includeRestrictedSubscriptions, IDownloadConfig config); + Task> GetExpiredSubscriptions(string endpoint, bool includeRestrictedSubscriptions, IDownloadConfig config); Task GetDecryptionKeyOFDL(Dictionary drmHeaders, string licenceURL, string pssh); } } diff --git a/OF DL/Helpers/Interfaces/IDBHelper.cs b/OF DL/Helpers/Interfaces/IDBHelper.cs index 770b91d..ab55249 100644 --- a/OF DL/Helpers/Interfaces/IDBHelper.cs +++ b/OF DL/Helpers/Interfaces/IDBHelper.cs @@ -2,12 +2,12 @@ namespace OF_DL.Helpers { public interface IDBHelper { - Task AddMessage(string folder, long post_id, string message_text, string price, bool is_paid, bool is_archived, DateTime created_at, int user_id); + Task AddMessage(string folder, long post_id, string message_text, string price, bool is_paid, bool is_archived, DateTime created_at, long user_id); Task AddPost(string folder, long post_id, string message_text, string price, bool is_paid, bool is_archived, DateTime created_at); Task AddStory(string folder, long post_id, string message_text, string price, bool is_paid, bool is_archived, DateTime created_at); Task CreateDB(string folder); - Task CreateUsersDB(Dictionary users); - Task CheckUsername(KeyValuePair user, string path); + Task CreateUsersDB(Dictionary users); + Task CheckUsername(KeyValuePair user, string path); Task AddMedia(string folder, long media_id, long post_id, string link, string? directory, string? filename, long? size, string api_type, string media_type, bool preview, bool downloaded, DateTime? created_at); Task UpdateMedia(string folder, long media_id, string api_type, string directory, string filename, long size, bool downloaded, DateTime created_at); Task GetStoredFileSize(string folder, long media_id, string api_type); diff --git a/OF DL/Helpers/Interfaces/IDownloadHelper.cs b/OF DL/Helpers/Interfaces/IDownloadHelper.cs index cdc8147..72cc15b 100644 --- a/OF DL/Helpers/Interfaces/IDownloadHelper.cs +++ b/OF DL/Helpers/Interfaces/IDownloadHelper.cs @@ -12,25 +12,25 @@ namespace OF_DL.Helpers public interface IDownloadHelper { Task CalculateTotalFileSize(List urls); - Task DownloadArchivedMedia(string url, string folder, long media_id, string api_type, ProgressTask task, string filenameFormat, Archived.List messageInfo, Archived.Medium messageMedia, Archived.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, ProgressTask task, string filenameFormat, Archived.List postInfo, Archived.Medium postMedia, Archived.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, ProgressTask task, string filenameFormat, SinglePost postInfo, SinglePost.Medium postMedia, SinglePost.Author author, Dictionary users); + Task DownloadArchivedMedia(string url, string folder, long media_id, string api_type, ProgressTask task, string filenameFormat, Archived.List messageInfo, Archived.Medium messageMedia, Archived.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, ProgressTask task, string filenameFormat, Archived.List postInfo, Archived.Medium postMedia, Archived.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, ProgressTask task, string filenameFormat, SinglePost postInfo, SinglePost.Medium postMedia, SinglePost.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, ProgressTask task, string filenameFormat, Messages.List messageInfo, Messages.Medium messageMedia, Messages.FromUser fromUser, Dictionary users); - Task DownloadMessageMedia(string url, string folder, long media_id, string api_type, ProgressTask task, string filenameFormat, Messages.List messageInfo, Messages.Medium messageMedia, Messages.FromUser fromUser, Dictionary users); - Task DownloadPostDRMVideo(string policy, string signature, string kvp, string url, string decryptionKey, string folder, DateTime lastModified, long media_id, string api_type, ProgressTask task, 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, ProgressTask task, 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, ProgressTask task, string? filenameFormat, SinglePost? postInfo, SinglePost.Medium? postMedia, SinglePost.Author? author, Dictionary users); - Task DownloadPurchasedMedia(string url, string folder, long media_id, string api_type, ProgressTask task, string filenameFormat, Purchased.List messageInfo, Medium messageMedia, Purchased.FromUser fromUser, Dictionary users); + Task DownloadMessageDRMVideo(string policy, string signature, string kvp, string url, string decryptionKey, string folder, DateTime lastModified, long media_id, string api_type, ProgressTask task, string filenameFormat, Messages.List messageInfo, Messages.Medium messageMedia, Messages.FromUser fromUser, Dictionary users); + Task DownloadMessageMedia(string url, string folder, long media_id, string api_type, ProgressTask task, string filenameFormat, Messages.List messageInfo, Messages.Medium messageMedia, Messages.FromUser fromUser, Dictionary users); + Task DownloadPostDRMVideo(string policy, string signature, string kvp, string url, string decryptionKey, string folder, DateTime lastModified, long media_id, string api_type, ProgressTask task, 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, ProgressTask task, 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, ProgressTask task, string? filenameFormat, SinglePost? postInfo, SinglePost.Medium? postMedia, SinglePost.Author? author, Dictionary users); + Task DownloadPurchasedMedia(string url, string folder, long media_id, string api_type, ProgressTask task, string filenameFormat, Purchased.List messageInfo, Medium messageMedia, Purchased.FromUser fromUser, Dictionary users); - Task DownloadSinglePurchasedMedia(string url, string folder, long media_id, string api_type, ProgressTask task, string? filenameFormat, SingleMessage? messageInfo, Medium? messageMedia, Entities.Messages.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, ProgressTask task, string filenameFormat, Purchased.List messageInfo, Medium messageMedia, Purchased.FromUser fromUser, Dictionary users); + Task DownloadSinglePurchasedMedia(string url, string folder, long media_id, string api_type, ProgressTask task, string? filenameFormat, SingleMessage? messageInfo, Medium? messageMedia, Entities.Messages.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, ProgressTask task, string filenameFormat, Purchased.List messageInfo, 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, ProgressTask task, string? filenameFormat, SingleMessage? messageInfo, Medium? messageMedia, Entities.Messages.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, ProgressTask task, string filenameFormat, Purchased.List postInfo, Medium postMedia, Purchased.FromUser fromUser, Dictionary users); - Task DownloadPurchasedPostMedia(string url, string folder, long media_id, string api_type, ProgressTask task, string filenameFormat, Purchased.List messageInfo, 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, ProgressTask task, string? filenameFormat, SingleMessage? messageInfo, Medium? messageMedia, Entities.Messages.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, ProgressTask task, string filenameFormat, Purchased.List postInfo, Medium postMedia, Purchased.FromUser fromUser, Dictionary users); + Task DownloadPurchasedPostMedia(string url, string folder, long media_id, string api_type, ProgressTask task, string filenameFormat, Purchased.List messageInfo, Medium messageMedia, Purchased.FromUser fromUser, Dictionary users); Task DownloadStoryMedia(string url, string folder, long media_id, string api_type, ProgressTask task); - Task DownloadStreamMedia(string url, string folder, long media_id, string api_type, ProgressTask task, 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, ProgressTask task, string filenameFormat, Streams.List streamInfo, Streams.Medium streamMedia, Streams.Author author, Dictionary users); + Task DownloadStreamMedia(string url, string folder, long media_id, string api_type, ProgressTask task, 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, ProgressTask task, string filenameFormat, Streams.List streamInfo, Streams.Medium streamMedia, Streams.Author author, Dictionary users); } } diff --git a/OF DL/Helpers/Interfaces/IFileNameHelper.cs b/OF DL/Helpers/Interfaces/IFileNameHelper.cs index aae3ba8..a3cc701 100644 --- a/OF DL/Helpers/Interfaces/IFileNameHelper.cs +++ b/OF DL/Helpers/Interfaces/IFileNameHelper.cs @@ -3,6 +3,6 @@ namespace OF_DL.Helpers public interface IFileNameHelper { Task BuildFilename(string fileFormat, Dictionary values); - Task> GetFilename(object obj1, object obj2, object obj3, List selectedProperties, string username, Dictionary users = null); + Task> GetFilename(object obj1, object obj2, object obj3, List selectedProperties, string username, Dictionary users = null); } } diff --git a/OF DL/Program.cs b/OF DL/Program.cs index 466037d..9b75e31 100644 --- a/OF DL/Program.cs +++ b/OF DL/Program.cs @@ -116,6 +116,8 @@ public class Program .CreateLogger(); AnsiConsole.Write(new FigletText("Welcome to OF-DL").Color(Color.Red)); + AnsiConsole.Markup("Documentation: [link]https://docs.ofdl.tools/[/]\n"); + AnsiConsole.Markup("Discord server: [link]https://discord.com/invite/6bUW8EJ53j[/]\n\n"); //Remove config.json and convert to config.conf if (File.Exists("config.json")) @@ -919,12 +921,12 @@ public class Program do { DateTime startTime = DateTime.Now; - Dictionary users = new(); - Dictionary activeSubs = await m_ApiHelper.GetActiveSubscriptions("/subscriptions/subscribes", Config.IncludeRestrictedSubscriptions, Config); + Dictionary users = new(); + Dictionary activeSubs = await m_ApiHelper.GetActiveSubscriptions("/subscriptions/subscribes", Config.IncludeRestrictedSubscriptions, Config); Log.Debug("Subscriptions: "); - foreach (KeyValuePair activeSub in activeSubs) + foreach (KeyValuePair activeSub in activeSubs) { if (!users.ContainsKey(activeSub.Key)) { @@ -936,8 +938,8 @@ public class Program { Log.Debug("Inactive Subscriptions: "); - Dictionary expiredSubs = await m_ApiHelper.GetExpiredSubscriptions("/subscriptions/subscribes", Config.IncludeRestrictedSubscriptions, Config); - foreach (KeyValuePair expiredSub in expiredSubs) + Dictionary expiredSubs = await m_ApiHelper.GetExpiredSubscriptions("/subscriptions/subscribes", Config.IncludeRestrictedSubscriptions, Config); + foreach (KeyValuePair expiredSub in expiredSubs) { if (!users.ContainsKey(expiredSub.Key)) { @@ -947,7 +949,7 @@ public class Program } } - Dictionary lists = await m_ApiHelper.GetLists("/lists", Config); + Dictionary lists = await m_ApiHelper.GetLists("/lists", Config); // Remove users from the list if they are in the ignored list if (!string.IsNullOrEmpty(Config.IgnoredUsersListName)) @@ -965,28 +967,28 @@ public class Program } await dBHelper.CreateUsersDB(users); - KeyValuePair> hasSelectedUsersKVP; + KeyValuePair> hasSelectedUsersKVP; if(Config.NonInteractiveMode && Config.NonInteractiveModePurchasedTab) { - hasSelectedUsersKVP = new KeyValuePair>(true, new Dictionary { { "PurchasedTab", 0 } }); + hasSelectedUsersKVP = new KeyValuePair>(true, new Dictionary { { "PurchasedTab", 0 } }); } else if (Config.NonInteractiveMode && string.IsNullOrEmpty(Config.NonInteractiveModeListName)) { - hasSelectedUsersKVP = new KeyValuePair>(true, users); + hasSelectedUsersKVP = new KeyValuePair>(true, users); } else if (Config.NonInteractiveMode && !string.IsNullOrEmpty(Config.NonInteractiveModeListName)) { var listId = lists[Config.NonInteractiveModeListName]; var listUsernames = await m_ApiHelper.GetListUsers($"/lists/{listId}/users", Config) ?? []; var selectedUsers = users.Where(x => listUsernames.Contains(x.Key)).Distinct().ToDictionary(x => x.Key, x => x.Value); - hasSelectedUsersKVP = new KeyValuePair>(true, selectedUsers); + hasSelectedUsersKVP = new KeyValuePair>(true, selectedUsers); } else { var userSelectionResult = await HandleUserSelection(m_ApiHelper, Config, users, lists); Config = userSelectionResult.updatedConfig; - hasSelectedUsersKVP = new KeyValuePair>(userSelectionResult.IsExit, userSelectionResult.selectedUsers); + hasSelectedUsersKVP = new KeyValuePair>(userSelectionResult.IsExit, userSelectionResult.selectedUsers); } if (hasSelectedUsersKVP.Key && hasSelectedUsersKVP.Value != null && hasSelectedUsersKVP.Value.ContainsKey("SinglePost")) @@ -1052,9 +1054,9 @@ public class Program } else if (hasSelectedUsersKVP.Key && hasSelectedUsersKVP.Value != null && hasSelectedUsersKVP.Value.ContainsKey("PurchasedTab")) { - Dictionary purchasedTabUsers = await m_ApiHelper.GetPurchasedTabUsers("/posts/paid/all", Config, users); + Dictionary purchasedTabUsers = await m_ApiHelper.GetPurchasedTabUsers("/posts/paid/all", Config, users); AnsiConsole.Markup($"[red]Checking folders for Users in Purchased Tab\n[/]"); - foreach (KeyValuePair user in purchasedTabUsers) + foreach (KeyValuePair user in purchasedTabUsers) { string path = ""; if (!string.IsNullOrEmpty(Config.DownloadPath)) @@ -1212,7 +1214,7 @@ public class Program else if (hasSelectedUsersKVP.Key && !hasSelectedUsersKVP.Value.ContainsKey("ConfigChanged")) { //Iterate over each user in the list of users - foreach (KeyValuePair user in hasSelectedUsersKVP.Value) + foreach (KeyValuePair user in hasSelectedUsersKVP.Value) { int paidPostCount = 0; int postCount = 0; @@ -1370,7 +1372,7 @@ public class Program return combinedConfig; } - private static async Task DownloadPaidMessages(IDownloadContext downloadContext, KeyValuePair> hasSelectedUsersKVP, KeyValuePair user, int paidMessagesCount, string path) + private static async Task DownloadPaidMessages(IDownloadContext downloadContext, KeyValuePair> hasSelectedUsersKVP, KeyValuePair user, int paidMessagesCount, string path) { Log.Debug($"Calling DownloadPaidMessages - {user.Key}"); @@ -1503,7 +1505,7 @@ public class Program return paidMessagesCount; } - private static async Task DownloadMessages(IDownloadContext downloadContext, KeyValuePair> hasSelectedUsersKVP, KeyValuePair user, int messagesCount, string path) + private static async Task DownloadMessages(IDownloadContext downloadContext, KeyValuePair> hasSelectedUsersKVP, KeyValuePair user, int messagesCount, string path) { Log.Debug($"Calling DownloadMessages - {user.Key}"); @@ -1636,7 +1638,7 @@ public class Program return messagesCount; } - private static async Task DownloadHighlights(IDownloadContext downloadContext, KeyValuePair user, int highlightsCount, string path) + private static async Task DownloadHighlights(IDownloadContext downloadContext, KeyValuePair user, int highlightsCount, string path) { Log.Debug($"Calling DownloadHighlights - {user.Key}"); @@ -1693,7 +1695,7 @@ public class Program return highlightsCount; } - private static async Task DownloadStories(IDownloadContext downloadContext, KeyValuePair user, int storiesCount, string path) + private static async Task DownloadStories(IDownloadContext downloadContext, KeyValuePair user, int storiesCount, string path) { Log.Debug($"Calling DownloadStories - {user.Key}"); @@ -1750,7 +1752,7 @@ public class Program return storiesCount; } - private static async Task DownloadArchived(IDownloadContext downloadContext, KeyValuePair> hasSelectedUsersKVP, KeyValuePair user, int archivedCount, string path) + private static async Task DownloadArchived(IDownloadContext downloadContext, KeyValuePair> hasSelectedUsersKVP, KeyValuePair user, int archivedCount, string path) { Log.Debug($"Calling DownloadArchived - {user.Key}"); @@ -1883,7 +1885,7 @@ public class Program return archivedCount; } - private static async Task DownloadFreePosts(IDownloadContext downloadContext, KeyValuePair> hasSelectedUsersKVP, KeyValuePair user, int postCount, string path) + private static async Task DownloadFreePosts(IDownloadContext downloadContext, KeyValuePair> hasSelectedUsersKVP, KeyValuePair user, int postCount, string path) { Log.Debug($"Calling DownloadFreePosts - {user.Key}"); @@ -2023,7 +2025,7 @@ public class Program return postCount; } - private static async Task DownloadPaidPosts(IDownloadContext downloadContext, KeyValuePair> hasSelectedUsersKVP, KeyValuePair user, int paidPostCount, string path) + private static async Task DownloadPaidPosts(IDownloadContext downloadContext, KeyValuePair> hasSelectedUsersKVP, KeyValuePair user, int paidPostCount, string path) { Log.Debug($"Calling DownloadPaidPosts - {user.Key}"); @@ -2156,7 +2158,7 @@ public class Program return paidPostCount; } - private static async Task DownloadPaidPostsPurchasedTab(IDownloadContext downloadContext, PaidPostCollection purchasedPosts, KeyValuePair user, int paidPostCount, string path, Dictionary users) + private static async Task DownloadPaidPostsPurchasedTab(IDownloadContext downloadContext, PaidPostCollection purchasedPosts, KeyValuePair user, int paidPostCount, string path, Dictionary users) { int oldPaidPostCount = 0; int newPaidPostCount = 0; @@ -2280,7 +2282,7 @@ public class Program return paidPostCount; } - private static async Task DownloadPaidMessagesPurchasedTab(IDownloadContext downloadContext, PaidMessageCollection paidMessageCollection, KeyValuePair user, int paidMessagesCount, string path, Dictionary users) + private static async Task DownloadPaidMessagesPurchasedTab(IDownloadContext downloadContext, PaidMessageCollection paidMessageCollection, KeyValuePair user, int paidMessagesCount, string path, Dictionary users) { int oldPaidMessagesCount = 0; int newPaidMessagesCount = 0; @@ -2405,7 +2407,7 @@ public class Program return paidMessagesCount; } - private static async Task DownloadStreams(IDownloadContext downloadContext, KeyValuePair> hasSelectedUsersKVP, KeyValuePair user, int streamsCount, string path) + private static async Task DownloadStreams(IDownloadContext downloadContext, KeyValuePair> hasSelectedUsersKVP, KeyValuePair user, int streamsCount, string path) { Log.Debug($"Calling DownloadStreams - {user.Key}"); @@ -2544,7 +2546,7 @@ public class Program return streamsCount; } - private static async Task DownloadPaidMessage(IDownloadContext downloadContext, KeyValuePair> hasSelectedUsersKVP, string username, int paidMessagesCount, string path, long message_id) + private static async Task DownloadPaidMessage(IDownloadContext downloadContext, KeyValuePair> hasSelectedUsersKVP, string username, int paidMessagesCount, string path, long message_id) { Log.Debug($"Calling DownloadPaidMessage - {username}"); @@ -2674,7 +2676,7 @@ public class Program return paidMessagesCount; } - private static async Task DownloadSinglePost(IDownloadContext downloadContext, long post_id, string path, Dictionary users) + private static async Task DownloadSinglePost(IDownloadContext downloadContext, long post_id, string path, Dictionary users) { Log.Debug($"Calling DownloadSinglePost - {post_id.ToString()}"); @@ -2792,10 +2794,10 @@ public class Program } } - public static async Task<(bool IsExit, Dictionary? selectedUsers, Entities.Config? updatedConfig)> HandleUserSelection(APIHelper apiHelper, Entities.Config currentConfig, Dictionary users, Dictionary lists) + public static async Task<(bool IsExit, Dictionary? selectedUsers, Entities.Config? updatedConfig)> HandleUserSelection(APIHelper apiHelper, Entities.Config currentConfig, Dictionary users, Dictionary lists) { bool hasSelectedUsers = false; - Dictionary selectedUsers = new Dictionary(); + Dictionary selectedUsers = new Dictionary(); while (!hasSelectedUsers) { @@ -2836,7 +2838,7 @@ public class Program List listUsernames = new(); foreach (var item in listSelection) { - int listId = lists[item.Replace("[red]", "").Replace("[/]", "")]; + long listId = lists[item.Replace("[red]", "").Replace("[/]", "")]; List usernames = await apiHelper.GetListUsers($"/lists/{listId}/users", config); foreach (string user in usernames) { @@ -2876,11 +2878,11 @@ public class Program } break; case "[red]Download Single Post[/]": - return (true, new Dictionary { { "SinglePost", 0 } }, currentConfig); + return (true, new Dictionary { { "SinglePost", 0 } }, currentConfig); case "[red]Download Single Paid Message[/]": - return (true, new Dictionary { { "SingleMessage", 0 } }, currentConfig); + return (true, new Dictionary { { "SingleMessage", 0 } }, currentConfig); case "[red]Download Purchased Tab[/]": - return (true, new Dictionary { { "PurchasedTab", 0 } }, currentConfig); + return (true, new Dictionary { { "PurchasedTab", 0 } }, currentConfig); case "[red]Edit config.conf[/]": while (true) { @@ -3050,7 +3052,7 @@ public class Program currentConfig = newConfig; if (configChanged) { - return (true, new Dictionary { { "ConfigChanged", 0 } }, currentConfig); + return (true, new Dictionary { { "ConfigChanged", 0 } }, currentConfig); } break; } @@ -3204,7 +3206,7 @@ public class Program if (configChanged) { - return (true, new Dictionary { { "ConfigChanged", 0 } }, currentConfig); + return (true, new Dictionary { { "ConfigChanged", 0 } }, currentConfig); } break; @@ -3230,7 +3232,7 @@ public class Program return (true, selectedUsers, currentConfig); // Return true to indicate selected users } - public static List GetMainMenuOptions(Dictionary users, Dictionary lists) + public static List GetMainMenuOptions(Dictionary users, Dictionary lists) { if (lists.Count > 0) {