From ff431a377d37764c1cd0dc7f4c228547bd5651fd Mon Sep 17 00:00:00 2001 From: whimsical-c4lic0 Date: Mon, 9 Feb 2026 22:39:23 -0600 Subject: [PATCH] Create OF DL.Core project to contain all the application logic for future GUI development --- AGENTS.md | 57 ++++++++++--------- {OF DL => OF DL.Core}/Crypto/CryptoUtils.cs | 0 {OF DL => OF DL.Core}/Crypto/Padding.cs | 0 .../Enumerations/CustomFileNameOption.cs | 0 .../Enumerations/DownloadDateSelection.cs | 0 .../Enumerations/LoggingLevel.cs | 0 .../Enumerations/MediaType.cs | 0 .../Enumerations/VideoResolution.cs | 0 {OF DL => OF DL.Core}/Helpers/Constants.cs | 0 .../Helpers/DownloadContext.cs | 0 .../Helpers/IFileNameHelper.cs | 0 .../Helpers/VersionHelper.cs | 0 {OF DL => OF DL.Core}/Models/Auth.cs | 0 .../Models/CDRMProjectRequest.cs | 0 {OF DL => OF DL.Core}/Models/Config.cs | 0 {OF DL => OF DL.Core}/Models/CreatorConfig.cs | 0 .../Models/CreatorDownloadResult.cs | 0 .../Models/DownloadResult.cs | 0 .../Models/Dtos/Archived/ArchivedDto.cs | 0 .../Models/Dtos/Archived/InfoDto.cs | 0 .../Models/Dtos/Archived/LinkedPostDto.cs | 0 .../Models/Dtos/Archived/ListItemDto.cs | 0 .../Models/Dtos/Archived/MediumDto.cs | 0 .../Models/Dtos/Common/AuthorDto.cs | 0 .../Models/Dtos/Common/AvatarThumbsDto.cs | 0 .../Models/Dtos/Common/CountersDto.cs | 0 .../Models/Dtos/Common/DashDto.cs | 0 .../Models/Dtos/Common/DrmDto.cs | 0 .../Models/Dtos/Common/FilesDto.cs | 0 .../Models/Dtos/Common/FullDto.cs | 0 .../Models/Dtos/Common/HeaderSizeDto.cs | 0 .../Models/Dtos/Common/HeaderThumbsDto.cs | 0 .../Models/Dtos/Common/HlsDto.cs | 0 .../Models/Dtos/Common/ManifestDto.cs | 0 .../Models/Dtos/Common/PreviewDto.cs | 0 .../Models/Dtos/Common/SignatureDto.cs | 0 .../Models/Dtos/Common/SourceDto.cs | 0 .../Models/Dtos/Common/SourcesDto.cs | 0 .../Models/Dtos/Common/SquarePreviewDto.cs | 0 .../Models/Dtos/Common/SubscribedByDataDto.cs | 0 .../Models/Dtos/Common/SubscribedOnDataDto.cs | 0 .../Models/Dtos/Common/ThumbDto.cs | 0 .../Models/Dtos/Common/VideoDto.cs | 0 .../Models/Dtos/Common/VideoSourcesDto.cs | 0 .../Dtos/Highlights/HighlightMediaDto.cs | 0 .../Models/Dtos/Highlights/HighlightsDto.cs | 0 .../Models/Dtos/Highlights/ListItemDto.cs | 0 .../Models/Dtos/Highlights/MediumDto.cs | 0 .../Models/Dtos/Highlights/StoryDto.cs | 0 .../Models/Dtos/Lists/HeaderSizeDto.cs | 0 .../Models/Dtos/Lists/HeaderThumbsDto.cs | 0 .../Models/Dtos/Lists/ListsStateDto.cs | 0 .../Models/Dtos/Lists/SubscribeDto.cs | 0 .../Models/Dtos/Lists/SubscribedByDataDto.cs | 0 .../Models/Dtos/Lists/SubscribedOnDataDto.cs | 0 .../Dtos/Lists/SubscriptionBundleDto.cs | 0 .../Models/Dtos/Lists/UserListDto.cs | 0 .../Models/Dtos/Lists/UserListItemDto.cs | 0 .../Models/Dtos/Lists/UserListUserDto.cs | 0 .../Models/Dtos/Lists/UsersListDto.cs | 0 .../Models/Dtos/Messages/FromUserDto.cs | 0 .../Models/Dtos/Messages/InfoDto.cs | 0 .../Models/Dtos/Messages/ListItemDto.cs | 0 .../Models/Dtos/Messages/ListsStateDto.cs | 0 .../Models/Dtos/Messages/MediumDto.cs | 0 .../Models/Dtos/Messages/MessagesDto.cs | 0 .../Models/Dtos/Messages/SingleMessageDto.cs | 0 .../Models/Dtos/Posts/InfoDto.cs | 0 .../Models/Dtos/Posts/ListItemDto.cs | 0 .../Models/Dtos/Posts/MediumDto.cs | 0 .../Models/Dtos/Posts/PostDto.cs | 0 .../Models/Dtos/Posts/SinglePostDto.cs | 0 .../Models/Dtos/Purchased/FromUserDto.cs | 0 .../Models/Dtos/Purchased/ListItemDto.cs | 0 .../Models/Dtos/Purchased/PurchasedDto.cs | 0 .../Models/Dtos/Stories/MediumDto.cs | 0 .../Models/Dtos/Stories/StoryDto.cs | 0 .../Models/Dtos/Streams/InfoDto.cs | 0 .../Models/Dtos/Streams/ListItemDto.cs | 0 .../Models/Dtos/Streams/MediumDto.cs | 0 .../Models/Dtos/Streams/StreamsDto.cs | 0 .../Models/Dtos/Subscriptions/ListItemDto.cs | 0 .../Dtos/Subscriptions/ListsStateDto.cs | 0 .../Models/Dtos/Subscriptions/SubscribeDto.cs | 0 .../Dtos/Subscriptions/SubscriptionsDto.cs | 0 .../Models/Dtos/Users/ListsStateDto.cs | 0 .../Models/Dtos/Users/SubscribeDto.cs | 0 .../Models/Dtos/Users/UserDto.cs | 0 {OF DL => OF DL.Core}/Models/DynamicRules.cs | 0 .../Models/Entities/Archived/Archived.cs | 0 .../Entities/Archived/ArchivedCollection.cs | 0 .../Models/Entities/Archived/ListItem.cs | 0 .../Models/Entities/Archived/Medium.cs | 0 .../Models/Entities/Common/Author.cs | 0 .../Models/Entities/Common/Dash.cs | 0 .../Models/Entities/Common/Drm.cs | 0 .../Models/Entities/Common/Files.cs | 0 .../Models/Entities/Common/FromUser.cs | 0 .../Models/Entities/Common/Full.cs | 0 .../Models/Entities/Common/Manifest.cs | 0 .../Models/Entities/Common/Preview.cs | 0 .../Models/Entities/Common/Signature.cs | 0 .../Models/Entities/Common/VideoSources.cs | 0 .../Entities/Highlights/HighlightMedia.cs | 0 .../Models/Entities/Highlights/Highlights.cs | 0 .../Models/Entities/Highlights/ListItem.cs | 0 .../Models/Entities/Highlights/Medium.cs | 0 .../Models/Entities/Highlights/Story.cs | 0 .../Models/Entities/Lists/UserList.cs | 0 .../Models/Entities/Lists/UserListItem.cs | 0 .../Models/Entities/Lists/UsersList.cs | 0 .../Models/Entities/Messages/ListItem.cs | 0 .../Models/Entities/Messages/Medium.cs | 0 .../Entities/Messages/MessageCollection.cs | 0 .../Models/Entities/Messages/Messages.cs | 0 .../Models/Entities/Messages/SingleMessage.cs | 0 .../Models/Entities/Posts/ListItem.cs | 0 .../Models/Entities/Posts/Medium.cs | 0 .../Models/Entities/Posts/Post.cs | 0 .../Models/Entities/Posts/PostCollection.cs | 0 .../Models/Entities/Posts/SinglePost.cs | 0 .../Entities/Posts/SinglePostCollection.cs | 0 .../Models/Entities/Purchased/ListItem.cs | 0 .../Purchased/PaidMessageCollection.cs | 0 .../Entities/Purchased/PaidPostCollection.cs | 0 .../Models/Entities/Purchased/Purchased.cs | 0 .../Purchased/PurchasedTabCollection.cs | 0 .../Purchased/SinglePaidMessageCollection.cs | 0 .../Models/Entities/Stories/Medium.cs | 0 .../Models/Entities/Stories/Stories.cs | 0 .../Models/Entities/Streams/ListItem.cs | 0 .../Models/Entities/Streams/Medium.cs | 0 .../Models/Entities/Streams/Streams.cs | 0 .../Entities/Streams/StreamsCollection.cs | 0 .../Models/Entities/Subscriptions/ListItem.cs | 0 .../Entities/Subscriptions/Subscriptions.cs | 0 .../Models/Entities/Users/User.cs | 0 .../Models/FileNameFormatConfig.cs | 0 .../Models/IFileNameFormatConfig.cs | 0 .../Models/LatestReleaseApiResponse.cs | 0 .../Models/Mappers/ArchivedMapper.cs | 0 .../Models/Mappers/HighlightsMapper.cs | 0 .../Models/Mappers/MessagesMapper.cs | 0 .../Models/Mappers/PostMapper.cs | 0 .../Models/Mappers/PurchasedMapper.cs | 0 .../Models/Mappers/StoriesMapper.cs | 0 .../Models/Mappers/StreamsMapper.cs | 0 .../Models/Mappers/SubscriptionsMapper.cs | 0 .../Models/Mappers/UserListsMapper.cs | 0 .../Models/Mappers/UserMapper.cs | 0 {OF DL => OF DL.Core}/Models/OFDLRequest.cs | 0 .../Models/ShortDateConverter.cs | 0 {OF DL => OF DL.Core}/Models/StartupResult.cs | 0 .../Models/ToggleableConfigAttribute.cs | 0 OF DL.Core/OF DL.Core.csproj | 26 +++++++++ {OF DL => OF DL.Core}/Services/ApiService.cs | 0 {OF DL => OF DL.Core}/Services/AuthService.cs | 0 .../Services/ConfigService.cs | 0 {OF DL => OF DL.Core}/Services/DBService.cs | 0 .../Services/DownloadOrchestrationService.cs | 0 .../Services/DownloadService.cs | 0 .../Services/FileNameService.cs | 0 {OF DL => OF DL.Core}/Services/IAPIService.cs | 0 .../Services/IAuthService.cs | 0 .../Services/IConfigService.cs | 0 {OF DL => OF DL.Core}/Services/IDBService.cs | 0 .../Services/IDownloadEventHandler.cs | 0 .../Services/IDownloadOrchestrationService.cs | 0 .../Services/IDownloadService.cs | 0 .../Services/IFileNameService.cs | 0 .../Services/ILoggingService.cs | 0 .../Services/IProgressReporter.cs | 0 .../Services/IStartupService.cs | 0 .../Services/IStatusReporter.cs | 0 .../Services/LoggingService.cs | 0 .../Services/StartupService.cs | 0 {OF DL => OF DL.Core}/Utils/HttpUtil.cs | 0 .../Utils/ThrottledStream.cs | 0 {OF DL => OF DL.Core}/Utils/XmlUtils.cs | 0 {OF DL => OF DL.Core}/Widevine/CDM.cs | 0 {OF DL => OF DL.Core}/Widevine/CDMApi.cs | 0 {OF DL => OF DL.Core}/Widevine/CDMDevice.cs | 0 {OF DL => OF DL.Core}/Widevine/Constants.cs | 0 {OF DL => OF DL.Core}/Widevine/ContentKey.cs | 0 {OF DL => OF DL.Core}/Widevine/DerivedKeys.cs | 0 {OF DL => OF DL.Core}/Widevine/PSSHBox.cs | 0 {OF DL => OF DL.Core}/Widevine/Session.cs | 0 {OF DL => OF DL.Core}/Widevine/WvProto2.cs | 0 OF DL.sln | 6 ++ OF DL/OF DL.csproj | 14 +---- 190 files changed, 63 insertions(+), 40 deletions(-) rename {OF DL => OF DL.Core}/Crypto/CryptoUtils.cs (100%) rename {OF DL => OF DL.Core}/Crypto/Padding.cs (100%) rename {OF DL => OF DL.Core}/Enumerations/CustomFileNameOption.cs (100%) rename {OF DL => OF DL.Core}/Enumerations/DownloadDateSelection.cs (100%) rename {OF DL => OF DL.Core}/Enumerations/LoggingLevel.cs (100%) rename {OF DL => OF DL.Core}/Enumerations/MediaType.cs (100%) rename {OF DL => OF DL.Core}/Enumerations/VideoResolution.cs (100%) rename {OF DL => OF DL.Core}/Helpers/Constants.cs (100%) rename {OF DL => OF DL.Core}/Helpers/DownloadContext.cs (100%) rename {OF DL => OF DL.Core}/Helpers/IFileNameHelper.cs (100%) rename {OF DL => OF DL.Core}/Helpers/VersionHelper.cs (100%) rename {OF DL => OF DL.Core}/Models/Auth.cs (100%) rename {OF DL => OF DL.Core}/Models/CDRMProjectRequest.cs (100%) rename {OF DL => OF DL.Core}/Models/Config.cs (100%) rename {OF DL => OF DL.Core}/Models/CreatorConfig.cs (100%) rename {OF DL => OF DL.Core}/Models/CreatorDownloadResult.cs (100%) rename {OF DL => OF DL.Core}/Models/DownloadResult.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Archived/ArchivedDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Archived/InfoDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Archived/LinkedPostDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Archived/ListItemDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Archived/MediumDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Common/AuthorDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Common/AvatarThumbsDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Common/CountersDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Common/DashDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Common/DrmDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Common/FilesDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Common/FullDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Common/HeaderSizeDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Common/HeaderThumbsDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Common/HlsDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Common/ManifestDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Common/PreviewDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Common/SignatureDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Common/SourceDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Common/SourcesDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Common/SquarePreviewDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Common/SubscribedByDataDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Common/SubscribedOnDataDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Common/ThumbDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Common/VideoDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Common/VideoSourcesDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Highlights/HighlightMediaDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Highlights/HighlightsDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Highlights/ListItemDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Highlights/MediumDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Highlights/StoryDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Lists/HeaderSizeDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Lists/HeaderThumbsDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Lists/ListsStateDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Lists/SubscribeDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Lists/SubscribedByDataDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Lists/SubscribedOnDataDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Lists/SubscriptionBundleDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Lists/UserListDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Lists/UserListItemDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Lists/UserListUserDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Lists/UsersListDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Messages/FromUserDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Messages/InfoDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Messages/ListItemDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Messages/ListsStateDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Messages/MediumDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Messages/MessagesDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Messages/SingleMessageDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Posts/InfoDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Posts/ListItemDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Posts/MediumDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Posts/PostDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Posts/SinglePostDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Purchased/FromUserDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Purchased/ListItemDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Purchased/PurchasedDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Stories/MediumDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Stories/StoryDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Streams/InfoDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Streams/ListItemDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Streams/MediumDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Streams/StreamsDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Subscriptions/ListItemDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Subscriptions/ListsStateDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Subscriptions/SubscribeDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Subscriptions/SubscriptionsDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Users/ListsStateDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Users/SubscribeDto.cs (100%) rename {OF DL => OF DL.Core}/Models/Dtos/Users/UserDto.cs (100%) rename {OF DL => OF DL.Core}/Models/DynamicRules.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Archived/Archived.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Archived/ArchivedCollection.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Archived/ListItem.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Archived/Medium.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Common/Author.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Common/Dash.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Common/Drm.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Common/Files.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Common/FromUser.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Common/Full.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Common/Manifest.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Common/Preview.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Common/Signature.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Common/VideoSources.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Highlights/HighlightMedia.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Highlights/Highlights.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Highlights/ListItem.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Highlights/Medium.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Highlights/Story.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Lists/UserList.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Lists/UserListItem.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Lists/UsersList.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Messages/ListItem.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Messages/Medium.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Messages/MessageCollection.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Messages/Messages.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Messages/SingleMessage.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Posts/ListItem.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Posts/Medium.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Posts/Post.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Posts/PostCollection.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Posts/SinglePost.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Posts/SinglePostCollection.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Purchased/ListItem.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Purchased/PaidMessageCollection.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Purchased/PaidPostCollection.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Purchased/Purchased.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Purchased/PurchasedTabCollection.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Purchased/SinglePaidMessageCollection.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Stories/Medium.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Stories/Stories.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Streams/ListItem.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Streams/Medium.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Streams/Streams.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Streams/StreamsCollection.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Subscriptions/ListItem.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Subscriptions/Subscriptions.cs (100%) rename {OF DL => OF DL.Core}/Models/Entities/Users/User.cs (100%) rename {OF DL => OF DL.Core}/Models/FileNameFormatConfig.cs (100%) rename {OF DL => OF DL.Core}/Models/IFileNameFormatConfig.cs (100%) rename {OF DL => OF DL.Core}/Models/LatestReleaseApiResponse.cs (100%) rename {OF DL => OF DL.Core}/Models/Mappers/ArchivedMapper.cs (100%) rename {OF DL => OF DL.Core}/Models/Mappers/HighlightsMapper.cs (100%) rename {OF DL => OF DL.Core}/Models/Mappers/MessagesMapper.cs (100%) rename {OF DL => OF DL.Core}/Models/Mappers/PostMapper.cs (100%) rename {OF DL => OF DL.Core}/Models/Mappers/PurchasedMapper.cs (100%) rename {OF DL => OF DL.Core}/Models/Mappers/StoriesMapper.cs (100%) rename {OF DL => OF DL.Core}/Models/Mappers/StreamsMapper.cs (100%) rename {OF DL => OF DL.Core}/Models/Mappers/SubscriptionsMapper.cs (100%) rename {OF DL => OF DL.Core}/Models/Mappers/UserListsMapper.cs (100%) rename {OF DL => OF DL.Core}/Models/Mappers/UserMapper.cs (100%) rename {OF DL => OF DL.Core}/Models/OFDLRequest.cs (100%) rename {OF DL => OF DL.Core}/Models/ShortDateConverter.cs (100%) rename {OF DL => OF DL.Core}/Models/StartupResult.cs (100%) rename {OF DL => OF DL.Core}/Models/ToggleableConfigAttribute.cs (100%) create mode 100644 OF DL.Core/OF DL.Core.csproj rename {OF DL => OF DL.Core}/Services/ApiService.cs (100%) rename {OF DL => OF DL.Core}/Services/AuthService.cs (100%) rename {OF DL => OF DL.Core}/Services/ConfigService.cs (100%) rename {OF DL => OF DL.Core}/Services/DBService.cs (100%) rename {OF DL => OF DL.Core}/Services/DownloadOrchestrationService.cs (100%) rename {OF DL => OF DL.Core}/Services/DownloadService.cs (100%) rename {OF DL => OF DL.Core}/Services/FileNameService.cs (100%) rename {OF DL => OF DL.Core}/Services/IAPIService.cs (100%) rename {OF DL => OF DL.Core}/Services/IAuthService.cs (100%) rename {OF DL => OF DL.Core}/Services/IConfigService.cs (100%) rename {OF DL => OF DL.Core}/Services/IDBService.cs (100%) rename {OF DL => OF DL.Core}/Services/IDownloadEventHandler.cs (100%) rename {OF DL => OF DL.Core}/Services/IDownloadOrchestrationService.cs (100%) rename {OF DL => OF DL.Core}/Services/IDownloadService.cs (100%) rename {OF DL => OF DL.Core}/Services/IFileNameService.cs (100%) rename {OF DL => OF DL.Core}/Services/ILoggingService.cs (100%) rename {OF DL => OF DL.Core}/Services/IProgressReporter.cs (100%) rename {OF DL => OF DL.Core}/Services/IStartupService.cs (100%) rename {OF DL => OF DL.Core}/Services/IStatusReporter.cs (100%) rename {OF DL => OF DL.Core}/Services/LoggingService.cs (100%) rename {OF DL => OF DL.Core}/Services/StartupService.cs (100%) rename {OF DL => OF DL.Core}/Utils/HttpUtil.cs (100%) rename {OF DL => OF DL.Core}/Utils/ThrottledStream.cs (100%) rename {OF DL => OF DL.Core}/Utils/XmlUtils.cs (100%) rename {OF DL => OF DL.Core}/Widevine/CDM.cs (100%) rename {OF DL => OF DL.Core}/Widevine/CDMApi.cs (100%) rename {OF DL => OF DL.Core}/Widevine/CDMDevice.cs (100%) rename {OF DL => OF DL.Core}/Widevine/Constants.cs (100%) rename {OF DL => OF DL.Core}/Widevine/ContentKey.cs (100%) rename {OF DL => OF DL.Core}/Widevine/DerivedKeys.cs (100%) rename {OF DL => OF DL.Core}/Widevine/PSSHBox.cs (100%) rename {OF DL => OF DL.Core}/Widevine/Session.cs (100%) rename {OF DL => OF DL.Core}/Widevine/WvProto2.cs (100%) diff --git a/AGENTS.md b/AGENTS.md index d70d7b8..0b780fd 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,5 +1,7 @@ # AGENTS.md +Note: Keep AGENTS.md updated as project structure, key services, or workflows change. + This repo is **OF DL** (also known as OF-DL), a C# console app that downloads media from a user's OnlyFans account(s). This document is for AI agents helping developers modify the project. It focuses on architecture, data flow, and the most important change points. @@ -16,45 +18,46 @@ most important change points. **Project Layout** -- `OF DL/Program.cs` orchestrates startup, config/auth loading, and the interactive flow. -- `OF DL/Services/` contains application services (API, auth, download, config, DB, startup, logging, filenames). -- `OF DL/Models/` holds configuration, auth, DTOs, entities, and mapping helpers. -- `OF DL/Widevine/` implements Widevine CDM handling and key derivation. -- `OF DL/CLI/` contains Spectre.Console UI helpers and progress reporting. +- `OF DL/Program.cs` orchestrates startup, config/auth loading, and the interactive flow (CLI entrypoint). +- `OF DL/CLI/` contains Spectre.Console UI helpers and progress reporting (CLI-only). +- `OF DL.Core/Services/` contains application services (API, auth, download, config, DB, startup, logging, filenames). +- `OF DL.Core/Models/` holds configuration, auth, DTOs, entities, and mapping helpers. +- `OF DL.Core/Widevine/` implements Widevine CDM handling and key derivation. +- `OF DL.Core/Helpers/`, `OF DL.Core/Utils/`, `OF DL.Core/Crypto/`, `OF DL.Core/Enumerations/` contain shared core logic. - `docs/` and `mkdocs.yml` define the documentation site. - `site/` is generated MkDocs output and should not be edited by hand. - `docker/` contains container entrypoint and supervisor configuration. **Key Services** -- `ApiService` (`OF DL/Services/ApiService.cs`) builds signed headers, performs HTTP requests, and maps DTOs to +- `ApiService` (`OF DL.Core/Services/ApiService.cs`) builds signed headers, performs HTTP requests, and maps DTOs to entities. It also handles DRM-related calls like MPD/PSSH extraction and license requests. -- `AuthService` (`OF DL/Services/AuthService.cs`) loads `auth.json` or performs browser-based login with PuppeteerSharp, +- `AuthService` (`OF DL.Core/Services/AuthService.cs`) loads `auth.json` or performs browser-based login with PuppeteerSharp, then persists auth. It also normalizes cookies. -- `ConfigService` (`OF DL/Services/ConfigService.cs`) loads `config.conf` (HOCON), migrates legacy `config.json`, and +- `ConfigService` (`OF DL.Core/Services/ConfigService.cs`) loads `config.conf` (HOCON), migrates legacy `config.json`, and updates global settings (logging, text sanitization). -- `DownloadService` (`OF DL/Services/DownloadService.cs`) downloads all media (images, video, audio) and handles DRM +- `DownloadService` (`OF DL.Core/Services/DownloadService.cs`) downloads all media (images, video, audio) and handles DRM video decryption and FFmpeg execution. -- `DownloadOrchestrationService` (`OF DL/Services/DownloadOrchestrationService.cs`) coordinates user selection, +- `DownloadOrchestrationService` (`OF DL.Core/Services/DownloadOrchestrationService.cs`) coordinates user selection, subscription lists, per-user folder prep, and per-media-type download execution. -- `DBService` (`OF DL/Services/DBService.cs`) manages SQLite metadata DBs for downloaded media and a `users.db` index. -- `StartupService` (`OF DL/Services/StartupService.cs`) validates FFmpeg, rules.json, Widevine device files, and +- `DBService` (`OF DL.Core/Services/DBService.cs`) manages SQLite metadata DBs for downloaded media and a `users.db` index. +- `StartupService` (`OF DL.Core/Services/StartupService.cs`) validates FFmpeg, rules.json, Widevine device files, and performs release version checks. -- `LoggingService` (`OF DL/Services/LoggingService.cs`) writes logs to `logs/OFDL.txt` and updates log level based on +- `LoggingService` (`OF DL.Core/Services/LoggingService.cs`) writes logs to `logs/OFDL.txt` and updates log level based on config. -- `FileNameService` (`OF DL/Services/FileNameService.cs`) formats filenames using the custom format rules from config. +- `FileNameService` (`OF DL.Core/Services/FileNameService.cs`) formats filenames using the custom format rules from config. **Models: DTOs vs Entities** -- DTOs live under `OF DL/Models/Dtos/` and mirror API response JSON. -- Entities live under `OF DL/Models/Entities/` and represent the internal domain used by download logic. -- Mappers in `OF DL/Models/Mappers/` convert DTOs into entities to isolate API changes from downstream logic. +- DTOs live under `OF DL.Core/Models/Dtos/` and mirror API response JSON. +- Entities live under `OF DL.Core/Models/Entities/` and represent the internal domain used by download logic. +- Mappers in `OF DL.Core/Models/Mappers/` convert DTOs into entities to isolate API changes from downstream logic. **Configuration** - Primary config file is `config.conf` (HOCON). `ConfigService` migrates legacy `config.json` if found and creates a default `config.conf` if missing. -- `Config` lives in `OF DL/Models/Config.cs` and is populated by `ConfigService.LoadConfigFromFileAsync`. +- `Config` lives in `OF DL.Core/Models/Config.cs` and is populated by `ConfigService.LoadConfigFromFileAsync`. - `ConfigService.UpdateConfig` is the central place where runtime config changes are applied (logging level and text sanitization). - CLI flag `--non-interactive` forces non-interactive mode; `ConfigService.IsCliNonInteractive` and @@ -70,7 +73,7 @@ most important change points. **Authentication Flow** -- Auth data is stored in `auth.json` using the `Auth` model in `OF DL/Models/Auth.cs`. +- Auth data is stored in `auth.json` using the `Auth` model in `OF DL.Core/Models/Auth.cs`. - `AuthService.LoadFromBrowserAsync` launches Chrome via PuppeteerSharp, waits for login, then extracts `auth_id` and `sess` cookies, `bcTokenSha` from localStorage (used as `X_BC`), and `USER_AGENT` from the browser. - `AuthService.ValidateCookieString` rewrites the cookie string so it contains only `auth_id` and `sess` and ensures a @@ -89,7 +92,7 @@ Environment variables used by auth: fallback to local `rules.json` in the current working directory. The repo ships `OF DL/rules.json` as the default rules file. - Cache durations: 15 minutes for remote rules, 5 minutes for local rules. -- `DynamicRules` shape is defined in `OF DL/Models/DynamicRules.cs` and includes `app-token`, `static_param`, `prefix`, +- `DynamicRules` shape is defined in `OF DL.Core/Models/DynamicRules.cs` and includes `app-token`, `static_param`, `prefix`, `suffix`, `checksum_constant`, and `checksum_indexes`. Signature algorithm in `GetDynamicHeaders`: @@ -107,7 +110,7 @@ Headers included in signed requests: - Runtime Widevine device files are expected at `cdm/devices/chrome_1610/device_client_id_blob` and `cdm/devices/chrome_1610/device_private_key` (relative to the working directory). Paths are defined in - `OF DL/Widevine/Constants.cs` and validated in `StartupService`. + `OF DL.Core/Widevine/Constants.cs` and validated in `StartupService`. DRM flow is primarily in `DownloadService.GetDecryptionInfo` and `ApiService` DRM helpers: @@ -175,12 +178,12 @@ cookies/user-agent. Output is written to `{filename}_source.mp4`, then moved and **Where to Look First** - `OF DL/Program.cs` for the execution path and menu flow. -- `OF DL/Services/ApiService.cs` for OF API calls and header signing. -- `OF DL/Services/DownloadService.cs` for downloads and DRM handling. -- `OF DL/Services/DownloadOrchestrationService.cs` for creator selection and flow control. -- `OF DL/Widevine/` for CDM key generation and license parsing. -- `OF DL/Models/Config.cs` and `OF DL/Services/ConfigService.cs` for config shape and parsing. -- `OF DL/Services/AuthService.cs` for user-facing authentication behavior and browser login flow. +- `OF DL.Core/Services/ApiService.cs` for OF API calls and header signing. +- `OF DL.Core/Services/DownloadService.cs` for downloads and DRM handling. +- `OF DL.Core/Services/DownloadOrchestrationService.cs` for creator selection and flow control. +- `OF DL.Core/Widevine/` for CDM key generation and license parsing. +- `OF DL.Core/Models/Config.cs` and `OF DL.Core/Services/ConfigService.cs` for config shape and parsing. +- `OF DL.Core/Services/AuthService.cs` for user-facing authentication behavior and browser login flow. - `docs/` for public documentation; update docs whenever user-facing behavior or configuration changes. Documentation updates for common changes: diff --git a/OF DL/Crypto/CryptoUtils.cs b/OF DL.Core/Crypto/CryptoUtils.cs similarity index 100% rename from OF DL/Crypto/CryptoUtils.cs rename to OF DL.Core/Crypto/CryptoUtils.cs diff --git a/OF DL/Crypto/Padding.cs b/OF DL.Core/Crypto/Padding.cs similarity index 100% rename from OF DL/Crypto/Padding.cs rename to OF DL.Core/Crypto/Padding.cs diff --git a/OF DL/Enumerations/CustomFileNameOption.cs b/OF DL.Core/Enumerations/CustomFileNameOption.cs similarity index 100% rename from OF DL/Enumerations/CustomFileNameOption.cs rename to OF DL.Core/Enumerations/CustomFileNameOption.cs diff --git a/OF DL/Enumerations/DownloadDateSelection.cs b/OF DL.Core/Enumerations/DownloadDateSelection.cs similarity index 100% rename from OF DL/Enumerations/DownloadDateSelection.cs rename to OF DL.Core/Enumerations/DownloadDateSelection.cs diff --git a/OF DL/Enumerations/LoggingLevel.cs b/OF DL.Core/Enumerations/LoggingLevel.cs similarity index 100% rename from OF DL/Enumerations/LoggingLevel.cs rename to OF DL.Core/Enumerations/LoggingLevel.cs diff --git a/OF DL/Enumerations/MediaType.cs b/OF DL.Core/Enumerations/MediaType.cs similarity index 100% rename from OF DL/Enumerations/MediaType.cs rename to OF DL.Core/Enumerations/MediaType.cs diff --git a/OF DL/Enumerations/VideoResolution.cs b/OF DL.Core/Enumerations/VideoResolution.cs similarity index 100% rename from OF DL/Enumerations/VideoResolution.cs rename to OF DL.Core/Enumerations/VideoResolution.cs diff --git a/OF DL/Helpers/Constants.cs b/OF DL.Core/Helpers/Constants.cs similarity index 100% rename from OF DL/Helpers/Constants.cs rename to OF DL.Core/Helpers/Constants.cs diff --git a/OF DL/Helpers/DownloadContext.cs b/OF DL.Core/Helpers/DownloadContext.cs similarity index 100% rename from OF DL/Helpers/DownloadContext.cs rename to OF DL.Core/Helpers/DownloadContext.cs diff --git a/OF DL/Helpers/IFileNameHelper.cs b/OF DL.Core/Helpers/IFileNameHelper.cs similarity index 100% rename from OF DL/Helpers/IFileNameHelper.cs rename to OF DL.Core/Helpers/IFileNameHelper.cs diff --git a/OF DL/Helpers/VersionHelper.cs b/OF DL.Core/Helpers/VersionHelper.cs similarity index 100% rename from OF DL/Helpers/VersionHelper.cs rename to OF DL.Core/Helpers/VersionHelper.cs diff --git a/OF DL/Models/Auth.cs b/OF DL.Core/Models/Auth.cs similarity index 100% rename from OF DL/Models/Auth.cs rename to OF DL.Core/Models/Auth.cs diff --git a/OF DL/Models/CDRMProjectRequest.cs b/OF DL.Core/Models/CDRMProjectRequest.cs similarity index 100% rename from OF DL/Models/CDRMProjectRequest.cs rename to OF DL.Core/Models/CDRMProjectRequest.cs diff --git a/OF DL/Models/Config.cs b/OF DL.Core/Models/Config.cs similarity index 100% rename from OF DL/Models/Config.cs rename to OF DL.Core/Models/Config.cs diff --git a/OF DL/Models/CreatorConfig.cs b/OF DL.Core/Models/CreatorConfig.cs similarity index 100% rename from OF DL/Models/CreatorConfig.cs rename to OF DL.Core/Models/CreatorConfig.cs diff --git a/OF DL/Models/CreatorDownloadResult.cs b/OF DL.Core/Models/CreatorDownloadResult.cs similarity index 100% rename from OF DL/Models/CreatorDownloadResult.cs rename to OF DL.Core/Models/CreatorDownloadResult.cs diff --git a/OF DL/Models/DownloadResult.cs b/OF DL.Core/Models/DownloadResult.cs similarity index 100% rename from OF DL/Models/DownloadResult.cs rename to OF DL.Core/Models/DownloadResult.cs diff --git a/OF DL/Models/Dtos/Archived/ArchivedDto.cs b/OF DL.Core/Models/Dtos/Archived/ArchivedDto.cs similarity index 100% rename from OF DL/Models/Dtos/Archived/ArchivedDto.cs rename to OF DL.Core/Models/Dtos/Archived/ArchivedDto.cs diff --git a/OF DL/Models/Dtos/Archived/InfoDto.cs b/OF DL.Core/Models/Dtos/Archived/InfoDto.cs similarity index 100% rename from OF DL/Models/Dtos/Archived/InfoDto.cs rename to OF DL.Core/Models/Dtos/Archived/InfoDto.cs diff --git a/OF DL/Models/Dtos/Archived/LinkedPostDto.cs b/OF DL.Core/Models/Dtos/Archived/LinkedPostDto.cs similarity index 100% rename from OF DL/Models/Dtos/Archived/LinkedPostDto.cs rename to OF DL.Core/Models/Dtos/Archived/LinkedPostDto.cs diff --git a/OF DL/Models/Dtos/Archived/ListItemDto.cs b/OF DL.Core/Models/Dtos/Archived/ListItemDto.cs similarity index 100% rename from OF DL/Models/Dtos/Archived/ListItemDto.cs rename to OF DL.Core/Models/Dtos/Archived/ListItemDto.cs diff --git a/OF DL/Models/Dtos/Archived/MediumDto.cs b/OF DL.Core/Models/Dtos/Archived/MediumDto.cs similarity index 100% rename from OF DL/Models/Dtos/Archived/MediumDto.cs rename to OF DL.Core/Models/Dtos/Archived/MediumDto.cs diff --git a/OF DL/Models/Dtos/Common/AuthorDto.cs b/OF DL.Core/Models/Dtos/Common/AuthorDto.cs similarity index 100% rename from OF DL/Models/Dtos/Common/AuthorDto.cs rename to OF DL.Core/Models/Dtos/Common/AuthorDto.cs diff --git a/OF DL/Models/Dtos/Common/AvatarThumbsDto.cs b/OF DL.Core/Models/Dtos/Common/AvatarThumbsDto.cs similarity index 100% rename from OF DL/Models/Dtos/Common/AvatarThumbsDto.cs rename to OF DL.Core/Models/Dtos/Common/AvatarThumbsDto.cs diff --git a/OF DL/Models/Dtos/Common/CountersDto.cs b/OF DL.Core/Models/Dtos/Common/CountersDto.cs similarity index 100% rename from OF DL/Models/Dtos/Common/CountersDto.cs rename to OF DL.Core/Models/Dtos/Common/CountersDto.cs diff --git a/OF DL/Models/Dtos/Common/DashDto.cs b/OF DL.Core/Models/Dtos/Common/DashDto.cs similarity index 100% rename from OF DL/Models/Dtos/Common/DashDto.cs rename to OF DL.Core/Models/Dtos/Common/DashDto.cs diff --git a/OF DL/Models/Dtos/Common/DrmDto.cs b/OF DL.Core/Models/Dtos/Common/DrmDto.cs similarity index 100% rename from OF DL/Models/Dtos/Common/DrmDto.cs rename to OF DL.Core/Models/Dtos/Common/DrmDto.cs diff --git a/OF DL/Models/Dtos/Common/FilesDto.cs b/OF DL.Core/Models/Dtos/Common/FilesDto.cs similarity index 100% rename from OF DL/Models/Dtos/Common/FilesDto.cs rename to OF DL.Core/Models/Dtos/Common/FilesDto.cs diff --git a/OF DL/Models/Dtos/Common/FullDto.cs b/OF DL.Core/Models/Dtos/Common/FullDto.cs similarity index 100% rename from OF DL/Models/Dtos/Common/FullDto.cs rename to OF DL.Core/Models/Dtos/Common/FullDto.cs diff --git a/OF DL/Models/Dtos/Common/HeaderSizeDto.cs b/OF DL.Core/Models/Dtos/Common/HeaderSizeDto.cs similarity index 100% rename from OF DL/Models/Dtos/Common/HeaderSizeDto.cs rename to OF DL.Core/Models/Dtos/Common/HeaderSizeDto.cs diff --git a/OF DL/Models/Dtos/Common/HeaderThumbsDto.cs b/OF DL.Core/Models/Dtos/Common/HeaderThumbsDto.cs similarity index 100% rename from OF DL/Models/Dtos/Common/HeaderThumbsDto.cs rename to OF DL.Core/Models/Dtos/Common/HeaderThumbsDto.cs diff --git a/OF DL/Models/Dtos/Common/HlsDto.cs b/OF DL.Core/Models/Dtos/Common/HlsDto.cs similarity index 100% rename from OF DL/Models/Dtos/Common/HlsDto.cs rename to OF DL.Core/Models/Dtos/Common/HlsDto.cs diff --git a/OF DL/Models/Dtos/Common/ManifestDto.cs b/OF DL.Core/Models/Dtos/Common/ManifestDto.cs similarity index 100% rename from OF DL/Models/Dtos/Common/ManifestDto.cs rename to OF DL.Core/Models/Dtos/Common/ManifestDto.cs diff --git a/OF DL/Models/Dtos/Common/PreviewDto.cs b/OF DL.Core/Models/Dtos/Common/PreviewDto.cs similarity index 100% rename from OF DL/Models/Dtos/Common/PreviewDto.cs rename to OF DL.Core/Models/Dtos/Common/PreviewDto.cs diff --git a/OF DL/Models/Dtos/Common/SignatureDto.cs b/OF DL.Core/Models/Dtos/Common/SignatureDto.cs similarity index 100% rename from OF DL/Models/Dtos/Common/SignatureDto.cs rename to OF DL.Core/Models/Dtos/Common/SignatureDto.cs diff --git a/OF DL/Models/Dtos/Common/SourceDto.cs b/OF DL.Core/Models/Dtos/Common/SourceDto.cs similarity index 100% rename from OF DL/Models/Dtos/Common/SourceDto.cs rename to OF DL.Core/Models/Dtos/Common/SourceDto.cs diff --git a/OF DL/Models/Dtos/Common/SourcesDto.cs b/OF DL.Core/Models/Dtos/Common/SourcesDto.cs similarity index 100% rename from OF DL/Models/Dtos/Common/SourcesDto.cs rename to OF DL.Core/Models/Dtos/Common/SourcesDto.cs diff --git a/OF DL/Models/Dtos/Common/SquarePreviewDto.cs b/OF DL.Core/Models/Dtos/Common/SquarePreviewDto.cs similarity index 100% rename from OF DL/Models/Dtos/Common/SquarePreviewDto.cs rename to OF DL.Core/Models/Dtos/Common/SquarePreviewDto.cs diff --git a/OF DL/Models/Dtos/Common/SubscribedByDataDto.cs b/OF DL.Core/Models/Dtos/Common/SubscribedByDataDto.cs similarity index 100% rename from OF DL/Models/Dtos/Common/SubscribedByDataDto.cs rename to OF DL.Core/Models/Dtos/Common/SubscribedByDataDto.cs diff --git a/OF DL/Models/Dtos/Common/SubscribedOnDataDto.cs b/OF DL.Core/Models/Dtos/Common/SubscribedOnDataDto.cs similarity index 100% rename from OF DL/Models/Dtos/Common/SubscribedOnDataDto.cs rename to OF DL.Core/Models/Dtos/Common/SubscribedOnDataDto.cs diff --git a/OF DL/Models/Dtos/Common/ThumbDto.cs b/OF DL.Core/Models/Dtos/Common/ThumbDto.cs similarity index 100% rename from OF DL/Models/Dtos/Common/ThumbDto.cs rename to OF DL.Core/Models/Dtos/Common/ThumbDto.cs diff --git a/OF DL/Models/Dtos/Common/VideoDto.cs b/OF DL.Core/Models/Dtos/Common/VideoDto.cs similarity index 100% rename from OF DL/Models/Dtos/Common/VideoDto.cs rename to OF DL.Core/Models/Dtos/Common/VideoDto.cs diff --git a/OF DL/Models/Dtos/Common/VideoSourcesDto.cs b/OF DL.Core/Models/Dtos/Common/VideoSourcesDto.cs similarity index 100% rename from OF DL/Models/Dtos/Common/VideoSourcesDto.cs rename to OF DL.Core/Models/Dtos/Common/VideoSourcesDto.cs diff --git a/OF DL/Models/Dtos/Highlights/HighlightMediaDto.cs b/OF DL.Core/Models/Dtos/Highlights/HighlightMediaDto.cs similarity index 100% rename from OF DL/Models/Dtos/Highlights/HighlightMediaDto.cs rename to OF DL.Core/Models/Dtos/Highlights/HighlightMediaDto.cs diff --git a/OF DL/Models/Dtos/Highlights/HighlightsDto.cs b/OF DL.Core/Models/Dtos/Highlights/HighlightsDto.cs similarity index 100% rename from OF DL/Models/Dtos/Highlights/HighlightsDto.cs rename to OF DL.Core/Models/Dtos/Highlights/HighlightsDto.cs diff --git a/OF DL/Models/Dtos/Highlights/ListItemDto.cs b/OF DL.Core/Models/Dtos/Highlights/ListItemDto.cs similarity index 100% rename from OF DL/Models/Dtos/Highlights/ListItemDto.cs rename to OF DL.Core/Models/Dtos/Highlights/ListItemDto.cs diff --git a/OF DL/Models/Dtos/Highlights/MediumDto.cs b/OF DL.Core/Models/Dtos/Highlights/MediumDto.cs similarity index 100% rename from OF DL/Models/Dtos/Highlights/MediumDto.cs rename to OF DL.Core/Models/Dtos/Highlights/MediumDto.cs diff --git a/OF DL/Models/Dtos/Highlights/StoryDto.cs b/OF DL.Core/Models/Dtos/Highlights/StoryDto.cs similarity index 100% rename from OF DL/Models/Dtos/Highlights/StoryDto.cs rename to OF DL.Core/Models/Dtos/Highlights/StoryDto.cs diff --git a/OF DL/Models/Dtos/Lists/HeaderSizeDto.cs b/OF DL.Core/Models/Dtos/Lists/HeaderSizeDto.cs similarity index 100% rename from OF DL/Models/Dtos/Lists/HeaderSizeDto.cs rename to OF DL.Core/Models/Dtos/Lists/HeaderSizeDto.cs diff --git a/OF DL/Models/Dtos/Lists/HeaderThumbsDto.cs b/OF DL.Core/Models/Dtos/Lists/HeaderThumbsDto.cs similarity index 100% rename from OF DL/Models/Dtos/Lists/HeaderThumbsDto.cs rename to OF DL.Core/Models/Dtos/Lists/HeaderThumbsDto.cs diff --git a/OF DL/Models/Dtos/Lists/ListsStateDto.cs b/OF DL.Core/Models/Dtos/Lists/ListsStateDto.cs similarity index 100% rename from OF DL/Models/Dtos/Lists/ListsStateDto.cs rename to OF DL.Core/Models/Dtos/Lists/ListsStateDto.cs diff --git a/OF DL/Models/Dtos/Lists/SubscribeDto.cs b/OF DL.Core/Models/Dtos/Lists/SubscribeDto.cs similarity index 100% rename from OF DL/Models/Dtos/Lists/SubscribeDto.cs rename to OF DL.Core/Models/Dtos/Lists/SubscribeDto.cs diff --git a/OF DL/Models/Dtos/Lists/SubscribedByDataDto.cs b/OF DL.Core/Models/Dtos/Lists/SubscribedByDataDto.cs similarity index 100% rename from OF DL/Models/Dtos/Lists/SubscribedByDataDto.cs rename to OF DL.Core/Models/Dtos/Lists/SubscribedByDataDto.cs diff --git a/OF DL/Models/Dtos/Lists/SubscribedOnDataDto.cs b/OF DL.Core/Models/Dtos/Lists/SubscribedOnDataDto.cs similarity index 100% rename from OF DL/Models/Dtos/Lists/SubscribedOnDataDto.cs rename to OF DL.Core/Models/Dtos/Lists/SubscribedOnDataDto.cs diff --git a/OF DL/Models/Dtos/Lists/SubscriptionBundleDto.cs b/OF DL.Core/Models/Dtos/Lists/SubscriptionBundleDto.cs similarity index 100% rename from OF DL/Models/Dtos/Lists/SubscriptionBundleDto.cs rename to OF DL.Core/Models/Dtos/Lists/SubscriptionBundleDto.cs diff --git a/OF DL/Models/Dtos/Lists/UserListDto.cs b/OF DL.Core/Models/Dtos/Lists/UserListDto.cs similarity index 100% rename from OF DL/Models/Dtos/Lists/UserListDto.cs rename to OF DL.Core/Models/Dtos/Lists/UserListDto.cs diff --git a/OF DL/Models/Dtos/Lists/UserListItemDto.cs b/OF DL.Core/Models/Dtos/Lists/UserListItemDto.cs similarity index 100% rename from OF DL/Models/Dtos/Lists/UserListItemDto.cs rename to OF DL.Core/Models/Dtos/Lists/UserListItemDto.cs diff --git a/OF DL/Models/Dtos/Lists/UserListUserDto.cs b/OF DL.Core/Models/Dtos/Lists/UserListUserDto.cs similarity index 100% rename from OF DL/Models/Dtos/Lists/UserListUserDto.cs rename to OF DL.Core/Models/Dtos/Lists/UserListUserDto.cs diff --git a/OF DL/Models/Dtos/Lists/UsersListDto.cs b/OF DL.Core/Models/Dtos/Lists/UsersListDto.cs similarity index 100% rename from OF DL/Models/Dtos/Lists/UsersListDto.cs rename to OF DL.Core/Models/Dtos/Lists/UsersListDto.cs diff --git a/OF DL/Models/Dtos/Messages/FromUserDto.cs b/OF DL.Core/Models/Dtos/Messages/FromUserDto.cs similarity index 100% rename from OF DL/Models/Dtos/Messages/FromUserDto.cs rename to OF DL.Core/Models/Dtos/Messages/FromUserDto.cs diff --git a/OF DL/Models/Dtos/Messages/InfoDto.cs b/OF DL.Core/Models/Dtos/Messages/InfoDto.cs similarity index 100% rename from OF DL/Models/Dtos/Messages/InfoDto.cs rename to OF DL.Core/Models/Dtos/Messages/InfoDto.cs diff --git a/OF DL/Models/Dtos/Messages/ListItemDto.cs b/OF DL.Core/Models/Dtos/Messages/ListItemDto.cs similarity index 100% rename from OF DL/Models/Dtos/Messages/ListItemDto.cs rename to OF DL.Core/Models/Dtos/Messages/ListItemDto.cs diff --git a/OF DL/Models/Dtos/Messages/ListsStateDto.cs b/OF DL.Core/Models/Dtos/Messages/ListsStateDto.cs similarity index 100% rename from OF DL/Models/Dtos/Messages/ListsStateDto.cs rename to OF DL.Core/Models/Dtos/Messages/ListsStateDto.cs diff --git a/OF DL/Models/Dtos/Messages/MediumDto.cs b/OF DL.Core/Models/Dtos/Messages/MediumDto.cs similarity index 100% rename from OF DL/Models/Dtos/Messages/MediumDto.cs rename to OF DL.Core/Models/Dtos/Messages/MediumDto.cs diff --git a/OF DL/Models/Dtos/Messages/MessagesDto.cs b/OF DL.Core/Models/Dtos/Messages/MessagesDto.cs similarity index 100% rename from OF DL/Models/Dtos/Messages/MessagesDto.cs rename to OF DL.Core/Models/Dtos/Messages/MessagesDto.cs diff --git a/OF DL/Models/Dtos/Messages/SingleMessageDto.cs b/OF DL.Core/Models/Dtos/Messages/SingleMessageDto.cs similarity index 100% rename from OF DL/Models/Dtos/Messages/SingleMessageDto.cs rename to OF DL.Core/Models/Dtos/Messages/SingleMessageDto.cs diff --git a/OF DL/Models/Dtos/Posts/InfoDto.cs b/OF DL.Core/Models/Dtos/Posts/InfoDto.cs similarity index 100% rename from OF DL/Models/Dtos/Posts/InfoDto.cs rename to OF DL.Core/Models/Dtos/Posts/InfoDto.cs diff --git a/OF DL/Models/Dtos/Posts/ListItemDto.cs b/OF DL.Core/Models/Dtos/Posts/ListItemDto.cs similarity index 100% rename from OF DL/Models/Dtos/Posts/ListItemDto.cs rename to OF DL.Core/Models/Dtos/Posts/ListItemDto.cs diff --git a/OF DL/Models/Dtos/Posts/MediumDto.cs b/OF DL.Core/Models/Dtos/Posts/MediumDto.cs similarity index 100% rename from OF DL/Models/Dtos/Posts/MediumDto.cs rename to OF DL.Core/Models/Dtos/Posts/MediumDto.cs diff --git a/OF DL/Models/Dtos/Posts/PostDto.cs b/OF DL.Core/Models/Dtos/Posts/PostDto.cs similarity index 100% rename from OF DL/Models/Dtos/Posts/PostDto.cs rename to OF DL.Core/Models/Dtos/Posts/PostDto.cs diff --git a/OF DL/Models/Dtos/Posts/SinglePostDto.cs b/OF DL.Core/Models/Dtos/Posts/SinglePostDto.cs similarity index 100% rename from OF DL/Models/Dtos/Posts/SinglePostDto.cs rename to OF DL.Core/Models/Dtos/Posts/SinglePostDto.cs diff --git a/OF DL/Models/Dtos/Purchased/FromUserDto.cs b/OF DL.Core/Models/Dtos/Purchased/FromUserDto.cs similarity index 100% rename from OF DL/Models/Dtos/Purchased/FromUserDto.cs rename to OF DL.Core/Models/Dtos/Purchased/FromUserDto.cs diff --git a/OF DL/Models/Dtos/Purchased/ListItemDto.cs b/OF DL.Core/Models/Dtos/Purchased/ListItemDto.cs similarity index 100% rename from OF DL/Models/Dtos/Purchased/ListItemDto.cs rename to OF DL.Core/Models/Dtos/Purchased/ListItemDto.cs diff --git a/OF DL/Models/Dtos/Purchased/PurchasedDto.cs b/OF DL.Core/Models/Dtos/Purchased/PurchasedDto.cs similarity index 100% rename from OF DL/Models/Dtos/Purchased/PurchasedDto.cs rename to OF DL.Core/Models/Dtos/Purchased/PurchasedDto.cs diff --git a/OF DL/Models/Dtos/Stories/MediumDto.cs b/OF DL.Core/Models/Dtos/Stories/MediumDto.cs similarity index 100% rename from OF DL/Models/Dtos/Stories/MediumDto.cs rename to OF DL.Core/Models/Dtos/Stories/MediumDto.cs diff --git a/OF DL/Models/Dtos/Stories/StoryDto.cs b/OF DL.Core/Models/Dtos/Stories/StoryDto.cs similarity index 100% rename from OF DL/Models/Dtos/Stories/StoryDto.cs rename to OF DL.Core/Models/Dtos/Stories/StoryDto.cs diff --git a/OF DL/Models/Dtos/Streams/InfoDto.cs b/OF DL.Core/Models/Dtos/Streams/InfoDto.cs similarity index 100% rename from OF DL/Models/Dtos/Streams/InfoDto.cs rename to OF DL.Core/Models/Dtos/Streams/InfoDto.cs diff --git a/OF DL/Models/Dtos/Streams/ListItemDto.cs b/OF DL.Core/Models/Dtos/Streams/ListItemDto.cs similarity index 100% rename from OF DL/Models/Dtos/Streams/ListItemDto.cs rename to OF DL.Core/Models/Dtos/Streams/ListItemDto.cs diff --git a/OF DL/Models/Dtos/Streams/MediumDto.cs b/OF DL.Core/Models/Dtos/Streams/MediumDto.cs similarity index 100% rename from OF DL/Models/Dtos/Streams/MediumDto.cs rename to OF DL.Core/Models/Dtos/Streams/MediumDto.cs diff --git a/OF DL/Models/Dtos/Streams/StreamsDto.cs b/OF DL.Core/Models/Dtos/Streams/StreamsDto.cs similarity index 100% rename from OF DL/Models/Dtos/Streams/StreamsDto.cs rename to OF DL.Core/Models/Dtos/Streams/StreamsDto.cs diff --git a/OF DL/Models/Dtos/Subscriptions/ListItemDto.cs b/OF DL.Core/Models/Dtos/Subscriptions/ListItemDto.cs similarity index 100% rename from OF DL/Models/Dtos/Subscriptions/ListItemDto.cs rename to OF DL.Core/Models/Dtos/Subscriptions/ListItemDto.cs diff --git a/OF DL/Models/Dtos/Subscriptions/ListsStateDto.cs b/OF DL.Core/Models/Dtos/Subscriptions/ListsStateDto.cs similarity index 100% rename from OF DL/Models/Dtos/Subscriptions/ListsStateDto.cs rename to OF DL.Core/Models/Dtos/Subscriptions/ListsStateDto.cs diff --git a/OF DL/Models/Dtos/Subscriptions/SubscribeDto.cs b/OF DL.Core/Models/Dtos/Subscriptions/SubscribeDto.cs similarity index 100% rename from OF DL/Models/Dtos/Subscriptions/SubscribeDto.cs rename to OF DL.Core/Models/Dtos/Subscriptions/SubscribeDto.cs diff --git a/OF DL/Models/Dtos/Subscriptions/SubscriptionsDto.cs b/OF DL.Core/Models/Dtos/Subscriptions/SubscriptionsDto.cs similarity index 100% rename from OF DL/Models/Dtos/Subscriptions/SubscriptionsDto.cs rename to OF DL.Core/Models/Dtos/Subscriptions/SubscriptionsDto.cs diff --git a/OF DL/Models/Dtos/Users/ListsStateDto.cs b/OF DL.Core/Models/Dtos/Users/ListsStateDto.cs similarity index 100% rename from OF DL/Models/Dtos/Users/ListsStateDto.cs rename to OF DL.Core/Models/Dtos/Users/ListsStateDto.cs diff --git a/OF DL/Models/Dtos/Users/SubscribeDto.cs b/OF DL.Core/Models/Dtos/Users/SubscribeDto.cs similarity index 100% rename from OF DL/Models/Dtos/Users/SubscribeDto.cs rename to OF DL.Core/Models/Dtos/Users/SubscribeDto.cs diff --git a/OF DL/Models/Dtos/Users/UserDto.cs b/OF DL.Core/Models/Dtos/Users/UserDto.cs similarity index 100% rename from OF DL/Models/Dtos/Users/UserDto.cs rename to OF DL.Core/Models/Dtos/Users/UserDto.cs diff --git a/OF DL/Models/DynamicRules.cs b/OF DL.Core/Models/DynamicRules.cs similarity index 100% rename from OF DL/Models/DynamicRules.cs rename to OF DL.Core/Models/DynamicRules.cs diff --git a/OF DL/Models/Entities/Archived/Archived.cs b/OF DL.Core/Models/Entities/Archived/Archived.cs similarity index 100% rename from OF DL/Models/Entities/Archived/Archived.cs rename to OF DL.Core/Models/Entities/Archived/Archived.cs diff --git a/OF DL/Models/Entities/Archived/ArchivedCollection.cs b/OF DL.Core/Models/Entities/Archived/ArchivedCollection.cs similarity index 100% rename from OF DL/Models/Entities/Archived/ArchivedCollection.cs rename to OF DL.Core/Models/Entities/Archived/ArchivedCollection.cs diff --git a/OF DL/Models/Entities/Archived/ListItem.cs b/OF DL.Core/Models/Entities/Archived/ListItem.cs similarity index 100% rename from OF DL/Models/Entities/Archived/ListItem.cs rename to OF DL.Core/Models/Entities/Archived/ListItem.cs diff --git a/OF DL/Models/Entities/Archived/Medium.cs b/OF DL.Core/Models/Entities/Archived/Medium.cs similarity index 100% rename from OF DL/Models/Entities/Archived/Medium.cs rename to OF DL.Core/Models/Entities/Archived/Medium.cs diff --git a/OF DL/Models/Entities/Common/Author.cs b/OF DL.Core/Models/Entities/Common/Author.cs similarity index 100% rename from OF DL/Models/Entities/Common/Author.cs rename to OF DL.Core/Models/Entities/Common/Author.cs diff --git a/OF DL/Models/Entities/Common/Dash.cs b/OF DL.Core/Models/Entities/Common/Dash.cs similarity index 100% rename from OF DL/Models/Entities/Common/Dash.cs rename to OF DL.Core/Models/Entities/Common/Dash.cs diff --git a/OF DL/Models/Entities/Common/Drm.cs b/OF DL.Core/Models/Entities/Common/Drm.cs similarity index 100% rename from OF DL/Models/Entities/Common/Drm.cs rename to OF DL.Core/Models/Entities/Common/Drm.cs diff --git a/OF DL/Models/Entities/Common/Files.cs b/OF DL.Core/Models/Entities/Common/Files.cs similarity index 100% rename from OF DL/Models/Entities/Common/Files.cs rename to OF DL.Core/Models/Entities/Common/Files.cs diff --git a/OF DL/Models/Entities/Common/FromUser.cs b/OF DL.Core/Models/Entities/Common/FromUser.cs similarity index 100% rename from OF DL/Models/Entities/Common/FromUser.cs rename to OF DL.Core/Models/Entities/Common/FromUser.cs diff --git a/OF DL/Models/Entities/Common/Full.cs b/OF DL.Core/Models/Entities/Common/Full.cs similarity index 100% rename from OF DL/Models/Entities/Common/Full.cs rename to OF DL.Core/Models/Entities/Common/Full.cs diff --git a/OF DL/Models/Entities/Common/Manifest.cs b/OF DL.Core/Models/Entities/Common/Manifest.cs similarity index 100% rename from OF DL/Models/Entities/Common/Manifest.cs rename to OF DL.Core/Models/Entities/Common/Manifest.cs diff --git a/OF DL/Models/Entities/Common/Preview.cs b/OF DL.Core/Models/Entities/Common/Preview.cs similarity index 100% rename from OF DL/Models/Entities/Common/Preview.cs rename to OF DL.Core/Models/Entities/Common/Preview.cs diff --git a/OF DL/Models/Entities/Common/Signature.cs b/OF DL.Core/Models/Entities/Common/Signature.cs similarity index 100% rename from OF DL/Models/Entities/Common/Signature.cs rename to OF DL.Core/Models/Entities/Common/Signature.cs diff --git a/OF DL/Models/Entities/Common/VideoSources.cs b/OF DL.Core/Models/Entities/Common/VideoSources.cs similarity index 100% rename from OF DL/Models/Entities/Common/VideoSources.cs rename to OF DL.Core/Models/Entities/Common/VideoSources.cs diff --git a/OF DL/Models/Entities/Highlights/HighlightMedia.cs b/OF DL.Core/Models/Entities/Highlights/HighlightMedia.cs similarity index 100% rename from OF DL/Models/Entities/Highlights/HighlightMedia.cs rename to OF DL.Core/Models/Entities/Highlights/HighlightMedia.cs diff --git a/OF DL/Models/Entities/Highlights/Highlights.cs b/OF DL.Core/Models/Entities/Highlights/Highlights.cs similarity index 100% rename from OF DL/Models/Entities/Highlights/Highlights.cs rename to OF DL.Core/Models/Entities/Highlights/Highlights.cs diff --git a/OF DL/Models/Entities/Highlights/ListItem.cs b/OF DL.Core/Models/Entities/Highlights/ListItem.cs similarity index 100% rename from OF DL/Models/Entities/Highlights/ListItem.cs rename to OF DL.Core/Models/Entities/Highlights/ListItem.cs diff --git a/OF DL/Models/Entities/Highlights/Medium.cs b/OF DL.Core/Models/Entities/Highlights/Medium.cs similarity index 100% rename from OF DL/Models/Entities/Highlights/Medium.cs rename to OF DL.Core/Models/Entities/Highlights/Medium.cs diff --git a/OF DL/Models/Entities/Highlights/Story.cs b/OF DL.Core/Models/Entities/Highlights/Story.cs similarity index 100% rename from OF DL/Models/Entities/Highlights/Story.cs rename to OF DL.Core/Models/Entities/Highlights/Story.cs diff --git a/OF DL/Models/Entities/Lists/UserList.cs b/OF DL.Core/Models/Entities/Lists/UserList.cs similarity index 100% rename from OF DL/Models/Entities/Lists/UserList.cs rename to OF DL.Core/Models/Entities/Lists/UserList.cs diff --git a/OF DL/Models/Entities/Lists/UserListItem.cs b/OF DL.Core/Models/Entities/Lists/UserListItem.cs similarity index 100% rename from OF DL/Models/Entities/Lists/UserListItem.cs rename to OF DL.Core/Models/Entities/Lists/UserListItem.cs diff --git a/OF DL/Models/Entities/Lists/UsersList.cs b/OF DL.Core/Models/Entities/Lists/UsersList.cs similarity index 100% rename from OF DL/Models/Entities/Lists/UsersList.cs rename to OF DL.Core/Models/Entities/Lists/UsersList.cs diff --git a/OF DL/Models/Entities/Messages/ListItem.cs b/OF DL.Core/Models/Entities/Messages/ListItem.cs similarity index 100% rename from OF DL/Models/Entities/Messages/ListItem.cs rename to OF DL.Core/Models/Entities/Messages/ListItem.cs diff --git a/OF DL/Models/Entities/Messages/Medium.cs b/OF DL.Core/Models/Entities/Messages/Medium.cs similarity index 100% rename from OF DL/Models/Entities/Messages/Medium.cs rename to OF DL.Core/Models/Entities/Messages/Medium.cs diff --git a/OF DL/Models/Entities/Messages/MessageCollection.cs b/OF DL.Core/Models/Entities/Messages/MessageCollection.cs similarity index 100% rename from OF DL/Models/Entities/Messages/MessageCollection.cs rename to OF DL.Core/Models/Entities/Messages/MessageCollection.cs diff --git a/OF DL/Models/Entities/Messages/Messages.cs b/OF DL.Core/Models/Entities/Messages/Messages.cs similarity index 100% rename from OF DL/Models/Entities/Messages/Messages.cs rename to OF DL.Core/Models/Entities/Messages/Messages.cs diff --git a/OF DL/Models/Entities/Messages/SingleMessage.cs b/OF DL.Core/Models/Entities/Messages/SingleMessage.cs similarity index 100% rename from OF DL/Models/Entities/Messages/SingleMessage.cs rename to OF DL.Core/Models/Entities/Messages/SingleMessage.cs diff --git a/OF DL/Models/Entities/Posts/ListItem.cs b/OF DL.Core/Models/Entities/Posts/ListItem.cs similarity index 100% rename from OF DL/Models/Entities/Posts/ListItem.cs rename to OF DL.Core/Models/Entities/Posts/ListItem.cs diff --git a/OF DL/Models/Entities/Posts/Medium.cs b/OF DL.Core/Models/Entities/Posts/Medium.cs similarity index 100% rename from OF DL/Models/Entities/Posts/Medium.cs rename to OF DL.Core/Models/Entities/Posts/Medium.cs diff --git a/OF DL/Models/Entities/Posts/Post.cs b/OF DL.Core/Models/Entities/Posts/Post.cs similarity index 100% rename from OF DL/Models/Entities/Posts/Post.cs rename to OF DL.Core/Models/Entities/Posts/Post.cs diff --git a/OF DL/Models/Entities/Posts/PostCollection.cs b/OF DL.Core/Models/Entities/Posts/PostCollection.cs similarity index 100% rename from OF DL/Models/Entities/Posts/PostCollection.cs rename to OF DL.Core/Models/Entities/Posts/PostCollection.cs diff --git a/OF DL/Models/Entities/Posts/SinglePost.cs b/OF DL.Core/Models/Entities/Posts/SinglePost.cs similarity index 100% rename from OF DL/Models/Entities/Posts/SinglePost.cs rename to OF DL.Core/Models/Entities/Posts/SinglePost.cs diff --git a/OF DL/Models/Entities/Posts/SinglePostCollection.cs b/OF DL.Core/Models/Entities/Posts/SinglePostCollection.cs similarity index 100% rename from OF DL/Models/Entities/Posts/SinglePostCollection.cs rename to OF DL.Core/Models/Entities/Posts/SinglePostCollection.cs diff --git a/OF DL/Models/Entities/Purchased/ListItem.cs b/OF DL.Core/Models/Entities/Purchased/ListItem.cs similarity index 100% rename from OF DL/Models/Entities/Purchased/ListItem.cs rename to OF DL.Core/Models/Entities/Purchased/ListItem.cs diff --git a/OF DL/Models/Entities/Purchased/PaidMessageCollection.cs b/OF DL.Core/Models/Entities/Purchased/PaidMessageCollection.cs similarity index 100% rename from OF DL/Models/Entities/Purchased/PaidMessageCollection.cs rename to OF DL.Core/Models/Entities/Purchased/PaidMessageCollection.cs diff --git a/OF DL/Models/Entities/Purchased/PaidPostCollection.cs b/OF DL.Core/Models/Entities/Purchased/PaidPostCollection.cs similarity index 100% rename from OF DL/Models/Entities/Purchased/PaidPostCollection.cs rename to OF DL.Core/Models/Entities/Purchased/PaidPostCollection.cs diff --git a/OF DL/Models/Entities/Purchased/Purchased.cs b/OF DL.Core/Models/Entities/Purchased/Purchased.cs similarity index 100% rename from OF DL/Models/Entities/Purchased/Purchased.cs rename to OF DL.Core/Models/Entities/Purchased/Purchased.cs diff --git a/OF DL/Models/Entities/Purchased/PurchasedTabCollection.cs b/OF DL.Core/Models/Entities/Purchased/PurchasedTabCollection.cs similarity index 100% rename from OF DL/Models/Entities/Purchased/PurchasedTabCollection.cs rename to OF DL.Core/Models/Entities/Purchased/PurchasedTabCollection.cs diff --git a/OF DL/Models/Entities/Purchased/SinglePaidMessageCollection.cs b/OF DL.Core/Models/Entities/Purchased/SinglePaidMessageCollection.cs similarity index 100% rename from OF DL/Models/Entities/Purchased/SinglePaidMessageCollection.cs rename to OF DL.Core/Models/Entities/Purchased/SinglePaidMessageCollection.cs diff --git a/OF DL/Models/Entities/Stories/Medium.cs b/OF DL.Core/Models/Entities/Stories/Medium.cs similarity index 100% rename from OF DL/Models/Entities/Stories/Medium.cs rename to OF DL.Core/Models/Entities/Stories/Medium.cs diff --git a/OF DL/Models/Entities/Stories/Stories.cs b/OF DL.Core/Models/Entities/Stories/Stories.cs similarity index 100% rename from OF DL/Models/Entities/Stories/Stories.cs rename to OF DL.Core/Models/Entities/Stories/Stories.cs diff --git a/OF DL/Models/Entities/Streams/ListItem.cs b/OF DL.Core/Models/Entities/Streams/ListItem.cs similarity index 100% rename from OF DL/Models/Entities/Streams/ListItem.cs rename to OF DL.Core/Models/Entities/Streams/ListItem.cs diff --git a/OF DL/Models/Entities/Streams/Medium.cs b/OF DL.Core/Models/Entities/Streams/Medium.cs similarity index 100% rename from OF DL/Models/Entities/Streams/Medium.cs rename to OF DL.Core/Models/Entities/Streams/Medium.cs diff --git a/OF DL/Models/Entities/Streams/Streams.cs b/OF DL.Core/Models/Entities/Streams/Streams.cs similarity index 100% rename from OF DL/Models/Entities/Streams/Streams.cs rename to OF DL.Core/Models/Entities/Streams/Streams.cs diff --git a/OF DL/Models/Entities/Streams/StreamsCollection.cs b/OF DL.Core/Models/Entities/Streams/StreamsCollection.cs similarity index 100% rename from OF DL/Models/Entities/Streams/StreamsCollection.cs rename to OF DL.Core/Models/Entities/Streams/StreamsCollection.cs diff --git a/OF DL/Models/Entities/Subscriptions/ListItem.cs b/OF DL.Core/Models/Entities/Subscriptions/ListItem.cs similarity index 100% rename from OF DL/Models/Entities/Subscriptions/ListItem.cs rename to OF DL.Core/Models/Entities/Subscriptions/ListItem.cs diff --git a/OF DL/Models/Entities/Subscriptions/Subscriptions.cs b/OF DL.Core/Models/Entities/Subscriptions/Subscriptions.cs similarity index 100% rename from OF DL/Models/Entities/Subscriptions/Subscriptions.cs rename to OF DL.Core/Models/Entities/Subscriptions/Subscriptions.cs diff --git a/OF DL/Models/Entities/Users/User.cs b/OF DL.Core/Models/Entities/Users/User.cs similarity index 100% rename from OF DL/Models/Entities/Users/User.cs rename to OF DL.Core/Models/Entities/Users/User.cs diff --git a/OF DL/Models/FileNameFormatConfig.cs b/OF DL.Core/Models/FileNameFormatConfig.cs similarity index 100% rename from OF DL/Models/FileNameFormatConfig.cs rename to OF DL.Core/Models/FileNameFormatConfig.cs diff --git a/OF DL/Models/IFileNameFormatConfig.cs b/OF DL.Core/Models/IFileNameFormatConfig.cs similarity index 100% rename from OF DL/Models/IFileNameFormatConfig.cs rename to OF DL.Core/Models/IFileNameFormatConfig.cs diff --git a/OF DL/Models/LatestReleaseApiResponse.cs b/OF DL.Core/Models/LatestReleaseApiResponse.cs similarity index 100% rename from OF DL/Models/LatestReleaseApiResponse.cs rename to OF DL.Core/Models/LatestReleaseApiResponse.cs diff --git a/OF DL/Models/Mappers/ArchivedMapper.cs b/OF DL.Core/Models/Mappers/ArchivedMapper.cs similarity index 100% rename from OF DL/Models/Mappers/ArchivedMapper.cs rename to OF DL.Core/Models/Mappers/ArchivedMapper.cs diff --git a/OF DL/Models/Mappers/HighlightsMapper.cs b/OF DL.Core/Models/Mappers/HighlightsMapper.cs similarity index 100% rename from OF DL/Models/Mappers/HighlightsMapper.cs rename to OF DL.Core/Models/Mappers/HighlightsMapper.cs diff --git a/OF DL/Models/Mappers/MessagesMapper.cs b/OF DL.Core/Models/Mappers/MessagesMapper.cs similarity index 100% rename from OF DL/Models/Mappers/MessagesMapper.cs rename to OF DL.Core/Models/Mappers/MessagesMapper.cs diff --git a/OF DL/Models/Mappers/PostMapper.cs b/OF DL.Core/Models/Mappers/PostMapper.cs similarity index 100% rename from OF DL/Models/Mappers/PostMapper.cs rename to OF DL.Core/Models/Mappers/PostMapper.cs diff --git a/OF DL/Models/Mappers/PurchasedMapper.cs b/OF DL.Core/Models/Mappers/PurchasedMapper.cs similarity index 100% rename from OF DL/Models/Mappers/PurchasedMapper.cs rename to OF DL.Core/Models/Mappers/PurchasedMapper.cs diff --git a/OF DL/Models/Mappers/StoriesMapper.cs b/OF DL.Core/Models/Mappers/StoriesMapper.cs similarity index 100% rename from OF DL/Models/Mappers/StoriesMapper.cs rename to OF DL.Core/Models/Mappers/StoriesMapper.cs diff --git a/OF DL/Models/Mappers/StreamsMapper.cs b/OF DL.Core/Models/Mappers/StreamsMapper.cs similarity index 100% rename from OF DL/Models/Mappers/StreamsMapper.cs rename to OF DL.Core/Models/Mappers/StreamsMapper.cs diff --git a/OF DL/Models/Mappers/SubscriptionsMapper.cs b/OF DL.Core/Models/Mappers/SubscriptionsMapper.cs similarity index 100% rename from OF DL/Models/Mappers/SubscriptionsMapper.cs rename to OF DL.Core/Models/Mappers/SubscriptionsMapper.cs diff --git a/OF DL/Models/Mappers/UserListsMapper.cs b/OF DL.Core/Models/Mappers/UserListsMapper.cs similarity index 100% rename from OF DL/Models/Mappers/UserListsMapper.cs rename to OF DL.Core/Models/Mappers/UserListsMapper.cs diff --git a/OF DL/Models/Mappers/UserMapper.cs b/OF DL.Core/Models/Mappers/UserMapper.cs similarity index 100% rename from OF DL/Models/Mappers/UserMapper.cs rename to OF DL.Core/Models/Mappers/UserMapper.cs diff --git a/OF DL/Models/OFDLRequest.cs b/OF DL.Core/Models/OFDLRequest.cs similarity index 100% rename from OF DL/Models/OFDLRequest.cs rename to OF DL.Core/Models/OFDLRequest.cs diff --git a/OF DL/Models/ShortDateConverter.cs b/OF DL.Core/Models/ShortDateConverter.cs similarity index 100% rename from OF DL/Models/ShortDateConverter.cs rename to OF DL.Core/Models/ShortDateConverter.cs diff --git a/OF DL/Models/StartupResult.cs b/OF DL.Core/Models/StartupResult.cs similarity index 100% rename from OF DL/Models/StartupResult.cs rename to OF DL.Core/Models/StartupResult.cs diff --git a/OF DL/Models/ToggleableConfigAttribute.cs b/OF DL.Core/Models/ToggleableConfigAttribute.cs similarity index 100% rename from OF DL/Models/ToggleableConfigAttribute.cs rename to OF DL.Core/Models/ToggleableConfigAttribute.cs diff --git a/OF DL.Core/OF DL.Core.csproj b/OF DL.Core/OF DL.Core.csproj new file mode 100644 index 0000000..88e3b0c --- /dev/null +++ b/OF DL.Core/OF DL.Core.csproj @@ -0,0 +1,26 @@ + + + + net8.0 + OF_DL + enable + enable + + + + + + + + + + + + + + + + + + + diff --git a/OF DL/Services/ApiService.cs b/OF DL.Core/Services/ApiService.cs similarity index 100% rename from OF DL/Services/ApiService.cs rename to OF DL.Core/Services/ApiService.cs diff --git a/OF DL/Services/AuthService.cs b/OF DL.Core/Services/AuthService.cs similarity index 100% rename from OF DL/Services/AuthService.cs rename to OF DL.Core/Services/AuthService.cs diff --git a/OF DL/Services/ConfigService.cs b/OF DL.Core/Services/ConfigService.cs similarity index 100% rename from OF DL/Services/ConfigService.cs rename to OF DL.Core/Services/ConfigService.cs diff --git a/OF DL/Services/DBService.cs b/OF DL.Core/Services/DBService.cs similarity index 100% rename from OF DL/Services/DBService.cs rename to OF DL.Core/Services/DBService.cs diff --git a/OF DL/Services/DownloadOrchestrationService.cs b/OF DL.Core/Services/DownloadOrchestrationService.cs similarity index 100% rename from OF DL/Services/DownloadOrchestrationService.cs rename to OF DL.Core/Services/DownloadOrchestrationService.cs diff --git a/OF DL/Services/DownloadService.cs b/OF DL.Core/Services/DownloadService.cs similarity index 100% rename from OF DL/Services/DownloadService.cs rename to OF DL.Core/Services/DownloadService.cs diff --git a/OF DL/Services/FileNameService.cs b/OF DL.Core/Services/FileNameService.cs similarity index 100% rename from OF DL/Services/FileNameService.cs rename to OF DL.Core/Services/FileNameService.cs diff --git a/OF DL/Services/IAPIService.cs b/OF DL.Core/Services/IAPIService.cs similarity index 100% rename from OF DL/Services/IAPIService.cs rename to OF DL.Core/Services/IAPIService.cs diff --git a/OF DL/Services/IAuthService.cs b/OF DL.Core/Services/IAuthService.cs similarity index 100% rename from OF DL/Services/IAuthService.cs rename to OF DL.Core/Services/IAuthService.cs diff --git a/OF DL/Services/IConfigService.cs b/OF DL.Core/Services/IConfigService.cs similarity index 100% rename from OF DL/Services/IConfigService.cs rename to OF DL.Core/Services/IConfigService.cs diff --git a/OF DL/Services/IDBService.cs b/OF DL.Core/Services/IDBService.cs similarity index 100% rename from OF DL/Services/IDBService.cs rename to OF DL.Core/Services/IDBService.cs diff --git a/OF DL/Services/IDownloadEventHandler.cs b/OF DL.Core/Services/IDownloadEventHandler.cs similarity index 100% rename from OF DL/Services/IDownloadEventHandler.cs rename to OF DL.Core/Services/IDownloadEventHandler.cs diff --git a/OF DL/Services/IDownloadOrchestrationService.cs b/OF DL.Core/Services/IDownloadOrchestrationService.cs similarity index 100% rename from OF DL/Services/IDownloadOrchestrationService.cs rename to OF DL.Core/Services/IDownloadOrchestrationService.cs diff --git a/OF DL/Services/IDownloadService.cs b/OF DL.Core/Services/IDownloadService.cs similarity index 100% rename from OF DL/Services/IDownloadService.cs rename to OF DL.Core/Services/IDownloadService.cs diff --git a/OF DL/Services/IFileNameService.cs b/OF DL.Core/Services/IFileNameService.cs similarity index 100% rename from OF DL/Services/IFileNameService.cs rename to OF DL.Core/Services/IFileNameService.cs diff --git a/OF DL/Services/ILoggingService.cs b/OF DL.Core/Services/ILoggingService.cs similarity index 100% rename from OF DL/Services/ILoggingService.cs rename to OF DL.Core/Services/ILoggingService.cs diff --git a/OF DL/Services/IProgressReporter.cs b/OF DL.Core/Services/IProgressReporter.cs similarity index 100% rename from OF DL/Services/IProgressReporter.cs rename to OF DL.Core/Services/IProgressReporter.cs diff --git a/OF DL/Services/IStartupService.cs b/OF DL.Core/Services/IStartupService.cs similarity index 100% rename from OF DL/Services/IStartupService.cs rename to OF DL.Core/Services/IStartupService.cs diff --git a/OF DL/Services/IStatusReporter.cs b/OF DL.Core/Services/IStatusReporter.cs similarity index 100% rename from OF DL/Services/IStatusReporter.cs rename to OF DL.Core/Services/IStatusReporter.cs diff --git a/OF DL/Services/LoggingService.cs b/OF DL.Core/Services/LoggingService.cs similarity index 100% rename from OF DL/Services/LoggingService.cs rename to OF DL.Core/Services/LoggingService.cs diff --git a/OF DL/Services/StartupService.cs b/OF DL.Core/Services/StartupService.cs similarity index 100% rename from OF DL/Services/StartupService.cs rename to OF DL.Core/Services/StartupService.cs diff --git a/OF DL/Utils/HttpUtil.cs b/OF DL.Core/Utils/HttpUtil.cs similarity index 100% rename from OF DL/Utils/HttpUtil.cs rename to OF DL.Core/Utils/HttpUtil.cs diff --git a/OF DL/Utils/ThrottledStream.cs b/OF DL.Core/Utils/ThrottledStream.cs similarity index 100% rename from OF DL/Utils/ThrottledStream.cs rename to OF DL.Core/Utils/ThrottledStream.cs diff --git a/OF DL/Utils/XmlUtils.cs b/OF DL.Core/Utils/XmlUtils.cs similarity index 100% rename from OF DL/Utils/XmlUtils.cs rename to OF DL.Core/Utils/XmlUtils.cs diff --git a/OF DL/Widevine/CDM.cs b/OF DL.Core/Widevine/CDM.cs similarity index 100% rename from OF DL/Widevine/CDM.cs rename to OF DL.Core/Widevine/CDM.cs diff --git a/OF DL/Widevine/CDMApi.cs b/OF DL.Core/Widevine/CDMApi.cs similarity index 100% rename from OF DL/Widevine/CDMApi.cs rename to OF DL.Core/Widevine/CDMApi.cs diff --git a/OF DL/Widevine/CDMDevice.cs b/OF DL.Core/Widevine/CDMDevice.cs similarity index 100% rename from OF DL/Widevine/CDMDevice.cs rename to OF DL.Core/Widevine/CDMDevice.cs diff --git a/OF DL/Widevine/Constants.cs b/OF DL.Core/Widevine/Constants.cs similarity index 100% rename from OF DL/Widevine/Constants.cs rename to OF DL.Core/Widevine/Constants.cs diff --git a/OF DL/Widevine/ContentKey.cs b/OF DL.Core/Widevine/ContentKey.cs similarity index 100% rename from OF DL/Widevine/ContentKey.cs rename to OF DL.Core/Widevine/ContentKey.cs diff --git a/OF DL/Widevine/DerivedKeys.cs b/OF DL.Core/Widevine/DerivedKeys.cs similarity index 100% rename from OF DL/Widevine/DerivedKeys.cs rename to OF DL.Core/Widevine/DerivedKeys.cs diff --git a/OF DL/Widevine/PSSHBox.cs b/OF DL.Core/Widevine/PSSHBox.cs similarity index 100% rename from OF DL/Widevine/PSSHBox.cs rename to OF DL.Core/Widevine/PSSHBox.cs diff --git a/OF DL/Widevine/Session.cs b/OF DL.Core/Widevine/Session.cs similarity index 100% rename from OF DL/Widevine/Session.cs rename to OF DL.Core/Widevine/Session.cs diff --git a/OF DL/Widevine/WvProto2.cs b/OF DL.Core/Widevine/WvProto2.cs similarity index 100% rename from OF DL/Widevine/WvProto2.cs rename to OF DL.Core/Widevine/WvProto2.cs diff --git a/OF DL.sln b/OF DL.sln index 2434220..62e5364 100644 --- a/OF DL.sln +++ b/OF DL.sln @@ -5,6 +5,8 @@ VisualStudioVersion = 17.5.33516.290 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OF DL", "OF DL\OF DL.csproj", "{318B2CE3-D046-4276-A2CF-89E6DF32F1B3}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OF DL.Core", "OF DL.Core\OF DL.Core.csproj", "{7B8B6A26-6732-4B3A-AE62-1CE589DFF8F2}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -15,6 +17,10 @@ Global {318B2CE3-D046-4276-A2CF-89E6DF32F1B3}.Debug|Any CPU.Build.0 = Debug|Any CPU {318B2CE3-D046-4276-A2CF-89E6DF32F1B3}.Release|Any CPU.ActiveCfg = Release|Any CPU {318B2CE3-D046-4276-A2CF-89E6DF32F1B3}.Release|Any CPU.Build.0 = Release|Any CPU + {7B8B6A26-6732-4B3A-AE62-1CE589DFF8F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7B8B6A26-6732-4B3A-AE62-1CE589DFF8F2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7B8B6A26-6732-4B3A-AE62-1CE589DFF8F2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7B8B6A26-6732-4B3A-AE62-1CE589DFF8F2}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/OF DL/OF DL.csproj b/OF DL/OF DL.csproj index 8bc38a9..63aeb86 100644 --- a/OF DL/OF DL.csproj +++ b/OF DL/OF DL.csproj @@ -14,19 +14,7 @@ - - - - - - - - - - - - - +