diff --git a/OF DL/Helpers/APIHelper.cs b/OF DL/Helpers/APIHelper.cs index ea209c8..ae9c645 100644 --- a/OF DL/Helpers/APIHelper.cs +++ b/OF DL/Helpers/APIHelper.cs @@ -26,7 +26,7 @@ namespace OF_DL.Helpers; public class APIHelper : IAPIHelper { private static readonly JsonSerializerSettings m_JsonSerializerSettings; - private readonly IDBHelper m_DBHelper; + private readonly IDBHelper dbHelper; private readonly IDownloadConfig downloadConfig; private readonly Auth auth; private static DateTime? cachedDynamicRulesExpiration; @@ -42,11 +42,11 @@ public class APIHelper : IAPIHelper }; } - public APIHelper(Auth auth, IDownloadConfig downloadConfig) + public APIHelper(Auth auth, IDownloadConfig downloadConfig, IDBHelper dbHelper) { this.auth = auth; - m_DBHelper = new DBHelper(downloadConfig); this.downloadConfig = downloadConfig; + this.dbHelper = dbHelper; } @@ -570,21 +570,21 @@ public class APIHelper : IAPIHelper { if (story.media[0].createdAt.HasValue) { - await m_DBHelper.AddStory(folder, story.id, string.Empty, "0", false, false, story.media[0].createdAt.Value); + await dbHelper.AddStory(folder, story.id, string.Empty, "0", false, false, story.media[0].createdAt.Value); } else if (story.createdAt.HasValue) { - await m_DBHelper.AddStory(folder, story.id, string.Empty, "0", false, false, story.createdAt.Value); + await dbHelper.AddStory(folder, story.id, string.Empty, "0", false, false, story.createdAt.Value); } else { - await m_DBHelper.AddStory(folder, story.id, string.Empty, "0", false, false, DateTime.Now); + await dbHelper.AddStory(folder, story.id, string.Empty, "0", false, false, DateTime.Now); } if (story.media != null && story.media.Count > 0) { foreach (Stories.Medium medium in story.media) { - await m_DBHelper.AddMedia(folder, medium.id, story.id, medium.files.full.url, null, null, null, "Stories", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), false, false, null); + await dbHelper.AddMedia(folder, medium.id, story.id, medium.files.full.url, null, null, null, "Stories", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), false, false, null); if (medium.type == "photo" && !config.DownloadImages) { continue; @@ -671,21 +671,21 @@ public class APIHelper : IAPIHelper { if (item.media[0].createdAt.HasValue) { - await m_DBHelper.AddStory(folder, item.id, string.Empty, "0", false, false, item.media[0].createdAt.Value); + await dbHelper.AddStory(folder, item.id, string.Empty, "0", false, false, item.media[0].createdAt.Value); } else if (item.createdAt.HasValue) { - await m_DBHelper.AddStory(folder, item.id, string.Empty, "0", false, false, item.createdAt.Value); + await dbHelper.AddStory(folder, item.id, string.Empty, "0", false, false, item.createdAt.Value); } else { - await m_DBHelper.AddStory(folder, item.id, string.Empty, "0", false, false, DateTime.Now); + await dbHelper.AddStory(folder, item.id, string.Empty, "0", false, false, DateTime.Now); } if (item.media.Count > 0 && item.media[0].canView) { foreach (HighlightMedia.Medium medium in item.media) { - await m_DBHelper.AddMedia(folder, medium.id, item.id, item.media[0].files.full.url, null, null, null, "Stories", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), false, false, null); + await dbHelper.AddMedia(folder, medium.id, item.id, item.media[0].files.full.url, null, null, null, "Stories", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), false, false, null); if (medium.type == "photo" && !config.DownloadImages) { continue; @@ -808,7 +808,7 @@ public class APIHelper : IAPIHelper } } } - await m_DBHelper.AddPost(folder, purchase.id, purchase.text != null ? purchase.text : string.Empty, purchase.price != null ? purchase.price.ToString() : "0", purchase.price != null && purchase.isOpened ? true : false, purchase.isArchived.HasValue ? purchase.isArchived.Value : false, purchase.createdAt != null ? purchase.createdAt.Value : purchase.postedAt.Value); + await dbHelper.AddPost(folder, purchase.id, purchase.text != null ? purchase.text : string.Empty, purchase.price != null ? purchase.price.ToString() : "0", purchase.price != null && purchase.isOpened ? true : false, purchase.isArchived.HasValue ? purchase.isArchived.Value : false, purchase.createdAt != null ? purchase.createdAt.Value : purchase.postedAt.Value); paidPostCollection.PaidPostObjects.Add(purchase); foreach (Messages.Medium medium in purchase.media) { @@ -840,7 +840,7 @@ public class APIHelper : IAPIHelper { if (!paidPostCollection.PaidPosts.ContainsKey(medium.id)) { - await m_DBHelper.AddMedia(folder, medium.id, purchase.id, medium.files.full.url, null, null, null, "Posts", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), previewids.Contains(medium.id) ? true : false, false, null); + await dbHelper.AddMedia(folder, medium.id, purchase.id, medium.files.full.url, null, null, null, "Posts", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), previewids.Contains(medium.id) ? true : false, false, null); paidPostCollection.PaidPosts.Add(medium.id, medium.files.full.url); paidPostCollection.PaidPostMedia.Add(medium); } @@ -850,7 +850,7 @@ public class APIHelper : IAPIHelper if (!paidPostCollection.PaidPosts.ContainsKey(medium.id)) { - await m_DBHelper.AddMedia(folder, medium.id, purchase.id, medium.files.drm.manifest.dash, null, null, null, "Posts", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), previewids.Contains(medium.id) ? true : false, false, null); + await dbHelper.AddMedia(folder, medium.id, purchase.id, medium.files.drm.manifest.dash, null, null, null, "Posts", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), previewids.Contains(medium.id) ? true : false, false, null); paidPostCollection.PaidPosts.Add(medium.id, $"{medium.files.drm.manifest.dash},{medium.files.drm.signature.dash.CloudFrontPolicy},{medium.files.drm.signature.dash.CloudFrontSignature},{medium.files.drm.signature.dash.CloudFrontKeyPairId},{medium.id},{purchase.id}"); paidPostCollection.PaidPostMedia.Add(medium); } @@ -863,7 +863,7 @@ public class APIHelper : IAPIHelper { if (!paidPostCollection.PaidPosts.ContainsKey(medium.id)) { - await m_DBHelper.AddMedia(folder, medium.id, purchase.id, medium.files.full.url, null, null, null, "Posts", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), previewids.Contains(medium.id) ? true : false, false, null); + await dbHelper.AddMedia(folder, medium.id, purchase.id, medium.files.full.url, null, null, null, "Posts", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), previewids.Contains(medium.id) ? true : false, false, null); paidPostCollection.PaidPosts.Add(medium.id, medium.files.full.url); paidPostCollection.PaidPostMedia.Add(medium); } @@ -872,7 +872,7 @@ public class APIHelper : IAPIHelper { if (!paidPostCollection.PaidPosts.ContainsKey(medium.id)) { - await m_DBHelper.AddMedia(folder, medium.id, purchase.id, medium.files.drm.manifest.dash, null, null, null, "Posts", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), previewids.Contains(medium.id) ? true : false, false, null); + await dbHelper.AddMedia(folder, medium.id, purchase.id, medium.files.drm.manifest.dash, null, null, null, "Posts", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), previewids.Contains(medium.id) ? true : false, false, null); paidPostCollection.PaidPosts.Add(medium.id, $"{medium.files.drm.manifest.dash},{medium.files.drm.signature.dash.CloudFrontPolicy},{medium.files.drm.signature.dash.CloudFrontSignature},{medium.files.drm.signature.dash.CloudFrontKeyPairId},{medium.id},{purchase.id}"); paidPostCollection.PaidPostMedia.Add(medium); } @@ -925,7 +925,7 @@ public class APIHelper : IAPIHelper } else if (config.DownloadPostsIncrementally) { - var mostRecentPostDate = await m_DBHelper.GetMostRecentPostDate(folder); + var mostRecentPostDate = await dbHelper.GetMostRecentPostDate(folder); if (mostRecentPostDate.HasValue) { downloadDateSelection = Enumerations.DownloadDateSelection.after; @@ -1001,7 +1001,7 @@ public class APIHelper : IAPIHelper } } } - await m_DBHelper.AddPost(folder, post.id, post.rawText != null ? post.rawText : string.Empty, post.price != null ? post.price.ToString() : "0", post.price != null && post.isOpened ? true : false, post.isArchived, post.postedAt); + await dbHelper.AddPost(folder, post.id, post.rawText != null ? post.rawText : string.Empty, post.price != null ? post.price.ToString() : "0", post.price != null && post.isOpened ? true : false, post.isArchived, post.postedAt); postCollection.PostObjects.Add(post); if (post.media != null && post.media.Count > 0) { @@ -1032,7 +1032,7 @@ public class APIHelper : IAPIHelper { if (!postCollection.Posts.ContainsKey(medium.id)) { - await m_DBHelper.AddMedia(folder, medium.id, post.id, medium.files!.full.url, null, null, null, "Posts", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), postPreviewIds.Contains((long)medium.id) ? true : false, false, null); + await dbHelper.AddMedia(folder, medium.id, post.id, medium.files!.full.url, null, null, null, "Posts", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), postPreviewIds.Contains((long)medium.id) ? true : false, false, null); postCollection.Posts.Add(medium.id, medium.files!.full.url); postCollection.PostMedia.Add(medium); } @@ -1044,7 +1044,7 @@ public class APIHelper : IAPIHelper { if (!postCollection.Posts.ContainsKey(medium.id)) { - await m_DBHelper.AddMedia(folder, medium.id, post.id, medium.files.preview.url, null, null, null, "Posts", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), postPreviewIds.Contains((long)medium.id) ? true : false, false, null); + await dbHelper.AddMedia(folder, medium.id, post.id, medium.files.preview.url, null, null, null, "Posts", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), postPreviewIds.Contains((long)medium.id) ? true : false, false, null); postCollection.Posts.Add(medium.id, medium.files.preview.url); postCollection.PostMedia.Add(medium); } @@ -1058,7 +1058,7 @@ public class APIHelper : IAPIHelper { if (!postCollection.Posts.ContainsKey(medium.id)) { - await m_DBHelper.AddMedia(folder, medium.id, post.id, medium.files.drm.manifest.dash, null, null, null, "Posts", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), postPreviewIds.Contains((long)medium.id) ? true : false, false, null); + await dbHelper.AddMedia(folder, medium.id, post.id, medium.files.drm.manifest.dash, null, null, null, "Posts", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), postPreviewIds.Contains((long)medium.id) ? true : false, false, null); postCollection.Posts.Add(medium.id, $"{medium.files.drm.manifest.dash},{medium.files.drm.signature.dash.CloudFrontPolicy},{medium.files.drm.signature.dash.CloudFrontSignature},{medium.files.drm.signature.dash.CloudFrontKeyPairId},{medium.id},{post.id}"); postCollection.PostMedia.Add(medium); } @@ -1115,7 +1115,7 @@ public class APIHelper : IAPIHelper } } } - await m_DBHelper.AddPost(folder, singlePost.id, singlePost.text != null ? singlePost.text : string.Empty, singlePost.price != null ? singlePost.price.ToString() : "0", singlePost.price != null && singlePost.isOpened ? true : false, singlePost.isArchived, singlePost.postedAt); + await dbHelper.AddPost(folder, singlePost.id, singlePost.text != null ? singlePost.text : string.Empty, singlePost.price != null ? singlePost.price.ToString() : "0", singlePost.price != null && singlePost.isOpened ? true : false, singlePost.isArchived, singlePost.postedAt); singlePostCollection.SinglePostObjects.Add(singlePost); if (singlePost.media != null && singlePost.media.Count > 0) { @@ -1146,7 +1146,7 @@ public class APIHelper : IAPIHelper { if (!singlePostCollection.SinglePosts.ContainsKey(medium.id)) { - await m_DBHelper.AddMedia(folder, medium.id, singlePost.id, medium.files!.full.url, null, null, null, "Posts", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), postPreviewIds.Contains((long)medium.id) ? true : false, false, null); + await dbHelper.AddMedia(folder, medium.id, singlePost.id, medium.files!.full.url, null, null, null, "Posts", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), postPreviewIds.Contains((long)medium.id) ? true : false, false, null); singlePostCollection.SinglePosts.Add(medium.id, medium.files!.full.url); singlePostCollection.SinglePostMedia.Add(medium); } @@ -1159,7 +1159,7 @@ public class APIHelper : IAPIHelper { if (!singlePostCollection.SinglePosts.ContainsKey(medium.id)) { - await m_DBHelper.AddMedia(folder, medium.id, singlePost.id, medium.videoSources._240, null, null, null, "Posts", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), postPreviewIds.Contains((long)medium.id) ? true : false, false, null); + await dbHelper.AddMedia(folder, medium.id, singlePost.id, medium.videoSources._240, null, null, null, "Posts", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), postPreviewIds.Contains((long)medium.id) ? true : false, false, null); singlePostCollection.SinglePosts.Add(medium.id, medium.videoSources._240); singlePostCollection.SinglePostMedia.Add(medium); } @@ -1173,7 +1173,7 @@ public class APIHelper : IAPIHelper { if (!singlePostCollection.SinglePosts.ContainsKey(medium.id)) { - await m_DBHelper.AddMedia(folder, medium.id, singlePost.id, medium.videoSources._720, null, null, null, "Posts", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), postPreviewIds.Contains((long)medium.id) ? true : false, false, null); + await dbHelper.AddMedia(folder, medium.id, singlePost.id, medium.videoSources._720, null, null, null, "Posts", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), postPreviewIds.Contains((long)medium.id) ? true : false, false, null); singlePostCollection.SinglePosts.Add(medium.id, medium.videoSources._720); singlePostCollection.SinglePostMedia.Add(medium); } @@ -1189,7 +1189,7 @@ public class APIHelper : IAPIHelper { if (!singlePostCollection.SinglePosts.ContainsKey(medium.id)) { - await m_DBHelper.AddMedia(folder, medium.id, singlePost.id, medium.files.drm.manifest.dash, null, null, null, "Posts", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), postPreviewIds.Contains((long)medium.id) ? true : false, false, null); + await dbHelper.AddMedia(folder, medium.id, singlePost.id, medium.files.drm.manifest.dash, null, null, null, "Posts", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), postPreviewIds.Contains((long)medium.id) ? true : false, false, null); singlePostCollection.SinglePosts.Add(medium.id, $"{medium.files.drm.manifest.dash},{medium.files.drm.signature.dash.CloudFrontPolicy},{medium.files.drm.signature.dash.CloudFrontSignature},{medium.files.drm.signature.dash.CloudFrontKeyPairId},{medium.id},{singlePost.id}"); singlePostCollection.SinglePostMedia.Add(medium); } @@ -1199,7 +1199,7 @@ public class APIHelper : IAPIHelper { if (!singlePostCollection.SinglePosts.ContainsKey(medium.id)) { - await m_DBHelper.AddMedia(folder, medium.id, singlePost.id, medium.files.preview.url, null, null, null, "Posts", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), postPreviewIds.Contains((long)medium.id) ? true : false, false, null); + await dbHelper.AddMedia(folder, medium.id, singlePost.id, medium.files.preview.url, null, null, null, "Posts", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), postPreviewIds.Contains((long)medium.id) ? true : false, false, null); singlePostCollection.SinglePosts.Add(medium.id, medium.files.preview.url); singlePostCollection.SinglePostMedia.Add(medium); } @@ -1304,7 +1304,7 @@ public class APIHelper : IAPIHelper } } } - await m_DBHelper.AddPost(folder, stream.id, stream.text != null ? stream.text : string.Empty, stream.price != null ? stream.price.ToString() : "0", stream.price != null && stream.isOpened ? true : false, stream.isArchived, stream.postedAt); + await dbHelper.AddPost(folder, stream.id, stream.text != null ? stream.text : string.Empty, stream.price != null ? stream.price.ToString() : "0", stream.price != null && stream.isOpened ? true : false, stream.isArchived, stream.postedAt); streamsCollection.StreamObjects.Add(stream); if (stream.media != null && stream.media.Count > 0) { @@ -1333,7 +1333,7 @@ public class APIHelper : IAPIHelper { if (!streamsCollection.Streams.ContainsKey(medium.id)) { - await m_DBHelper.AddMedia(folder, medium.id, stream.id, medium.files.full.url, null, null, null, "Posts", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), streamPreviewIds.Contains((long)medium.id) ? true : false, false, null); + await dbHelper.AddMedia(folder, medium.id, stream.id, medium.files.full.url, null, null, null, "Posts", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), streamPreviewIds.Contains((long)medium.id) ? true : false, false, null); streamsCollection.Streams.Add(medium.id, medium.files.full.url); streamsCollection.StreamMedia.Add(medium); } @@ -1346,7 +1346,7 @@ public class APIHelper : IAPIHelper { if (!streamsCollection.Streams.ContainsKey(medium.id)) { - await m_DBHelper.AddMedia(folder, medium.id, stream.id, medium.files.drm.manifest.dash, null, null, null, "Posts", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), streamPreviewIds.Contains((long)medium.id) ? true : false, false, null); + await dbHelper.AddMedia(folder, medium.id, stream.id, medium.files.drm.manifest.dash, null, null, null, "Posts", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), streamPreviewIds.Contains((long)medium.id) ? true : false, false, null); streamsCollection.Streams.Add(medium.id, $"{medium.files.drm.manifest.dash},{medium.files.drm.signature.dash.CloudFrontPolicy},{medium.files.drm.signature.dash.CloudFrontSignature},{medium.files.drm.signature.dash.CloudFrontKeyPairId},{medium.id},{stream.id}"); streamsCollection.StreamMedia.Add(medium); } @@ -1452,7 +1452,7 @@ public class APIHelper : IAPIHelper } } } - await m_DBHelper.AddPost(folder, archive.id, archive.text != null ? archive.text : string.Empty, archive.price != null ? archive.price.ToString() : "0", archive.price != null && archive.isOpened ? true : false, archive.isArchived, archive.postedAt); + await dbHelper.AddPost(folder, archive.id, archive.text != null ? archive.text : string.Empty, archive.price != null ? archive.price.ToString() : "0", archive.price != null && archive.isOpened ? true : false, archive.isArchived, archive.postedAt); archivedCollection.ArchivedPostObjects.Add(archive); if (archive.media != null && archive.media.Count > 0) { @@ -1478,7 +1478,7 @@ public class APIHelper : IAPIHelper { if (!archivedCollection.ArchivedPosts.ContainsKey(medium.id)) { - await m_DBHelper.AddMedia(folder, medium.id, archive.id, medium.files.full.url, null, null, null, "Posts", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), previewids.Contains(medium.id) ? true : false, false, null); + await dbHelper.AddMedia(folder, medium.id, archive.id, medium.files.full.url, null, null, null, "Posts", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), previewids.Contains(medium.id) ? true : false, false, null); archivedCollection.ArchivedPosts.Add(medium.id, medium.files.full.url); archivedCollection.ArchivedPostMedia.Add(medium); } @@ -1487,7 +1487,7 @@ public class APIHelper : IAPIHelper { if (!archivedCollection.ArchivedPosts.ContainsKey(medium.id)) { - await m_DBHelper.AddMedia(folder, medium.id, archive.id, medium.files.drm.manifest.dash, null, null, null, "Posts", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), previewids.Contains(medium.id) ? true : false, false, null); + await dbHelper.AddMedia(folder, medium.id, archive.id, medium.files.drm.manifest.dash, null, null, null, "Posts", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), previewids.Contains(medium.id) ? true : false, false, null); archivedCollection.ArchivedPosts.Add(medium.id, $"{medium.files.drm.manifest.dash},{medium.files.drm.signature.dash.CloudFrontPolicy},{medium.files.drm.signature.dash.CloudFrontSignature},{medium.files.drm.signature.dash.CloudFrontKeyPairId},{medium.id},{archive.id}"); archivedCollection.ArchivedPostMedia.Add(medium); } @@ -1581,7 +1581,7 @@ public class APIHelper : IAPIHelper } if (!config.IgnoreOwnMessages || list.fromUser.id != Convert.ToInt32(auth.USER_ID)) { - await m_DBHelper.AddMessage(folder, list.id, list.text != null ? list.text : string.Empty, list.price != null ? list.price.ToString() : "0", list.canPurchaseReason == "opened" ? true : list.canPurchaseReason != "opened" ? false : (bool?)null ?? false, false, list.createdAt.HasValue ? list.createdAt.Value : DateTime.Now, list.fromUser != null && list.fromUser.id != null ? list.fromUser.id.Value : int.MinValue); + await dbHelper.AddMessage(folder, list.id, list.text != null ? list.text : string.Empty, list.price != null ? list.price.ToString() : "0", list.canPurchaseReason == "opened" ? true : list.canPurchaseReason != "opened" ? false : (bool?)null ?? false, false, list.createdAt.HasValue ? list.createdAt.Value : DateTime.Now, list.fromUser != null && list.fromUser.id != null ? list.fromUser.id.Value : int.MinValue); messageCollection.MessageObjects.Add(list); if (list.canPurchaseReason != "opened" && list.media != null && list.media.Count > 0) { @@ -1607,7 +1607,7 @@ public class APIHelper : IAPIHelper } if (!messageCollection.Messages.ContainsKey(medium.id)) { - await m_DBHelper.AddMedia(folder, medium.id, list.id, medium.files.full.url, null, null, null, "Messages", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), messagePreviewIds.Contains(medium.id) ? true : false, false, null); + await dbHelper.AddMedia(folder, medium.id, list.id, medium.files.full.url, null, null, null, "Messages", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), messagePreviewIds.Contains(medium.id) ? true : false, false, null); messageCollection.Messages.Add(medium.id, medium.files.full.url); messageCollection.MessageMedia.Add(medium); } @@ -1632,7 +1632,7 @@ public class APIHelper : IAPIHelper } if (!messageCollection.Messages.ContainsKey(medium.id)) { - await m_DBHelper.AddMedia(folder, medium.id, list.id, medium.files.drm.manifest.dash, null, null, null, "Messages", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), messagePreviewIds.Contains(medium.id) ? true : false, false, null); + await dbHelper.AddMedia(folder, medium.id, list.id, medium.files.drm.manifest.dash, null, null, null, "Messages", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), messagePreviewIds.Contains(medium.id) ? true : false, false, null); messageCollection.Messages.Add(medium.id, $"{medium.files.drm.manifest.dash},{medium.files.drm.signature.dash.CloudFrontPolicy},{medium.files.drm.signature.dash.CloudFrontSignature},{medium.files.drm.signature.dash.CloudFrontKeyPairId},{medium.id},{list.id}"); messageCollection.MessageMedia.Add(medium); } @@ -1663,7 +1663,7 @@ public class APIHelper : IAPIHelper } if (!messageCollection.Messages.ContainsKey(medium.id)) { - await m_DBHelper.AddMedia(folder, medium.id, list.id, medium.files.full.url, null, null, null, "Messages", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), messagePreviewIds.Contains(medium.id) ? true : false, false, null); + await dbHelper.AddMedia(folder, medium.id, list.id, medium.files.full.url, null, null, null, "Messages", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), messagePreviewIds.Contains(medium.id) ? true : false, false, null); messageCollection.Messages.Add(medium.id, medium.files.full.url); messageCollection.MessageMedia.Add(medium); } @@ -1688,7 +1688,7 @@ public class APIHelper : IAPIHelper } if (!messageCollection.Messages.ContainsKey(medium.id)) { - await m_DBHelper.AddMedia(folder, medium.id, list.id, medium.files.drm.manifest.dash, null, null, null, "Messages", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), messagePreviewIds.Contains(medium.id) ? true : false, false, null); + await dbHelper.AddMedia(folder, medium.id, list.id, medium.files.drm.manifest.dash, null, null, null, "Messages", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), messagePreviewIds.Contains(medium.id) ? true : false, false, null); messageCollection.Messages.Add(medium.id, $"{medium.files.drm.manifest.dash},{medium.files.drm.signature.dash.CloudFrontPolicy},{medium.files.drm.signature.dash.CloudFrontSignature},{medium.files.drm.signature.dash.CloudFrontKeyPairId},{medium.id},{list.id}"); messageCollection.MessageMedia.Add(medium); } @@ -1734,7 +1734,7 @@ public class APIHelper : IAPIHelper if (!config.IgnoreOwnMessages || message.fromUser.id != Convert.ToInt32(auth.USER_ID)) { - await m_DBHelper.AddMessage(folder, message.id, message.text != null ? message.text : string.Empty, message.price != null ? message.price.ToString() : "0", true, false, message.createdAt.HasValue ? message.createdAt.Value : DateTime.Now, message.fromUser != null && message.fromUser.id != null ? message.fromUser.id.Value : int.MinValue); + await dbHelper.AddMessage(folder, message.id, message.text != null ? message.text : string.Empty, message.price != null ? message.price.ToString() : "0", true, false, message.createdAt.HasValue ? message.createdAt.Value : DateTime.Now, message.fromUser != null && message.fromUser.id != null ? message.fromUser.id.Value : int.MinValue); singlePaidMessageCollection.SingleMessageObjects.Add(message); List messagePreviewIds = new(); if (message.previews != null && message.previews.Count > 0) @@ -1776,7 +1776,7 @@ public class APIHelper : IAPIHelper if (!singlePaidMessageCollection.SingleMessages.ContainsKey(medium.id)) { - await m_DBHelper.AddMedia(folder, medium.id, message.id, medium.files.full.url, null, null, null, "Messages", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), messagePreviewIds.Contains(medium.id) ? true : false, false, null); + await dbHelper.AddMedia(folder, medium.id, message.id, medium.files.full.url, null, null, null, "Messages", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), messagePreviewIds.Contains(medium.id) ? true : false, false, null); singlePaidMessageCollection.SingleMessages.Add(medium.id, medium.files.full.url.ToString()); singlePaidMessageCollection.SingleMessageMedia.Add(medium); } @@ -1802,7 +1802,7 @@ public class APIHelper : IAPIHelper if (!singlePaidMessageCollection.PreviewSingleMessages.ContainsKey(medium.id)) { - await m_DBHelper.AddMedia(folder, medium.id, message.id, medium.files.full.url, null, null, null, "Messages", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), messagePreviewIds.Contains(medium.id) ? true : false, false, null); + await dbHelper.AddMedia(folder, medium.id, message.id, medium.files.full.url, null, null, null, "Messages", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), messagePreviewIds.Contains(medium.id) ? true : false, false, null); singlePaidMessageCollection.PreviewSingleMessages.Add(medium.id, medium.files.full.url.ToString()); singlePaidMessageCollection.PreviewSingleMessageMedia.Add(medium); } @@ -1828,7 +1828,7 @@ public class APIHelper : IAPIHelper if (!singlePaidMessageCollection.SingleMessages.ContainsKey(medium.id)) { - await m_DBHelper.AddMedia(folder, medium.id, message.id, medium.files.drm.manifest.dash, null, null, null, "Messages", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), messagePreviewIds.Contains(medium.id) ? true : false, false, null); + await dbHelper.AddMedia(folder, medium.id, message.id, medium.files.drm.manifest.dash, null, null, null, "Messages", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), messagePreviewIds.Contains(medium.id) ? true : false, false, null); singlePaidMessageCollection.SingleMessages.Add(medium.id, $"{medium.files.drm.manifest.dash},{medium.files.drm.signature.dash.CloudFrontPolicy},{medium.files.drm.signature.dash.CloudFrontSignature},{medium.files.drm.signature.dash.CloudFrontKeyPairId},{medium.id},{message.id}"); singlePaidMessageCollection.SingleMessageMedia.Add(medium); } @@ -1854,7 +1854,7 @@ public class APIHelper : IAPIHelper if (!singlePaidMessageCollection.PreviewSingleMessages.ContainsKey(medium.id)) { - await m_DBHelper.AddMedia(folder, medium.id, message.id, medium.files.drm.manifest.dash, null, null, null, "Messages", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), messagePreviewIds.Contains(medium.id) ? true : false, false, null); + await dbHelper.AddMedia(folder, medium.id, message.id, medium.files.drm.manifest.dash, null, null, null, "Messages", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), messagePreviewIds.Contains(medium.id) ? true : false, false, null); singlePaidMessageCollection.PreviewSingleMessages.Add(medium.id, $"{medium.files.drm.manifest.dash},{medium.files.drm.signature.dash.CloudFrontPolicy},{medium.files.drm.signature.dash.CloudFrontSignature},{medium.files.drm.signature.dash.CloudFrontKeyPairId},{medium.id},{message.id}"); singlePaidMessageCollection.PreviewSingleMessageMedia.Add(medium); } @@ -1945,11 +1945,11 @@ public class APIHelper : IAPIHelper { if (purchase.postedAt != null) { - await m_DBHelper.AddMessage(folder, purchase.id, purchase.text != null ? purchase.text : string.Empty, purchase.price != null ? purchase.price : "0", true, false, purchase.postedAt.Value, purchase.fromUser.id); + await dbHelper.AddMessage(folder, purchase.id, purchase.text != null ? purchase.text : string.Empty, purchase.price != null ? purchase.price : "0", true, false, purchase.postedAt.Value, purchase.fromUser.id); } else { - await m_DBHelper.AddMessage(folder, purchase.id, purchase.text != null ? purchase.text : string.Empty, purchase.price != null ? purchase.price : "0", true, false, purchase.createdAt.Value, purchase.fromUser.id); + await dbHelper.AddMessage(folder, purchase.id, purchase.text != null ? purchase.text : string.Empty, purchase.price != null ? purchase.price : "0", true, false, purchase.createdAt.Value, purchase.fromUser.id); } paidMessageCollection.PaidMessageObjects.Add(purchase); if (purchase.media != null && purchase.media.Count > 0) @@ -2007,7 +2007,7 @@ public class APIHelper : IAPIHelper } if (!paidMessageCollection.PaidMessages.ContainsKey(medium.id)) { - await m_DBHelper.AddMedia(folder, medium.id, purchase.id, medium.files.full.url, null, null, null, "Messages", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), previewids.Contains(medium.id) ? true : false, false, null); + await dbHelper.AddMedia(folder, medium.id, purchase.id, medium.files.full.url, null, null, null, "Messages", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), previewids.Contains(medium.id) ? true : false, false, null); paidMessageCollection.PaidMessages.Add(medium.id, medium.files.full.url); paidMessageCollection.PaidMessageMedia.Add(medium); } @@ -2032,7 +2032,7 @@ public class APIHelper : IAPIHelper } if (!paidMessageCollection.PaidMessages.ContainsKey(medium.id)) { - await m_DBHelper.AddMedia(folder, medium.id, purchase.id, medium.files.drm.manifest.dash, null, null, null, "Messages", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), previewids.Contains(medium.id) ? true : false, false, null); + await dbHelper.AddMedia(folder, medium.id, purchase.id, medium.files.drm.manifest.dash, null, null, null, "Messages", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), previewids.Contains(medium.id) ? true : false, false, null); paidMessageCollection.PaidMessages.Add(medium.id, $"{medium.files.drm.manifest.dash},{medium.files.drm.signature.dash.CloudFrontPolicy},{medium.files.drm.signature.dash.CloudFrontSignature},{medium.files.drm.signature.dash.CloudFrontKeyPairId},{medium.id},{purchase.id}"); paidMessageCollection.PaidMessageMedia.Add(medium); } @@ -2060,7 +2060,7 @@ public class APIHelper : IAPIHelper } if (!paidMessageCollection.PaidMessages.ContainsKey(medium.id)) { - await m_DBHelper.AddMedia(folder, medium.id, purchase.id, medium.files.full.url, null, null, null, "Messages", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), previewids.Contains(medium.id) ? true : false, false, null); + await dbHelper.AddMedia(folder, medium.id, purchase.id, medium.files.full.url, null, null, null, "Messages", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), previewids.Contains(medium.id) ? true : false, false, null); paidMessageCollection.PaidMessages.Add(medium.id, medium.files.full.url); paidMessageCollection.PaidMessageMedia.Add(medium); } @@ -2085,7 +2085,7 @@ public class APIHelper : IAPIHelper } if (!paidMessageCollection.PaidMessages.ContainsKey(medium.id)) { - await m_DBHelper.AddMedia(folder, medium.id, purchase.id, medium.files.drm.manifest.dash, null, null, null, "Messages", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), previewids.Contains(medium.id) ? true : false, false, null); + await dbHelper.AddMedia(folder, medium.id, purchase.id, medium.files.drm.manifest.dash, null, null, null, "Messages", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), previewids.Contains(medium.id) ? true : false, false, null); paidMessageCollection.PaidMessages.Add(medium.id, $"{medium.files.drm.manifest.dash},{medium.files.drm.signature.dash.CloudFrontPolicy},{medium.files.drm.signature.dash.CloudFrontSignature},{medium.files.drm.signature.dash.CloudFrontKeyPairId},{medium.id},{purchase.id}"); paidMessageCollection.PaidMessageMedia.Add(medium); } @@ -2406,7 +2406,7 @@ public class APIHelper : IAPIHelper } } } - await m_DBHelper.AddPost(path, purchase.id, purchase.text != null ? purchase.text : string.Empty, purchase.price != null ? purchase.price.ToString() : "0", purchase.price != null && purchase.isOpened ? true : false, purchase.isArchived.HasValue ? purchase.isArchived.Value : false, purchase.createdAt != null ? purchase.createdAt.Value : purchase.postedAt.Value); + await dbHelper.AddPost(path, purchase.id, purchase.text != null ? purchase.text : string.Empty, purchase.price != null ? purchase.price.ToString() : "0", purchase.price != null && purchase.isOpened ? true : false, purchase.isArchived.HasValue ? purchase.isArchived.Value : false, purchase.createdAt != null ? purchase.createdAt.Value : purchase.postedAt.Value); purchasedTabCollection.PaidPosts.PaidPostObjects.Add(purchase); foreach (Messages.Medium medium in purchase.media) { @@ -2434,7 +2434,7 @@ public class APIHelper : IAPIHelper if (!purchasedTabCollection.PaidPosts.PaidPosts.ContainsKey(medium.id)) { - await m_DBHelper.AddMedia(path, medium.id, purchase.id, medium.files.full.url, null, null, null, "Posts", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), previewids.Contains(medium.id) ? true : false, false, null); + await dbHelper.AddMedia(path, medium.id, purchase.id, medium.files.full.url, null, null, null, "Posts", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), previewids.Contains(medium.id) ? true : false, false, null); purchasedTabCollection.PaidPosts.PaidPosts.Add(medium.id, medium.files.full.url); purchasedTabCollection.PaidPosts.PaidPostMedia.Add(medium); } @@ -2444,7 +2444,7 @@ public class APIHelper : IAPIHelper if (!purchasedTabCollection.PaidPosts.PaidPosts.ContainsKey(medium.id)) { - await m_DBHelper.AddMedia(path, medium.id, purchase.id, medium.files.drm.manifest.dash, null, null, null, "Posts", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), previewids.Contains(medium.id) ? true : false, false, null); + await dbHelper.AddMedia(path, medium.id, purchase.id, medium.files.drm.manifest.dash, null, null, null, "Posts", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), previewids.Contains(medium.id) ? true : false, false, null); purchasedTabCollection.PaidPosts.PaidPosts.Add(medium.id, $"{medium.files.drm.manifest.dash},{medium.files.drm.signature.dash.CloudFrontPolicy},{medium.files.drm.signature.dash.CloudFrontSignature},{medium.files.drm.signature.dash.CloudFrontKeyPairId},{medium.id},{purchase.id}"); purchasedTabCollection.PaidPosts.PaidPostMedia.Add(medium); } @@ -2457,7 +2457,7 @@ public class APIHelper : IAPIHelper { if (!purchasedTabCollection.PaidPosts.PaidPosts.ContainsKey(medium.id)) { - await m_DBHelper.AddMedia(path, medium.id, purchase.id, medium.files.full.url, null, null, null, "Posts", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), previewids.Contains(medium.id) ? true : false, false, null); + await dbHelper.AddMedia(path, medium.id, purchase.id, medium.files.full.url, null, null, null, "Posts", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), previewids.Contains(medium.id) ? true : false, false, null); purchasedTabCollection.PaidPosts.PaidPosts.Add(medium.id, medium.files.full.url); purchasedTabCollection.PaidPosts.PaidPostMedia.Add(medium); } @@ -2466,7 +2466,7 @@ public class APIHelper : IAPIHelper { if (!purchasedTabCollection.PaidPosts.PaidPosts.ContainsKey(medium.id)) { - await m_DBHelper.AddMedia(path, medium.id, purchase.id, medium.files.drm.manifest.dash, null, null, null, "Posts", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), previewids.Contains(medium.id) ? true : false, false, null); + await dbHelper.AddMedia(path, medium.id, purchase.id, medium.files.drm.manifest.dash, null, null, null, "Posts", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), previewids.Contains(medium.id) ? true : false, false, null); purchasedTabCollection.PaidPosts.PaidPosts.Add(medium.id, $"{medium.files.drm.manifest.dash},{medium.files.drm.signature.dash.CloudFrontPolicy},{medium.files.drm.signature.dash.CloudFrontSignature},{medium.files.drm.signature.dash.CloudFrontKeyPairId},{medium.id},{purchase.id}"); purchasedTabCollection.PaidPosts.PaidPostMedia.Add(medium); } @@ -2477,11 +2477,11 @@ public class APIHelper : IAPIHelper case "message": if (purchase.postedAt != null) { - await m_DBHelper.AddMessage(path, purchase.id, purchase.text != null ? purchase.text : string.Empty, purchase.price != null ? purchase.price : "0", true, false, purchase.postedAt.Value, purchase.fromUser.id); + await dbHelper.AddMessage(path, purchase.id, purchase.text != null ? purchase.text : string.Empty, purchase.price != null ? purchase.price : "0", true, false, purchase.postedAt.Value, purchase.fromUser.id); } else { - await m_DBHelper.AddMessage(path, purchase.id, purchase.text != null ? purchase.text : string.Empty, purchase.price != null ? purchase.price : "0", true, false, purchase.createdAt.Value, purchase.fromUser.id); + await dbHelper.AddMessage(path, purchase.id, purchase.text != null ? purchase.text : string.Empty, purchase.price != null ? purchase.price : "0", true, false, purchase.createdAt.Value, purchase.fromUser.id); } purchasedTabCollection.PaidMessages.PaidMessageObjects.Add(purchase); if (purchase.media != null && purchase.media.Count > 0) @@ -2539,7 +2539,7 @@ public class APIHelper : IAPIHelper } if (!purchasedTabCollection.PaidMessages.PaidMessages.ContainsKey(medium.id)) { - await m_DBHelper.AddMedia(path, medium.id, purchase.id, medium.files.full.url, null, null, null, "Messages", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), paidMessagePreviewids.Contains(medium.id) ? true : false, false, null); + await dbHelper.AddMedia(path, medium.id, purchase.id, medium.files.full.url, null, null, null, "Messages", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), paidMessagePreviewids.Contains(medium.id) ? true : false, false, null); purchasedTabCollection.PaidMessages.PaidMessages.Add(medium.id, medium.files.full.url); purchasedTabCollection.PaidMessages.PaidMessageMedia.Add(medium); } @@ -2564,7 +2564,7 @@ public class APIHelper : IAPIHelper } if (!purchasedTabCollection.PaidMessages.PaidMessages.ContainsKey(medium.id)) { - await m_DBHelper.AddMedia(path, medium.id, purchase.id, medium.files.drm.manifest.dash, null, null, null, "Messages", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), paidMessagePreviewids.Contains(medium.id) ? true : false, false, null); + await dbHelper.AddMedia(path, medium.id, purchase.id, medium.files.drm.manifest.dash, null, null, null, "Messages", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), paidMessagePreviewids.Contains(medium.id) ? true : false, false, null); purchasedTabCollection.PaidMessages.PaidMessages.Add(medium.id, $"{medium.files.drm.manifest.dash},{medium.files.drm.signature.dash.CloudFrontPolicy},{medium.files.drm.signature.dash.CloudFrontSignature},{medium.files.drm.signature.dash.CloudFrontKeyPairId},{medium.id},{purchase.id}"); purchasedTabCollection.PaidMessages.PaidMessageMedia.Add(medium); } @@ -2592,7 +2592,7 @@ public class APIHelper : IAPIHelper } if (!purchasedTabCollection.PaidMessages.PaidMessages.ContainsKey(medium.id)) { - await m_DBHelper.AddMedia(path, medium.id, purchase.id, medium.files.full.url, null, null, null, "Messages", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), paidMessagePreviewids.Contains(medium.id) ? true : false, false, null); + await dbHelper.AddMedia(path, medium.id, purchase.id, medium.files.full.url, null, null, null, "Messages", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), paidMessagePreviewids.Contains(medium.id) ? true : false, false, null); purchasedTabCollection.PaidMessages.PaidMessages.Add(medium.id, medium.files.full.url); purchasedTabCollection.PaidMessages.PaidMessageMedia.Add(medium); } @@ -2617,7 +2617,7 @@ public class APIHelper : IAPIHelper } if (!purchasedTabCollection.PaidMessages.PaidMessages.ContainsKey(medium.id)) { - await m_DBHelper.AddMedia(path, medium.id, purchase.id, medium.files.drm.manifest.dash, null, null, null, "Messages", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), paidMessagePreviewids.Contains(medium.id) ? true : false, false, null); + await dbHelper.AddMedia(path, medium.id, purchase.id, medium.files.drm.manifest.dash, null, null, null, "Messages", medium.type == "photo" ? "Images" : (medium.type == "video" || medium.type == "gif" ? "Videos" : (medium.type == "audio" ? "Audios" : null)), paidMessagePreviewids.Contains(medium.id) ? true : false, false, null); purchasedTabCollection.PaidMessages.PaidMessages.Add(medium.id, $"{medium.files.drm.manifest.dash},{medium.files.drm.signature.dash.CloudFrontPolicy},{medium.files.drm.signature.dash.CloudFrontSignature},{medium.files.drm.signature.dash.CloudFrontKeyPairId},{medium.id},{purchase.id}"); purchasedTabCollection.PaidMessages.PaidMessageMedia.Add(medium); } diff --git a/OF DL/Helpers/AuthHelper.cs b/OF DL/Helpers/AuthHelper.cs index b8c47d9..33d522c 100644 --- a/OF DL/Helpers/AuthHelper.cs +++ b/OF DL/Helpers/AuthHelper.cs @@ -1,11 +1,12 @@ using OF_DL.Entities; +using OF_DL.Helpers.Interfaces; using PuppeteerSharp; using PuppeteerSharp.BrowserData; using Serilog; namespace OF_DL.Helpers; -public class AuthHelper +public class AuthHelper : IAuthHelper { private readonly LaunchOptions _options = new() { diff --git a/OF DL/Helpers/DownloadContext.cs b/OF DL/Helpers/DownloadContext.cs index cc65dcb..a3146d7 100644 --- a/OF DL/Helpers/DownloadContext.cs +++ b/OF DL/Helpers/DownloadContext.cs @@ -1,9 +1,4 @@ using OF_DL.Entities; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace OF_DL.Helpers { @@ -11,26 +6,23 @@ namespace OF_DL.Helpers { public IDownloadConfig DownloadConfig { get; } public IFileNameFormatConfig FileNameFormatConfig { get; } - public APIHelper ApiHelper { get; } - public DBHelper DBHelper { get; } - public DownloadHelper DownloadHelper { get; } + public IAPIHelper ApiHelper { get; } + public IDBHelper DBHelper { get; } + public IDownloadHelper DownloadHelper { get; } } - internal class DownloadContext : IDownloadContext + internal class DownloadContext( + IDownloadConfig downloadConfig, + IFileNameFormatConfig fileNameFormatConfig, + IAPIHelper apiHelper, + IDBHelper dBHelper, + IDownloadHelper downloadHelper) + : IDownloadContext { - public APIHelper ApiHelper { get; } - public DBHelper DBHelper { get; } - public DownloadHelper DownloadHelper { get; } - public IDownloadConfig DownloadConfig { get; } - public IFileNameFormatConfig FileNameFormatConfig { get; } - - public DownloadContext(Auth auth, IDownloadConfig downloadConfig, IFileNameFormatConfig fileNameFormatConfig, APIHelper apiHelper, DBHelper dBHelper) - { - ApiHelper = apiHelper; - DBHelper = dBHelper; - DownloadConfig = downloadConfig; - FileNameFormatConfig = fileNameFormatConfig; - DownloadHelper = new DownloadHelper(auth, downloadConfig, fileNameFormatConfig); - } + public IAPIHelper ApiHelper { get; } = apiHelper; + public IDBHelper DBHelper { get; } = dBHelper; + public IDownloadHelper DownloadHelper { get; } = downloadHelper; + public IDownloadConfig DownloadConfig { get; } = downloadConfig; + public IFileNameFormatConfig FileNameFormatConfig { get; } = fileNameFormatConfig; } } diff --git a/OF DL/Helpers/DownloadHelper.cs b/OF DL/Helpers/DownloadHelper.cs index f5ad8e2..8454bfc 100644 --- a/OF DL/Helpers/DownloadHelper.cs +++ b/OF DL/Helpers/DownloadHelper.cs @@ -36,17 +36,17 @@ namespace OF_DL.Helpers; public class DownloadHelper : IDownloadHelper { private readonly Auth auth; - private readonly IDBHelper m_DBHelper; - private readonly IFileNameHelper _FileNameHelper; + private readonly IDBHelper dbHelper; + private readonly IFileNameHelper fileNameHelper; private readonly IDownloadConfig downloadConfig; private readonly IFileNameFormatConfig fileNameFormatConfig; private TaskCompletionSource _completionSource; - public DownloadHelper(Auth auth, IDownloadConfig downloadConfig, IFileNameFormatConfig fileNameFormatConfig) + public DownloadHelper(Auth auth, IDownloadConfig downloadConfig, IFileNameFormatConfig fileNameFormatConfig, IDBHelper dbHelper, IFileNameHelper fileNameHelper) { this.auth = auth; - this.m_DBHelper = new DBHelper(downloadConfig); - this._FileNameHelper = new FileNameHelper(auth); + this.dbHelper = dbHelper; + this.fileNameHelper = fileNameHelper; this.downloadConfig = downloadConfig; this.fileNameFormatConfig = fileNameFormatConfig; } @@ -296,7 +296,7 @@ public class DownloadHelper : IDownloadHelper try { - if (!await m_DBHelper.CheckDownloaded(folder, media_id, api_type)) + if (!await dbHelper.CheckDownloaded(folder, media_id, api_type)) { return await HandleNewMedia(folder: folder, media_id: media_id, @@ -352,9 +352,9 @@ public class DownloadHelper : IDownloadHelper return false; } - long size = await m_DBHelper.GetStoredFileSize(folder, media_id, api_type); + long size = await dbHelper.GetStoredFileSize(folder, media_id, api_type); var lastModified = File.GetLastWriteTime(fullPathWithTheNewFileName); - await m_DBHelper.UpdateMedia(folder, media_id, api_type, folder + path, resolvedFilename + extension, size, true, lastModified); + await dbHelper.UpdateMedia(folder, media_id, api_type, folder + path, resolvedFilename + extension, size, true, lastModified); return true; } @@ -459,7 +459,7 @@ public class DownloadHelper : IDownloadHelper //finaly check which filename we should use. Custom or the server one. //if a custom is used, then the servefilename will be different from the resolved filename. string finalName = serverFilename == resolvedFilename ? serverFilename : resolvedFilename; - await m_DBHelper.UpdateMedia(folder, media_id, api_type, folder + path, finalName + extension, fileSizeInBytes, true, lastModified); + await dbHelper.UpdateMedia(folder, media_id, api_type, folder + path, finalName + extension, fileSizeInBytes, true, lastModified); return status; } @@ -476,7 +476,7 @@ public class DownloadHelper : IDownloadHelper { if (downloadConfig.ShowScrapeSize) { - long size = await m_DBHelper.GetStoredFileSize(folder, media_id, api_type); + long size = await dbHelper.GetStoredFileSize(folder, media_id, api_type); task.Increment(size); } else @@ -724,7 +724,7 @@ public class DownloadHelper : IDownloadHelper Uri uri = new(url); string filename = System.IO.Path.GetFileNameWithoutExtension(uri.LocalPath); - string resolvedFilename = await GenerateCustomFileName(filename, filenameFormat, postInfo, postMedia, author, folder.Split("/")[^1], users, _FileNameHelper, CustomFileNameOption.ReturnOriginal); + string resolvedFilename = await GenerateCustomFileName(filename, filenameFormat, postInfo, postMedia, author, folder.Split("/")[^1], users, fileNameHelper, CustomFileNameOption.ReturnOriginal); return await CreateDirectoriesAndDownloadMedia(path, url, folder, media_id, api_type, task, filename, resolvedFilename); } @@ -742,7 +742,7 @@ public class DownloadHelper : IDownloadHelper Uri uri = new(url); string filename = System.IO.Path.GetFileNameWithoutExtension(uri.LocalPath); - string resolvedFilename = await GenerateCustomFileName(filename, filenameFormat, postInfo, postMedia, author, folder.Split("/")[^1], users, _FileNameHelper, CustomFileNameOption.ReturnOriginal); + string resolvedFilename = await GenerateCustomFileName(filename, filenameFormat, postInfo, postMedia, author, folder.Split("/")[^1], users, fileNameHelper, CustomFileNameOption.ReturnOriginal); return await CreateDirectoriesAndDownloadMedia(path, url, folder, media_id, api_type, task, filename, resolvedFilename); } @@ -760,7 +760,7 @@ public class DownloadHelper : IDownloadHelper Uri uri = new(url); string filename = System.IO.Path.GetFileNameWithoutExtension(uri.LocalPath); - string resolvedFilename = await GenerateCustomFileName(filename, filenameFormat, streamInfo, streamMedia, author, folder.Split("/")[^1], users, _FileNameHelper, CustomFileNameOption.ReturnOriginal); + string resolvedFilename = await GenerateCustomFileName(filename, filenameFormat, streamInfo, streamMedia, author, folder.Split("/")[^1], users, fileNameHelper, CustomFileNameOption.ReturnOriginal); return await CreateDirectoriesAndDownloadMedia(path, url, folder, media_id, api_type, task, filename, resolvedFilename); } @@ -779,7 +779,7 @@ public class DownloadHelper : IDownloadHelper } Uri uri = new(url); string filename = System.IO.Path.GetFileNameWithoutExtension(uri.LocalPath); - string resolvedFilename = await GenerateCustomFileName(filename, filenameFormat, messageInfo, messageMedia, fromUser, folder.Split("/")[^1], users, _FileNameHelper, CustomFileNameOption.ReturnOriginal); + string resolvedFilename = await GenerateCustomFileName(filename, filenameFormat, messageInfo, messageMedia, fromUser, folder.Split("/")[^1], users, fileNameHelper, CustomFileNameOption.ReturnOriginal); return await CreateDirectoriesAndDownloadMedia(path, url, folder, media_id, api_type, task, filename, resolvedFilename); } @@ -796,7 +796,7 @@ public class DownloadHelper : IDownloadHelper } Uri uri = new(url); string filename = System.IO.Path.GetFileNameWithoutExtension(uri.LocalPath); - string resolvedFilename = await GenerateCustomFileName(filename, filenameFormat, messageInfo, messageMedia, fromUser, folder.Split("/")[^1], users, _FileNameHelper, CustomFileNameOption.ReturnOriginal); + string resolvedFilename = await GenerateCustomFileName(filename, filenameFormat, messageInfo, messageMedia, fromUser, folder.Split("/")[^1], users, fileNameHelper, CustomFileNameOption.ReturnOriginal); return await CreateDirectoriesAndDownloadMedia(path, url, folder, media_id, api_type, task, filename, resolvedFilename); } @@ -806,7 +806,7 @@ public class DownloadHelper : IDownloadHelper string path = "/Archived/Posts/Free"; Uri uri = new(url); string filename = System.IO.Path.GetFileNameWithoutExtension(uri.LocalPath); - string resolvedFilename = await GenerateCustomFileName(filename, filenameFormat, messageInfo, messageMedia, author, folder.Split("/")[^1], users, _FileNameHelper, CustomFileNameOption.ReturnOriginal); + string resolvedFilename = await GenerateCustomFileName(filename, filenameFormat, messageInfo, messageMedia, author, folder.Split("/")[^1], users, fileNameHelper, CustomFileNameOption.ReturnOriginal); return await CreateDirectoriesAndDownloadMedia(path, url, folder, media_id, api_type, task, filename, resolvedFilename); } @@ -833,7 +833,7 @@ public class DownloadHelper : IDownloadHelper } Uri uri = new(url); string filename = System.IO.Path.GetFileNameWithoutExtension(uri.LocalPath); - string resolvedFilename = await GenerateCustomFileName(filename, filenameFormat, messageInfo, messageMedia, fromUser, folder.Split("/")[^1], users, _FileNameHelper, CustomFileNameOption.ReturnOriginal); + string resolvedFilename = await GenerateCustomFileName(filename, filenameFormat, messageInfo, messageMedia, fromUser, folder.Split("/")[^1], users, fileNameHelper, CustomFileNameOption.ReturnOriginal); return await CreateDirectoriesAndDownloadMedia(path, url, folder, media_id, api_type, task, filename, resolvedFilename); } @@ -850,7 +850,7 @@ public class DownloadHelper : IDownloadHelper } Uri uri = new(url); string filename = System.IO.Path.GetFileNameWithoutExtension(uri.LocalPath); - string resolvedFilename = await GenerateCustomFileName(filename, filenameFormat, messageInfo, messageMedia, fromUser, folder.Split("/")[^1], users, _FileNameHelper, CustomFileNameOption.ReturnOriginal); + string resolvedFilename = await GenerateCustomFileName(filename, filenameFormat, messageInfo, messageMedia, fromUser, folder.Split("/")[^1], users, fileNameHelper, CustomFileNameOption.ReturnOriginal); return await CreateDirectoriesAndDownloadMedia(path, url, folder, media_id, api_type, task, filename, resolvedFilename); } @@ -876,7 +876,7 @@ public class DownloadHelper : IDownloadHelper } Uri uri = new(url); string filename = System.IO.Path.GetFileNameWithoutExtension(uri.LocalPath); - string resolvedFilename = await GenerateCustomFileName(filename, filenameFormat, messageInfo, messageMedia, fromUser, folder.Split("/")[^1], users, _FileNameHelper, CustomFileNameOption.ReturnOriginal); + string resolvedFilename = await GenerateCustomFileName(filename, filenameFormat, messageInfo, messageMedia, fromUser, folder.Split("/")[^1], users, fileNameHelper, CustomFileNameOption.ReturnOriginal); return await CreateDirectoriesAndDownloadMedia(path, url, folder, media_id, api_type, task, filename, resolvedFilename); } @@ -1014,7 +1014,7 @@ public class DownloadHelper : IDownloadHelper task.Increment(1); } - await m_DBHelper.UpdateMedia(folder, media_id, api_type, folder + path, !string.IsNullOrEmpty(customFileName) ? customFileName + ".mp4" : filename + "_source.mp4", fileSizeInBytes, true, lastModified); + await dbHelper.UpdateMedia(folder, media_id, api_type, folder + path, !string.IsNullOrEmpty(customFileName) ? customFileName + ".mp4" : filename + "_source.mp4", fileSizeInBytes, true, lastModified); } catch (Exception ex) { @@ -1077,11 +1077,11 @@ public class DownloadHelper : IDownloadHelper { properties.Add(match.Groups[1].Value); } - Dictionary values = await _FileNameHelper.GetFilename(messageInfo, messageMedia, fromUser, properties, folder.Split("/")[^1],users); - customFileName = await _FileNameHelper.BuildFilename(filenameFormat, values); + Dictionary values = await fileNameHelper.GetFilename(messageInfo, messageMedia, fromUser, properties, folder.Split("/")[^1],users); + customFileName = await fileNameHelper.BuildFilename(filenameFormat, values); } - if (!await m_DBHelper.CheckDownloaded(folder, media_id, api_type)) + if (!await dbHelper.CheckDownloaded(folder, media_id, api_type)) { if (!string.IsNullOrEmpty(customFileName) ? !File.Exists(folder + path + "/" + customFileName + ".mp4") : !File.Exists(folder + path + "/" + filename + "_source.mp4")) { @@ -1098,7 +1098,7 @@ public class DownloadHelper : IDownloadHelper { task.Increment(1); } - await m_DBHelper.UpdateMedia(folder, media_id, api_type, folder + path, !string.IsNullOrEmpty(customFileName) ? customFileName + "mp4" : filename + "_source.mp4", fileSizeInBytes, true, lastModified); + await dbHelper.UpdateMedia(folder, media_id, api_type, folder + path, !string.IsNullOrEmpty(customFileName) ? customFileName + "mp4" : filename + "_source.mp4", fileSizeInBytes, true, lastModified); } } else @@ -1122,14 +1122,14 @@ public class DownloadHelper : IDownloadHelper Console.WriteLine($"An error occurred: {ex.Message}"); return false; } - long size = await m_DBHelper.GetStoredFileSize(folder, media_id, api_type); - await m_DBHelper.UpdateMedia(folder, media_id, api_type, folder + path, customFileName + ".mp4", size, true, lastModified); + long size = await dbHelper.GetStoredFileSize(folder, media_id, api_type); + await 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); + long size = await dbHelper.GetStoredFileSize(folder, media_id, api_type); task.Increment(size); } else @@ -1184,11 +1184,11 @@ public class DownloadHelper : IDownloadHelper { properties.Add(match.Groups[1].Value); } - Dictionary values = await _FileNameHelper.GetFilename(messageInfo, messageMedia, fromUser, properties, folder.Split("/")[^1],users); - customFileName = await _FileNameHelper.BuildFilename(filenameFormat, values); + Dictionary values = await fileNameHelper.GetFilename(messageInfo, messageMedia, fromUser, properties, folder.Split("/")[^1],users); + customFileName = await fileNameHelper.BuildFilename(filenameFormat, values); } - if (!await m_DBHelper.CheckDownloaded(folder, media_id, api_type)) + if (!await dbHelper.CheckDownloaded(folder, media_id, api_type)) { if (!string.IsNullOrEmpty(customFileName) ? !File.Exists(folder + path + "/" + customFileName + ".mp4") : !File.Exists(folder + path + "/" + filename + "_source.mp4")) { @@ -1205,7 +1205,7 @@ public class DownloadHelper : IDownloadHelper { task.Increment(1); } - await m_DBHelper.UpdateMedia(folder, media_id, api_type, folder + path, !string.IsNullOrEmpty(customFileName) ? customFileName + "mp4" : filename + "_source.mp4", fileSizeInBytes, true, lastModified); + await dbHelper.UpdateMedia(folder, media_id, api_type, folder + path, !string.IsNullOrEmpty(customFileName) ? customFileName + "mp4" : filename + "_source.mp4", fileSizeInBytes, true, lastModified); } } else @@ -1229,14 +1229,14 @@ public class DownloadHelper : IDownloadHelper Console.WriteLine($"An error occurred: {ex.Message}"); return false; } - long size = await m_DBHelper.GetStoredFileSize(folder, media_id, api_type); - await m_DBHelper.UpdateMedia(folder, media_id, api_type, folder + path, customFileName + ".mp4", size, true, lastModified); + long size = await dbHelper.GetStoredFileSize(folder, media_id, api_type); + await 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); + long size = await dbHelper.GetStoredFileSize(folder, media_id, api_type); task.Increment(size); } else @@ -1291,11 +1291,11 @@ public class DownloadHelper : IDownloadHelper { properties.Add(match.Groups[1].Value); } - Dictionary values = await _FileNameHelper.GetFilename(messageInfo, messageMedia, fromUser, properties, folder.Split("/")[^1], users); - customFileName = await _FileNameHelper.BuildFilename(filenameFormat, values); + Dictionary values = await fileNameHelper.GetFilename(messageInfo, messageMedia, fromUser, properties, folder.Split("/")[^1], users); + customFileName = await fileNameHelper.BuildFilename(filenameFormat, values); } - if (!await m_DBHelper.CheckDownloaded(folder, media_id, api_type)) + if (!await dbHelper.CheckDownloaded(folder, media_id, api_type)) { if (!string.IsNullOrEmpty(customFileName) ? !File.Exists(folder + path + "/" + customFileName + ".mp4") : !File.Exists(folder + path + "/" + filename + "_source.mp4")) { @@ -1312,7 +1312,7 @@ public class DownloadHelper : IDownloadHelper { task.Increment(1); } - await m_DBHelper.UpdateMedia(folder, media_id, api_type, folder + path, !string.IsNullOrEmpty(customFileName) ? customFileName + "mp4" : filename + "_source.mp4", fileSizeInBytes, true, lastModified); + await dbHelper.UpdateMedia(folder, media_id, api_type, folder + path, !string.IsNullOrEmpty(customFileName) ? customFileName + "mp4" : filename + "_source.mp4", fileSizeInBytes, true, lastModified); } } else @@ -1336,14 +1336,14 @@ public class DownloadHelper : IDownloadHelper Console.WriteLine($"An error occurred: {ex.Message}"); return false; } - long size = await m_DBHelper.GetStoredFileSize(folder, media_id, api_type); - await m_DBHelper.UpdateMedia(folder, media_id, api_type, folder + path, customFileName + ".mp4", size, true, lastModified); + long size = await dbHelper.GetStoredFileSize(folder, media_id, api_type); + await 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); + long size = await dbHelper.GetStoredFileSize(folder, media_id, api_type); task.Increment(size); } else @@ -1397,11 +1397,11 @@ public class DownloadHelper : IDownloadHelper { properties.Add(match.Groups[1].Value); } - Dictionary values = await _FileNameHelper.GetFilename(messageInfo, messageMedia, fromUser, properties, folder.Split("/")[^1], users); - customFileName = await _FileNameHelper.BuildFilename(filenameFormat, values); + Dictionary values = await fileNameHelper.GetFilename(messageInfo, messageMedia, fromUser, properties, folder.Split("/")[^1], users); + customFileName = await fileNameHelper.BuildFilename(filenameFormat, values); } - if (!await m_DBHelper.CheckDownloaded(folder, media_id, api_type)) + if (!await dbHelper.CheckDownloaded(folder, media_id, api_type)) { if (!string.IsNullOrEmpty(customFileName) ? !File.Exists(folder + path + "/" + customFileName + ".mp4") : !File.Exists(folder + path + "/" + filename + "_source.mp4")) { @@ -1418,7 +1418,7 @@ public class DownloadHelper : IDownloadHelper { task.Increment(1); } - await m_DBHelper.UpdateMedia(folder, media_id, api_type, folder + path, !string.IsNullOrEmpty(customFileName) ? customFileName + "mp4" : filename + "_source.mp4", fileSizeInBytes, true, lastModified); + await dbHelper.UpdateMedia(folder, media_id, api_type, folder + path, !string.IsNullOrEmpty(customFileName) ? customFileName + "mp4" : filename + "_source.mp4", fileSizeInBytes, true, lastModified); } } else @@ -1442,14 +1442,14 @@ public class DownloadHelper : IDownloadHelper Console.WriteLine($"An error occurred: {ex.Message}"); return false; } - long size = await m_DBHelper.GetStoredFileSize(folder, media_id, api_type); - await m_DBHelper.UpdateMedia(folder, media_id, api_type, folder + path, customFileName + ".mp4", size, true, lastModified); + long size = await dbHelper.GetStoredFileSize(folder, media_id, api_type); + await 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); + long size = await dbHelper.GetStoredFileSize(folder, media_id, api_type); task.Increment(size); } else @@ -1504,11 +1504,11 @@ public class DownloadHelper : IDownloadHelper { properties.Add(match.Groups[1].Value); } - Dictionary values = await _FileNameHelper.GetFilename(postInfo, postMedia, author, properties, folder.Split("/")[^1], users); - customFileName = await _FileNameHelper.BuildFilename(filenameFormat, values); + Dictionary values = await fileNameHelper.GetFilename(postInfo, postMedia, author, properties, folder.Split("/")[^1], users); + customFileName = await fileNameHelper.BuildFilename(filenameFormat, values); } - if (!await m_DBHelper.CheckDownloaded(folder, media_id, api_type)) + if (!await dbHelper.CheckDownloaded(folder, media_id, api_type)) { if (!string.IsNullOrEmpty(customFileName) ? !File.Exists(folder + path + "/" + customFileName + ".mp4") : !File.Exists(folder + path + "/" + filename + "_source.mp4")) { @@ -1525,7 +1525,7 @@ public class DownloadHelper : IDownloadHelper { task.Increment(1); } - await m_DBHelper.UpdateMedia(folder, media_id, api_type, folder + path, !string.IsNullOrEmpty(customFileName) ? customFileName + "mp4" : filename + "_source.mp4", fileSizeInBytes, true, lastModified); + await dbHelper.UpdateMedia(folder, media_id, api_type, folder + path, !string.IsNullOrEmpty(customFileName) ? customFileName + "mp4" : filename + "_source.mp4", fileSizeInBytes, true, lastModified); } } else @@ -1549,14 +1549,14 @@ public class DownloadHelper : IDownloadHelper Console.WriteLine($"An error occurred: {ex.Message}"); return false; } - long size = await m_DBHelper.GetStoredFileSize(folder, media_id, api_type); - await m_DBHelper.UpdateMedia(folder, media_id, api_type, folder + path, customFileName + ".mp4", size, true, lastModified); + long size = await dbHelper.GetStoredFileSize(folder, media_id, api_type); + await 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); + long size = await dbHelper.GetStoredFileSize(folder, media_id, api_type); task.Increment(size); } else @@ -1609,11 +1609,11 @@ public class DownloadHelper : IDownloadHelper { properties.Add(match.Groups[1].Value); } - Dictionary values = await _FileNameHelper.GetFilename(postInfo, postMedia, author, properties, folder.Split("/")[^1], users); - customFileName = await _FileNameHelper.BuildFilename(filenameFormat, values); + Dictionary values = await fileNameHelper.GetFilename(postInfo, postMedia, author, properties, folder.Split("/")[^1], users); + customFileName = await fileNameHelper.BuildFilename(filenameFormat, values); } - if (!await m_DBHelper.CheckDownloaded(folder, media_id, api_type)) + if (!await dbHelper.CheckDownloaded(folder, media_id, api_type)) { if (!string.IsNullOrEmpty(customFileName) ? !File.Exists(folder + path + "/" + customFileName + ".mp4") : !File.Exists(folder + path + "/" + filename + "_source.mp4")) { @@ -1630,7 +1630,7 @@ public class DownloadHelper : IDownloadHelper { task.Increment(1); } - await m_DBHelper.UpdateMedia(folder, media_id, api_type, folder + path, !string.IsNullOrEmpty(customFileName) ? customFileName + "mp4" : filename + "_source.mp4", fileSizeInBytes, true, lastModified); + await dbHelper.UpdateMedia(folder, media_id, api_type, folder + path, !string.IsNullOrEmpty(customFileName) ? customFileName + "mp4" : filename + "_source.mp4", fileSizeInBytes, true, lastModified); } } else @@ -1654,14 +1654,14 @@ public class DownloadHelper : IDownloadHelper Console.WriteLine($"An error occurred: {ex.Message}"); return false; } - long size = await m_DBHelper.GetStoredFileSize(folder, media_id, api_type); - await m_DBHelper.UpdateMedia(folder, media_id, api_type, folder + path, customFileName + ".mp4", size, true, lastModified); + long size = await dbHelper.GetStoredFileSize(folder, media_id, api_type); + await 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); + long size = await dbHelper.GetStoredFileSize(folder, media_id, api_type); task.Increment(size); } else @@ -1714,11 +1714,11 @@ public class DownloadHelper : IDownloadHelper { properties.Add(match.Groups[1].Value); } - Dictionary values = await _FileNameHelper.GetFilename(streamInfo, streamMedia, author, properties, folder.Split("/")[^1], users); - customFileName = await _FileNameHelper.BuildFilename(filenameFormat, values); + Dictionary values = await fileNameHelper.GetFilename(streamInfo, streamMedia, author, properties, folder.Split("/")[^1], users); + customFileName = await fileNameHelper.BuildFilename(filenameFormat, values); } - if (!await m_DBHelper.CheckDownloaded(folder, media_id, api_type)) + if (!await dbHelper.CheckDownloaded(folder, media_id, api_type)) { if (!string.IsNullOrEmpty(customFileName) ? !File.Exists(folder + path + "/" + customFileName + ".mp4") : !File.Exists(folder + path + "/" + filename + "_source.mp4")) { @@ -1735,7 +1735,7 @@ public class DownloadHelper : IDownloadHelper { task.Increment(1); } - await m_DBHelper.UpdateMedia(folder, media_id, api_type, folder + path, !string.IsNullOrEmpty(customFileName) ? customFileName + "mp4" : filename + "_source.mp4", fileSizeInBytes, true, lastModified); + await dbHelper.UpdateMedia(folder, media_id, api_type, folder + path, !string.IsNullOrEmpty(customFileName) ? customFileName + "mp4" : filename + "_source.mp4", fileSizeInBytes, true, lastModified); } } else @@ -1759,14 +1759,14 @@ public class DownloadHelper : IDownloadHelper Console.WriteLine($"An error occurred: {ex.Message}"); return false; } - long size = await m_DBHelper.GetStoredFileSize(folder, media_id, api_type); - await m_DBHelper.UpdateMedia(folder, media_id, api_type, folder + path, customFileName + ".mp4", size, true, lastModified); + long size = await dbHelper.GetStoredFileSize(folder, media_id, api_type); + await 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); + long size = await dbHelper.GetStoredFileSize(folder, media_id, api_type); task.Increment(size); } else @@ -1821,11 +1821,11 @@ public class DownloadHelper : IDownloadHelper { properties.Add(match.Groups[1].Value); } - Dictionary values = await _FileNameHelper.GetFilename(postInfo, postMedia, fromUser, properties, folder.Split("/")[^1], users); - customFileName = await _FileNameHelper.BuildFilename(filenameFormat, values); + Dictionary values = await fileNameHelper.GetFilename(postInfo, postMedia, fromUser, properties, folder.Split("/")[^1], users); + customFileName = await fileNameHelper.BuildFilename(filenameFormat, values); } - if (!await m_DBHelper.CheckDownloaded(folder, media_id, api_type)) + if (!await dbHelper.CheckDownloaded(folder, media_id, api_type)) { if (!string.IsNullOrEmpty(customFileName) ? !File.Exists(folder + path + "/" + customFileName + ".mp4") : !File.Exists(folder + path + "/" + filename + "_source.mp4")) { @@ -1842,7 +1842,7 @@ public class DownloadHelper : IDownloadHelper { task.Increment(1); } - await m_DBHelper.UpdateMedia(folder, media_id, api_type, folder + path, !string.IsNullOrEmpty(customFileName) ? customFileName + "mp4" : filename + "_source.mp4", fileSizeInBytes, true, lastModified); + await dbHelper.UpdateMedia(folder, media_id, api_type, folder + path, !string.IsNullOrEmpty(customFileName) ? customFileName + "mp4" : filename + "_source.mp4", fileSizeInBytes, true, lastModified); } } else @@ -1866,14 +1866,14 @@ public class DownloadHelper : IDownloadHelper Console.WriteLine($"An error occurred: {ex.Message}"); return false; } - long size = await m_DBHelper.GetStoredFileSize(folder, media_id, api_type); - await m_DBHelper.UpdateMedia(folder, media_id, api_type, folder + path, customFileName + ".mp4", size, true, lastModified); + long size = await dbHelper.GetStoredFileSize(folder, media_id, api_type); + await 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); + long size = await dbHelper.GetStoredFileSize(folder, media_id, api_type); task.Increment(size); } else @@ -1920,11 +1920,11 @@ public class DownloadHelper : IDownloadHelper { properties.Add(match.Groups[1].Value); } - Dictionary values = await _FileNameHelper.GetFilename(postInfo, postMedia, author, properties, folder.Split("/")[^1], users); - customFileName = await _FileNameHelper.BuildFilename(filenameFormat, values); + Dictionary values = await fileNameHelper.GetFilename(postInfo, postMedia, author, properties, folder.Split("/")[^1], users); + customFileName = await fileNameHelper.BuildFilename(filenameFormat, values); } - if (!await m_DBHelper.CheckDownloaded(folder, media_id, api_type)) + if (!await dbHelper.CheckDownloaded(folder, media_id, api_type)) { if (!string.IsNullOrEmpty(customFileName) ? !File.Exists(folder + path + "/" + customFileName + ".mp4") : !File.Exists(folder + path + "/" + filename + "_source.mp4")) { @@ -1941,7 +1941,7 @@ public class DownloadHelper : IDownloadHelper { task.Increment(1); } - await m_DBHelper.UpdateMedia(folder, media_id, api_type, folder + path, !string.IsNullOrEmpty(customFileName) ? customFileName + "mp4" : filename + "_source.mp4", fileSizeInBytes, true, lastModified); + await dbHelper.UpdateMedia(folder, media_id, api_type, folder + path, !string.IsNullOrEmpty(customFileName) ? customFileName + "mp4" : filename + "_source.mp4", fileSizeInBytes, true, lastModified); } } else @@ -1965,14 +1965,14 @@ public class DownloadHelper : IDownloadHelper Console.WriteLine($"An error occurred: {ex.Message}"); return false; } - long size = await m_DBHelper.GetStoredFileSize(folder, media_id, api_type); - await m_DBHelper.UpdateMedia(folder, media_id, api_type, folder + path, customFileName + ".mp4", size, true, lastModified); + long size = await dbHelper.GetStoredFileSize(folder, media_id, api_type); + await 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); + long size = await dbHelper.GetStoredFileSize(folder, media_id, api_type); task.Increment(size); } else diff --git a/OF DL/Helpers/Interfaces/IAPIHelper.cs b/OF DL/Helpers/Interfaces/IAPIHelper.cs index d94d509..a917fff 100644 --- a/OF DL/Helpers/Interfaces/IAPIHelper.cs +++ b/OF DL/Helpers/Interfaces/IAPIHelper.cs @@ -26,6 +26,7 @@ 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 GetPaidMessage(string endpoint, string folder, IDownloadConfig config); Task> GetPurchasedTabUsers(string endpoint, IDownloadConfig config, Dictionary users); Task> GetPurchasedTab(string endpoint, string folder, IDownloadConfig config, Dictionary users); Task GetUserInfo(string endpoint); diff --git a/OF DL/Helpers/Interfaces/IAuthHelper.cs b/OF DL/Helpers/Interfaces/IAuthHelper.cs new file mode 100644 index 0000000..e1d0726 --- /dev/null +++ b/OF DL/Helpers/Interfaces/IAuthHelper.cs @@ -0,0 +1,10 @@ +using OF_DL.Entities; + +namespace OF_DL.Helpers.Interfaces +{ + public interface IAuthHelper + { + Task SetupBrowser(bool runningInDocker); + Task GetAuthFromBrowser(bool isDocker = false); + } +} diff --git a/OF DL/Program.cs b/OF DL/Program.cs index 2c005bb..07f3c6b 100644 --- a/OF DL/Program.cs +++ b/OF DL/Program.cs @@ -20,6 +20,7 @@ using static OF_DL.Entities.Messages.Messages; using Akka.Configuration; using System.Text; using Microsoft.Extensions.DependencyInjection; +using OF_DL.Helpers.Interfaces; namespace OF_DL; @@ -31,12 +32,16 @@ public class Program private static bool clientIdBlobMissing = false; private static bool devicePrivateKeyMissing = false; private readonly Entities.Config config; + private readonly IAuthHelper authHelper; + private readonly IServiceProvider serviceProvider; private Auth? auth = null; private static LoggingLevelSwitch levelSwitch = new LoggingLevelSwitch(); - public Program(Entities.Config config) + public Program(Entities.Config config, IAuthHelper authHelper, IServiceProvider serviceProvider) { this.config = config; + this.authHelper = authHelper; + this.serviceProvider = serviceProvider; } private async Task LoadAuthFromBrowser() @@ -45,7 +50,6 @@ public class Program try { - AuthHelper authHelper = new(); Task setupBrowserTask = authHelper.SetupBrowser(runningInDocker); Task.Delay(1000).Wait(); @@ -140,6 +144,15 @@ public class Program private static void ConfigureServices(IServiceCollection services, Entities.Config config) { services.AddSingleton(config); + services.AddSingleton(config); + services.AddSingleton(config); + + services.AddTransient(); + services.AddTransient(); + services.AddTransient(); + services.AddTransient(); + services.AddTransient(); + services.AddSingleton(); } @@ -910,7 +923,7 @@ public class Program } //Check if auth is valid - var apiHelper = new APIHelper(auth, config); + var apiHelper = ActivatorUtilities.CreateInstance(serviceProvider, auth); Entities.User? validate = await apiHelper.GetUserInfo($"/users/me"); if (validate == null || (validate?.name == null && validate?.username == null)) @@ -962,9 +975,9 @@ public class Program } } - private static async Task DownloadAllData(APIHelper m_ApiHelper, Auth Auth, Entities.Config Config) + private async Task DownloadAllData(IAPIHelper m_ApiHelper, Auth Auth, Entities.Config Config) { - DBHelper dBHelper = new DBHelper(Config); + IDBHelper dBHelper = serviceProvider.GetRequiredService(); Log.Debug("Calling DownloadAllData"); @@ -1096,7 +1109,12 @@ public class Program await dBHelper.CreateDB(path); - var downloadContext = new DownloadContext(Auth, Config, GetCreatorFileNameFormatConfig(Config, username), m_ApiHelper, dBHelper); + var downloadContext = ActivatorUtilities.CreateInstance( + serviceProvider, + Config, + GetCreatorFileNameFormatConfig(Config, username), + m_ApiHelper, + dBHelper); await DownloadSinglePost(downloadContext, post_id, path, users); } @@ -1168,7 +1186,12 @@ public class Program Log.Debug($"Download path: {path}"); - var downloadContext = new DownloadContext(Auth, Config, GetCreatorFileNameFormatConfig(Config, purchasedTabCollection.Username), m_ApiHelper, dBHelper); + var downloadContext = ActivatorUtilities.CreateInstance( + serviceProvider, + Config, + GetCreatorFileNameFormatConfig(Config, purchasedTabCollection.Username), + m_ApiHelper, + dBHelper); int paidPostCount = 0; int paidMessagesCount = 0; @@ -1256,7 +1279,12 @@ public class Program await dBHelper.CreateDB(path); - var downloadContext = new DownloadContext(Auth, Config, GetCreatorFileNameFormatConfig(Config, username), m_ApiHelper, dBHelper); + var downloadContext = ActivatorUtilities.CreateInstance( + serviceProvider, + Config, + GetCreatorFileNameFormatConfig(Config, username), + m_ApiHelper, + dBHelper); await DownloadPaidMessage(downloadContext, hasSelectedUsersKVP, username, 1, path, message_id); } @@ -1306,7 +1334,12 @@ public class Program await dBHelper.CreateDB(path); - var downloadContext = new DownloadContext(Auth, Config, GetCreatorFileNameFormatConfig(Config, user.Key), m_ApiHelper, dBHelper); + var downloadContext = ActivatorUtilities.CreateInstance( + serviceProvider, + Config, + GetCreatorFileNameFormatConfig(Config, user.Key), + m_ApiHelper, + dBHelper); if (Config.DownloadAvatarHeaderPhoto) { @@ -2958,7 +2991,7 @@ 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(IAPIHelper apiHelper, Entities.Config currentConfig, Dictionary users, Dictionary lists) { bool hasSelectedUsers = false; Dictionary selectedUsers = new Dictionary();