From 91f9b645bd69183efa4435afaf5c3ea333ac4668 Mon Sep 17 00:00:00 2001 From: Mateusz Skoczek Date: Tue, 13 Feb 2024 02:59:40 +0100 Subject: [PATCH 01/81] new_version_init --- VDownload.Common/AudioExtension.cs | 13 + .../Exceptions/MediaSearchException.cs | 21 + VDownload.Common/MediaType.cs | 21 + VDownload.Common/Playlist.cs | 24 + .../Services/ISourceSearchService.cs | 15 + VDownload.Common/Source.cs | 13 + VDownload.Common/VDownload.Common.csproj | 13 + VDownload.Common/Video.cs | 58 ++ VDownload.Common/VideoExtension.cs | 13 + VDownload.Common/VideoStream.cs | 22 + VDownload.Core/Enums/AudioFileExtension.cs | 12 - .../Enums/DownloadTasksAddingRequestSource.cs | 9 - VDownload.Core/Enums/MediaFileExtension.cs | 15 - VDownload.Core/Enums/MediaType.cs | 9 - VDownload.Core/Enums/PlaylistSource.cs | 8 - VDownload.Core/Enums/VideoFileExtension.cs | 9 - VDownload.Core/Enums/VideoSource.cs | 9 - .../DownloadTaskStatusChangedEventArgs.cs | 61 -- .../DownloadTasksAddingRequestedEventArgs.cs | 27 - .../PlaylistSearchSuccessedEventArgs.cs | 24 - .../EventArgs/ProgressChangedEventArgs.cs | 24 - .../SubscriptionLoadSuccessedEventArgs.cs | 24 - .../VideoSearchSuccessedEventArgs.cs | 24 - .../Exceptions/MediaNotFoundException.cs | 11 - .../Exceptions/SubscriptionExistsException.cs | 15 - .../TwitchAccessTokenNotFoundException.cs | 11 - .../TwitchAccessTokenNotValidException.cs | 11 - .../Extensions/TimeSpanExtension.cs | 66 -- VDownload.Core/Interfaces/IPlaylist.cs | 31 - VDownload.Core/Interfaces/IVideo.cs | 49 -- VDownload.Core/Services/Config.cs | 76 -- VDownload.Core/Services/DownloadTask.cs | 178 ----- .../DownloadTasksCollectionManagement.cs | 64 -- VDownload.Core/Services/MediaProcessor.cs | 146 ---- VDownload.Core/Services/OutputFile.cs | 56 -- VDownload.Core/Services/Subscription.cs | 68 -- .../SubscriptionsCollectionManagement.cs | 79 -- VDownload.Core/Sources/AuthorizationData.cs | 11 - VDownload.Core/Sources/Source.cs | 86 -- VDownload.Core/Sources/Twitch/Channel.cs | 113 --- VDownload.Core/Sources/Twitch/Clip.cs | 158 ---- .../Sources/Twitch/Helpers/Authorization.cs | 107 --- .../Sources/Twitch/Helpers/Client.cs | 32 - VDownload.Core/Sources/Twitch/Vod.cs | 285 ------- VDownload.Core/Structs/BaseStream.cs | 28 - VDownload.Core/Structs/TrimData.cs | 18 - .../TwitchAccessTokenValidationData.cs | 32 - VDownload.Core/VDownload.Core.csproj | 190 ----- VDownload.Extensions/StringExtensions.cs | 30 + .../VDownload.Extensions.csproj | 9 + .../TimeSpanControl.xaml | 20 + .../TimeSpanControl.xaml.cs | 122 +++ .../VDownload.GUI.Controls.csproj | 26 + .../BooleanToGridLengthConverter.cs | 44 + .../BooleanToGridLengthFillConverter.cs | 33 + ...ooleanToGridLengthFillReversedConverter.cs | 33 + .../BooleanToGridLengthReversedConverter.cs | 44 + .../BooleanToStringConverter.cs | 30 + .../BooleanToVisibilityConverter.cs | 35 + .../EnumToDescriptionConverter.cs | 29 + .../EnumToIntConverter.cs | 22 + .../EnumToStringConverter.cs | 26 + .../ReverseBooleanConverter.cs | 27 + .../StringToLowerConverter.cs | 22 + .../StringToUriConverter.cs | 30 + .../StringToVisibilityConverter.cs | 14 +- .../VDownload.GUI.Converters.csproj | 21 + .../ViewModelToViewConverter.cs | 65 ++ .../Behaviors/EventToCommandBehavior.cs | 91 +++ .../Models/NavigationViewItem.cs | 19 + .../VDownload.GUI.Customs.csproj | 16 + .../DialogResult.cs | 15 + .../DialogResultOkCancel.cs | 14 + .../DialogResultYesNo.cs | 14 + .../DialogResultYesNoCancel.cs | 15 + .../DialogService.cs | 121 +++ .../VDownload.GUI.Services.Dialog.csproj | 15 + .../ImagesResourceDictionary.cs | 59 ++ .../ResourceDictionariesServices.cs | 64 ++ ...d.GUI.Services.ResourceDictionaries.csproj | 15 + .../FileSavePickerFileTypeChoice.cs | 30 + .../StoragePickerService.cs | 169 ++++ .../StoragePickerStartLocation.cs | 20 + ...Download.GUI.Services.StoragePicker.csproj | 21 + .../VDownload.GUI.Services.WebView.csproj | 25 + .../WebViewService.cs | 29 + .../WebViewWindow.xaml | 12 + .../WebViewWindow.xaml.cs | 89 +++ .../AuthenticationViewModel.cs | 147 ++++ .../VDownload.GUI.ViewModels/HomeViewModel.cs | 315 ++++++++ .../SettingsViewModel.cs | 19 + .../VDownload.GUI.ViewModels.csproj | 27 + .../AuthenticationView.xaml | 80 ++ .../AuthenticationView.xaml.cs | 27 + .../VDownload.GUI.Views/HomeView.xaml | 578 ++++++++++++++ .../VDownload.GUI.Views/HomeView.xaml.cs | 31 + .../VDownload.GUI.Views/SettingsView.xaml | 16 +- .../VDownload.GUI.Views/SettingsView.xaml.cs | 31 + .../VDownload.GUI.Views.csproj | 50 ++ .../AuthenticationConfiguration.cs | 30 + .../AuthenticationData.cs | 30 + .../AuthenticationDataTwitch.cs | 15 + .../AuthenticationService.cs | 97 +++ .../VDownload.Services.Authentication.csproj | 18 + .../EncryptionService.cs | 36 + .../VDownload.Services.Encryption.csproj | 13 + .../HttpClientService.cs | 94 +++ .../HttpMethodType.cs | 17 + .../HttpRequest.cs | 35 + .../VDownload.Services.HttpClient/Token.cs | 38 + .../VDownload.Services.HttpClient.csproj | 14 + .../SearchService.cs | 93 +++ .../VDownload.Services.Search.csproj | 14 + .../VDownload.Services.Tasks/TasksService.cs | 101 +++ .../VDownload.Services.Tasks.csproj | 14 + .../VDownload.Services/ServiceProvider.cs | 11 + .../VDownload.Services.csproj | 9 + .../Request/GetVideoTokenExtensions.cs | 21 + .../Request/GetVideoTokenRequest.cs | 21 + .../Request/GetVideoTokenVariables.cs | 27 + .../GetVideoTokenVideoPlaybackAccessToken.cs | 21 + .../Response/GetVideoTokenData.cs | 16 + .../Response/GetVideoTokenResponse.cs | 19 + .../Helix/GetVideos/Response/Data.cs | 62 ++ .../GetVideos/Response/GetVideosResponse.cs | 16 + .../Helix/GetVideos/Response/MutedSegment.cs | 14 + .../Helix/GetVideos/Response/Pagination.cs | 11 + .../TwitchApiService.cs | 119 +++ .../VDownload.Sources.Twitch.Api.csproj | 14 + .../Models/ValidateResponseFail.cs | 18 + .../Models/ValidateResponseSuccess.cs | 28 + .../TwitchAuthenticationService.cs | 160 ++++ .../TwitchValidationResult.cs | 46 ++ .../TwitchValidationTokenData.cs | 37 + ...nload.Sources.Twitch.Authentication.csproj | 21 + .../TwitchApiAuthConfiguration.cs | 33 + .../TwitchApiAuthEndpointsConfiguration.cs | 29 + .../TwitchApiConfiguration.cs | 36 + .../TwitchApiGQLConfiguration.cs | 33 + .../TwitchApiGQLQueriesConfiguration.cs | 29 + .../TwitchApiGQLQueriesQueryConfiguration.cs | 29 + ...ApiGQLQueriesQueryExtendedConfiguration.cs | 29 + .../TwitchApiHelixConfiguration.cs | 33 + .../TwitchApiHelixEndpointsConfiguration.cs | 29 + .../TwitchApiUsherConfiguration.cs | 29 + .../TwitchApiUsherEndpointsConfiguration.cs | 29 + .../TwitchAuthenticationConfiguration.cs | 40 + .../TwitchConfiguration.cs | 35 + .../TwitchSearchConfiguration.cs | 38 + ...wnload.Sources.Twitch.Configuration.csproj | 14 + .../TwitchSearchService.cs | 165 ++++ .../VDownload.Sources.Twitch.Search.csproj | 16 + .../TwitchPlaylist.cs | 13 + .../VDownload.Sources.Twitch/TwitchVideo.cs | 21 + .../VDownload.Sources.Twitch/TwitchVod.cs | 12 + .../TwitchVodStream.cs | 29 + .../VDownload.Sources.Twitch.csproj | 17 + VDownload.Tasks/DownloadTask.cs | 201 +++++ .../DownloadTaskStatus.cs | 19 +- VDownload.Tasks/DownloadTasksManager.cs | 101 +++ VDownload.Tasks/VDownload.Tasks.csproj | 19 + VDownload.sln | 514 ++++++++++-- VDownload/App.xaml | 12 +- VDownload/App.xaml.cs | 181 +++-- VDownload/Assets/Downloads/FileDark.png | Bin 0 -> 18032 bytes VDownload/Assets/Downloads/FileLight.png | Bin 0 -> 23451 bytes VDownload/Assets/Downloads/IdleDark.png | Bin 0 -> 25636 bytes VDownload/Assets/Downloads/IdleLight.png | Bin 0 -> 45543 bytes .../Assets/Downloads/InitializingDark.png | Bin 0 -> 25331 bytes .../Assets/Downloads/InitializingLight.png | Bin 0 -> 50463 bytes VDownload/Assets/Downloads/NoTasks.png | Bin 0 -> 55553 bytes VDownload/Assets/Downloads/QualityDark.png | Bin 0 -> 31809 bytes VDownload/Assets/Downloads/QualityLight.png | Bin 0 -> 18163 bytes VDownload/Assets/Downloads/QueuedDark.png | Bin 0 -> 22540 bytes VDownload/Assets/Downloads/QueuedLight.png | Bin 0 -> 47106 bytes VDownload/Assets/Downloads/TimeDark.png | Bin 0 -> 22540 bytes VDownload/Assets/Downloads/TimeLight.png | Bin 0 -> 47106 bytes .../Assets/Icons/ActiveTasksNumberDark.svg | 12 - .../Assets/Icons/ActiveTasksNumberLight.svg | 12 - .../Assets/Icons/ApplyToAllOptionsDark.svg | 3 - .../Assets/Icons/ApplyToAllOptionsLight.svg | 3 - VDownload/Assets/Icons/AuthorDark.svg | 5 - VDownload/Assets/Icons/AuthorLight.svg | 5 - .../Assets/Icons/CustomMediaLocationDark.svg | 3 - .../Assets/Icons/CustomMediaLocationLight.svg | 3 - VDownload/Assets/Icons/DateDark.svg | 3 - VDownload/Assets/Icons/DateLight.svg | 3 - .../Icons/DefaultAudioExtensionDark.svg | 3 - .../Icons/DefaultAudioExtensionLight.svg | 3 - .../Assets/Icons/DefaultMediaTypeDark.svg | 3 - .../Assets/Icons/DefaultMediaTypeLight.svg | 3 - .../Icons/DefaultVideoExtensionDark.svg | 3 - .../Icons/DefaultVideoExtensionLight.svg | 3 - ...asksTemporaryFilesIfEndedWithErrorDark.svg | 3 - ...sksTemporaryFilesIfEndedWithErrorLight.svg | 3 - .../Icons/DeleteTemporaryFilesOnStartDark.svg | 3 - .../DeleteTemporaryFilesOnStartLight.svg | 3 - VDownload/Assets/Icons/DurationDark.svg | 3 - VDownload/Assets/Icons/DurationLight.svg | 3 - .../Assets/Icons/EditingAlgorithmDark.svg | 3 - .../Assets/Icons/EditingAlgorithmLight.svg | 3 - VDownload/Assets/Icons/Error.svg | 1 - VDownload/Assets/Icons/FileDark.svg | 3 - VDownload/Assets/Icons/FileLight.svg | 3 - .../Assets/Icons/FilenameTemplateDark.svg | 3 - .../Assets/Icons/FilenameTemplateLight.svg | 3 - VDownload/Assets/Icons/FilterDark.svg | 3 - VDownload/Assets/Icons/FilterLight.svg | 3 - .../Assets/Icons/LastMediaLocationDark.svg | 3 - .../Assets/Icons/LastMediaLocationLight.svg | 3 - VDownload/Assets/Icons/LocationDark.svg | 3 - VDownload/Assets/Icons/LocationLight.svg | 3 - VDownload/Assets/Icons/MediaTypeDark.svg | 3 - VDownload/Assets/Icons/MediaTypeLight.svg | 3 - .../Icons/MeteredConnectionDelayDark.svg | 3 - .../Icons/MeteredConnectionDelayLight.svg | 3 - .../Icons/MeteredConnectionWarningDark.svg | 9 - .../Icons/MeteredConnectionWarningLight.svg | 9 - VDownload/Assets/Icons/QualityDark.svg | 3 - VDownload/Assets/Icons/QualityLight.svg | 3 - .../Icons/RemoveSuccessfullyEndedTaskDark.svg | 3 - .../RemoveSuccessfullyEndedTaskLight.svg | 3 - VDownload/Assets/Icons/ReplaceFileDark.svg | 3 - VDownload/Assets/Icons/ReplaceFileLight.svg | 3 - VDownload/Assets/Icons/ScheduleDark.svg | 3 - VDownload/Assets/Icons/ScheduleLight.svg | 3 - .../ShowNotifcationWhenSuccessfulDark.svg | 6 - .../ShowNotifcationWhenSuccessfulLight.svg | 6 - .../ShowNotifcationWhenUnsuccessfulDark.svg | 6 - .../ShowNotifcationWhenUnsuccessfulLight.svg | 6 - VDownload/Assets/Icons/StateCancelledDark.svg | 3 - .../Assets/Icons/StateCancelledLight.svg | 3 - VDownload/Assets/Icons/StateDoneDark.svg | 3 - VDownload/Assets/Icons/StateDoneLight.svg | 3 - .../Assets/Icons/StateDownloadingDark.svg | 3 - .../Assets/Icons/StateDownloadingLight.svg | 3 - VDownload/Assets/Icons/StateErrorDark.svg | 3 - VDownload/Assets/Icons/StateErrorLight.svg | 3 - .../Assets/Icons/StateFinalizingDark.svg | 42 - .../Assets/Icons/StateFinalizingLight.svg | 42 - VDownload/Assets/Icons/StateIdleDark.svg | 3 - VDownload/Assets/Icons/StateIdleLight.svg | 3 - .../Assets/Icons/StateProcessingDark.svg | 18 - .../Assets/Icons/StateProcessingLight.svg | 18 - VDownload/Assets/Icons/StateQueuedDark.svg | 3 - VDownload/Assets/Icons/StateQueuedLight.svg | 3 - VDownload/Assets/Icons/StateScheduledDark.svg | 3 - .../Assets/Icons/StateScheduledLight.svg | 3 - .../Icons/TemporaryFilesLocationDark.svg | 3 - .../Icons/TemporaryFilesLocationLight.svg | 3 - .../Assets/Icons/TranscodingAlgorithmDark.svg | 3 - .../Icons/TranscodingAlgorithmLight.svg | 3 - VDownload/Assets/Icons/TrimDark.svg | 3 - VDownload/Assets/Icons/TrimLight.svg | 3 - VDownload/Assets/Icons/Twitch.svg | 12 - .../Icons/UseHardwareAccelerationDark.svg | 3 - .../Icons/UseHardwareAccelerationLight.svg | 3 - VDownload/Assets/Icons/ViewsDark.svg | 1 - VDownload/Assets/Icons/ViewsLight.svg | 1 - .../Images/HomeTasksListPlaceholderImage.svg | 6 - VDownload/Assets/Images/UnknownThumbnail.png | Bin 51372 -> 0 bytes ...go.targetsize-16_altform-lightunplated.png | Bin 0 -> 703 bytes ...x44Logo.targetsize-16_altform-unplated.png | Bin 0 -> 703 bytes ...go.targetsize-24_altform-lightunplated.png | Bin 0 -> 1164 bytes ...x44Logo.targetsize-24_altform-unplated.png | Bin 0 -> 1164 bytes ...o.targetsize-256_altform-lightunplated.png | Bin 0 -> 28131 bytes ...44Logo.targetsize-256_altform-unplated.png | Bin 0 -> 28131 bytes ...go.targetsize-32_altform-lightunplated.png | Bin 0 -> 1638 bytes ...x44Logo.targetsize-32_altform-unplated.png | Bin 0 -> 1638 bytes ...go.targetsize-48_altform-lightunplated.png | Bin 0 -> 2716 bytes ...x44Logo.targetsize-48_altform-unplated.png | Bin 0 -> 2716 bytes .../NavigationView/AuthenticationDark.png | Bin 0 -> 18564 bytes .../NavigationView/AuthenticationLight.png | Bin 0 -> 31874 bytes VDownload/Assets/NavigationView/HomeDark.png | Bin 0 -> 19165 bytes VDownload/Assets/NavigationView/HomeLight.png | Bin 0 -> 30483 bytes VDownload/Assets/Sources/Twitch.png | Bin 31904 -> 22887 bytes VDownload/Assets/Video/AuthorDark.png | Bin 0 -> 21043 bytes VDownload/Assets/Video/AuthorLight.png | Bin 0 -> 40840 bytes VDownload/Assets/Video/DateDark.png | Bin 0 -> 17401 bytes VDownload/Assets/Video/DateLight.png | Bin 0 -> 33171 bytes VDownload/Assets/Video/DirectoryDark.png | Bin 0 -> 18860 bytes VDownload/Assets/Video/DirectoryLight.png | Bin 0 -> 24198 bytes VDownload/Assets/Video/ExtensionDark.png | Bin 0 -> 18032 bytes VDownload/Assets/Video/ExtensionLight.png | Bin 0 -> 23451 bytes VDownload/Assets/Video/FilenameDark.png | Bin 0 -> 17996 bytes VDownload/Assets/Video/FilenameLight.png | Bin 0 -> 27707 bytes VDownload/Assets/Video/MediaDark.png | Bin 0 -> 22895 bytes VDownload/Assets/Video/MediaLight.png | Bin 0 -> 41542 bytes VDownload/Assets/Video/QualityDark.png | Bin 0 -> 31809 bytes VDownload/Assets/Video/QualityLight.png | Bin 0 -> 18163 bytes VDownload/Assets/Video/TimeDark.png | Bin 0 -> 22540 bytes VDownload/Assets/Video/TimeLight.png | Bin 0 -> 47106 bytes VDownload/Assets/Video/TrimDark.png | Bin 0 -> 23713 bytes VDownload/Assets/Video/TrimLight.png | Bin 0 -> 46512 bytes VDownload/Assets/Video/ViewDark.png | Bin 0 -> 24234 bytes VDownload/Assets/Video/ViewLight.png | Bin 0 -> 47657 bytes .../PlaceholderableStackPanel.xaml.cs | 100 --- VDownload/Controls/SettingControl.xaml | 53 -- VDownload/Controls/SettingControl.xaml.cs | 52 -- .../TimeSpanToTextBoxMaskConverter.cs | 24 - .../TimeSpanToTextBoxMaskElementsConverter.cs | 37 - VDownload/Dictionaries/Colors.xaml | 17 + VDownload/Dictionaries/Converters.xaml | 20 + VDownload/Dictionaries/Images.xaml | 71 ++ VDownload/MainWindow.xaml | 76 ++ VDownload/MainWindow.xaml.cs | 61 ++ VDownload/MainWindowViewModel.cs | 101 +++ VDownload/Package.appxmanifest | 36 +- VDownload/Resources/AppProperties.xaml | 9 - VDownload/Resources/Colors.xaml | 23 - VDownload/Resources/Converters.xaml | 8 - VDownload/Resources/Icons.xaml | 92 --- VDownload/Resources/Images.xaml | 8 - VDownload/Strings/en-US/DialogResources.resw | 216 ----- VDownload/Strings/en-US/Resources.resw | 407 +--------- VDownload/VDownload.csproj | 749 +++++++----------- VDownload/Views/About/MainPage.xaml | 43 - VDownload/Views/About/MainPage.xaml.cs | 30 - .../Home/Controls/DownloadTaskControl.xaml | 71 -- .../Home/Controls/DownloadTaskControl.xaml.cs | 249 ------ .../Home/Controls/PlaylistSearchControl.xaml | 32 - .../Controls/PlaylistSearchControl.xaml.cs | 147 ---- .../Controls/SerialVideoAddingControl.xaml | 145 ---- .../Controls/SerialVideoAddingControl.xaml.cs | 349 -------- .../SerialVideoAddingVideoControl.xaml | 75 -- .../SerialVideoAddingVideoControl.xaml.cs | 94 --- .../Controls/SubscriptionsLoadControl.xaml | 23 - .../Controls/SubscriptionsLoadControl.xaml.cs | 185 ----- .../Controls/VideoAddingOptionsControl.xaml | 76 -- .../VideoAddingOptionsControl.xaml.cs | 283 ------- .../Home/Controls/VideoSearchControl.xaml | 30 - .../Home/Controls/VideoSearchControl.xaml.cs | 140 ---- VDownload/Views/Home/MainPage.xaml | 109 --- VDownload/Views/Home/MainPage.xaml.cs | 207 ----- VDownload/Views/Home/PlaylistAddingPanel.xaml | 40 - .../Views/Home/PlaylistAddingPanel.xaml.cs | 103 --- .../Views/Home/SubscriptionsAddingPanel.xaml | 40 - .../Home/SubscriptionsAddingPanel.xaml.cs | 92 --- VDownload/Views/Home/VideoAddingPanel.xaml | 204 ----- VDownload/Views/Home/VideoAddingPanel.xaml.cs | 122 --- VDownload/Views/MainPage.xaml | 68 -- VDownload/Views/MainPage.xaml.cs | 62 -- VDownload/Views/Settings/MainPage.xaml | 176 ---- VDownload/Views/Settings/MainPage.xaml.cs | 309 -------- VDownload/Views/Sources/MainPage.xaml | 34 - VDownload/Views/Sources/MainPage.xaml.cs | 224 ------ .../Controls/SubscriptionPanel.xaml | 36 - .../Controls/SubscriptionPanel.xaml.cs | 84 -- VDownload/Views/Subscriptions/MainPage.xaml | 44 - .../Views/Subscriptions/MainPage.xaml.cs | 148 ---- VDownload/app.manifest | 19 + VDownload/appsettings.json | 61 ++ 352 files changed, 6777 insertions(+), 8326 deletions(-) create mode 100644 VDownload.Common/AudioExtension.cs create mode 100644 VDownload.Common/Exceptions/MediaSearchException.cs create mode 100644 VDownload.Common/MediaType.cs create mode 100644 VDownload.Common/Playlist.cs create mode 100644 VDownload.Common/Services/ISourceSearchService.cs create mode 100644 VDownload.Common/Source.cs create mode 100644 VDownload.Common/VDownload.Common.csproj create mode 100644 VDownload.Common/Video.cs create mode 100644 VDownload.Common/VideoExtension.cs create mode 100644 VDownload.Common/VideoStream.cs delete mode 100644 VDownload.Core/Enums/AudioFileExtension.cs delete mode 100644 VDownload.Core/Enums/DownloadTasksAddingRequestSource.cs delete mode 100644 VDownload.Core/Enums/MediaFileExtension.cs delete mode 100644 VDownload.Core/Enums/MediaType.cs delete mode 100644 VDownload.Core/Enums/PlaylistSource.cs delete mode 100644 VDownload.Core/Enums/VideoFileExtension.cs delete mode 100644 VDownload.Core/Enums/VideoSource.cs delete mode 100644 VDownload.Core/EventArgs/DownloadTaskStatusChangedEventArgs.cs delete mode 100644 VDownload.Core/EventArgs/DownloadTasksAddingRequestedEventArgs.cs delete mode 100644 VDownload.Core/EventArgs/PlaylistSearchSuccessedEventArgs.cs delete mode 100644 VDownload.Core/EventArgs/ProgressChangedEventArgs.cs delete mode 100644 VDownload.Core/EventArgs/SubscriptionLoadSuccessedEventArgs.cs delete mode 100644 VDownload.Core/EventArgs/VideoSearchSuccessedEventArgs.cs delete mode 100644 VDownload.Core/Exceptions/MediaNotFoundException.cs delete mode 100644 VDownload.Core/Exceptions/SubscriptionExistsException.cs delete mode 100644 VDownload.Core/Exceptions/TwitchAccessTokenNotFoundException.cs delete mode 100644 VDownload.Core/Exceptions/TwitchAccessTokenNotValidException.cs delete mode 100644 VDownload.Core/Extensions/TimeSpanExtension.cs delete mode 100644 VDownload.Core/Interfaces/IPlaylist.cs delete mode 100644 VDownload.Core/Interfaces/IVideo.cs delete mode 100644 VDownload.Core/Services/Config.cs delete mode 100644 VDownload.Core/Services/DownloadTask.cs delete mode 100644 VDownload.Core/Services/DownloadTasksCollectionManagement.cs delete mode 100644 VDownload.Core/Services/MediaProcessor.cs delete mode 100644 VDownload.Core/Services/OutputFile.cs delete mode 100644 VDownload.Core/Services/Subscription.cs delete mode 100644 VDownload.Core/Services/SubscriptionsCollectionManagement.cs delete mode 100644 VDownload.Core/Sources/AuthorizationData.cs delete mode 100644 VDownload.Core/Sources/Source.cs delete mode 100644 VDownload.Core/Sources/Twitch/Channel.cs delete mode 100644 VDownload.Core/Sources/Twitch/Clip.cs delete mode 100644 VDownload.Core/Sources/Twitch/Helpers/Authorization.cs delete mode 100644 VDownload.Core/Sources/Twitch/Helpers/Client.cs delete mode 100644 VDownload.Core/Sources/Twitch/Vod.cs delete mode 100644 VDownload.Core/Structs/BaseStream.cs delete mode 100644 VDownload.Core/Structs/TrimData.cs delete mode 100644 VDownload.Core/Structs/TwitchAccessTokenValidationData.cs delete mode 100644 VDownload.Core/VDownload.Core.csproj create mode 100644 VDownload.Extensions/StringExtensions.cs create mode 100644 VDownload.Extensions/VDownload.Extensions.csproj create mode 100644 VDownload.GUI/VDownload.GUI.Controls/TimeSpanControl.xaml create mode 100644 VDownload.GUI/VDownload.GUI.Controls/TimeSpanControl.xaml.cs create mode 100644 VDownload.GUI/VDownload.GUI.Controls/VDownload.GUI.Controls.csproj create mode 100644 VDownload.GUI/VDownload.GUI.Converters/BooleanToGridLengthConverter.cs create mode 100644 VDownload.GUI/VDownload.GUI.Converters/BooleanToGridLengthFillConverter.cs create mode 100644 VDownload.GUI/VDownload.GUI.Converters/BooleanToGridLengthFillReversedConverter.cs create mode 100644 VDownload.GUI/VDownload.GUI.Converters/BooleanToGridLengthReversedConverter.cs create mode 100644 VDownload.GUI/VDownload.GUI.Converters/BooleanToStringConverter.cs create mode 100644 VDownload.GUI/VDownload.GUI.Converters/BooleanToVisibilityConverter.cs create mode 100644 VDownload.GUI/VDownload.GUI.Converters/EnumToDescriptionConverter.cs create mode 100644 VDownload.GUI/VDownload.GUI.Converters/EnumToIntConverter.cs create mode 100644 VDownload.GUI/VDownload.GUI.Converters/EnumToStringConverter.cs create mode 100644 VDownload.GUI/VDownload.GUI.Converters/ReverseBooleanConverter.cs create mode 100644 VDownload.GUI/VDownload.GUI.Converters/StringToLowerConverter.cs create mode 100644 VDownload.GUI/VDownload.GUI.Converters/StringToUriConverter.cs rename {VDownload/Converters => VDownload.GUI/VDownload.GUI.Converters}/StringToVisibilityConverter.cs (64%) create mode 100644 VDownload.GUI/VDownload.GUI.Converters/VDownload.GUI.Converters.csproj create mode 100644 VDownload.GUI/VDownload.GUI.Converters/ViewModelToViewConverter.cs create mode 100644 VDownload.GUI/VDownload.GUI.Customs/Behaviors/EventToCommandBehavior.cs create mode 100644 VDownload.GUI/VDownload.GUI.Customs/Models/NavigationViewItem.cs create mode 100644 VDownload.GUI/VDownload.GUI.Customs/VDownload.GUI.Customs.csproj create mode 100644 VDownload.GUI/VDownload.GUI.Services/VDownload.GUI.Services.Dialog/DialogResult.cs create mode 100644 VDownload.GUI/VDownload.GUI.Services/VDownload.GUI.Services.Dialog/DialogResultOkCancel.cs create mode 100644 VDownload.GUI/VDownload.GUI.Services/VDownload.GUI.Services.Dialog/DialogResultYesNo.cs create mode 100644 VDownload.GUI/VDownload.GUI.Services/VDownload.GUI.Services.Dialog/DialogResultYesNoCancel.cs create mode 100644 VDownload.GUI/VDownload.GUI.Services/VDownload.GUI.Services.Dialog/DialogService.cs create mode 100644 VDownload.GUI/VDownload.GUI.Services/VDownload.GUI.Services.Dialog/VDownload.GUI.Services.Dialog.csproj create mode 100644 VDownload.GUI/VDownload.GUI.Services/VDownload.GUI.Services.ResourceDictionaries/ImagesResourceDictionary.cs create mode 100644 VDownload.GUI/VDownload.GUI.Services/VDownload.GUI.Services.ResourceDictionaries/ResourceDictionariesServices.cs create mode 100644 VDownload.GUI/VDownload.GUI.Services/VDownload.GUI.Services.ResourceDictionaries/VDownload.GUI.Services.ResourceDictionaries.csproj create mode 100644 VDownload.GUI/VDownload.GUI.Services/VDownload.GUI.Services.StoragePicker/FileSavePickerFileTypeChoice.cs create mode 100644 VDownload.GUI/VDownload.GUI.Services/VDownload.GUI.Services.StoragePicker/StoragePickerService.cs create mode 100644 VDownload.GUI/VDownload.GUI.Services/VDownload.GUI.Services.StoragePicker/StoragePickerStartLocation.cs create mode 100644 VDownload.GUI/VDownload.GUI.Services/VDownload.GUI.Services.StoragePicker/VDownload.GUI.Services.StoragePicker.csproj create mode 100644 VDownload.GUI/VDownload.GUI.Services/VDownload.GUI.Services.WebView/VDownload.GUI.Services.WebView.csproj create mode 100644 VDownload.GUI/VDownload.GUI.Services/VDownload.GUI.Services.WebView/WebViewService.cs create mode 100644 VDownload.GUI/VDownload.GUI.Services/VDownload.GUI.Services.WebView/WebViewWindow.xaml create mode 100644 VDownload.GUI/VDownload.GUI.Services/VDownload.GUI.Services.WebView/WebViewWindow.xaml.cs create mode 100644 VDownload.GUI/VDownload.GUI.ViewModels/AuthenticationViewModel.cs create mode 100644 VDownload.GUI/VDownload.GUI.ViewModels/HomeViewModel.cs create mode 100644 VDownload.GUI/VDownload.GUI.ViewModels/SettingsViewModel.cs create mode 100644 VDownload.GUI/VDownload.GUI.ViewModels/VDownload.GUI.ViewModels.csproj create mode 100644 VDownload.GUI/VDownload.GUI.Views/AuthenticationView.xaml create mode 100644 VDownload.GUI/VDownload.GUI.Views/AuthenticationView.xaml.cs create mode 100644 VDownload.GUI/VDownload.GUI.Views/HomeView.xaml create mode 100644 VDownload.GUI/VDownload.GUI.Views/HomeView.xaml.cs rename VDownload/Controls/PlaceholderableStackPanel.xaml => VDownload.GUI/VDownload.GUI.Views/SettingsView.xaml (51%) create mode 100644 VDownload.GUI/VDownload.GUI.Views/SettingsView.xaml.cs create mode 100644 VDownload.GUI/VDownload.GUI.Views/VDownload.GUI.Views.csproj create mode 100644 VDownload.Services/VDownload.Services.Authentication/AuthenticationConfiguration.cs create mode 100644 VDownload.Services/VDownload.Services.Authentication/AuthenticationData.cs create mode 100644 VDownload.Services/VDownload.Services.Authentication/AuthenticationDataTwitch.cs create mode 100644 VDownload.Services/VDownload.Services.Authentication/AuthenticationService.cs create mode 100644 VDownload.Services/VDownload.Services.Authentication/VDownload.Services.Authentication.csproj create mode 100644 VDownload.Services/VDownload.Services.Encryption/EncryptionService.cs create mode 100644 VDownload.Services/VDownload.Services.Encryption/VDownload.Services.Encryption.csproj create mode 100644 VDownload.Services/VDownload.Services.HttpClient/HttpClientService.cs create mode 100644 VDownload.Services/VDownload.Services.HttpClient/HttpMethodType.cs create mode 100644 VDownload.Services/VDownload.Services.HttpClient/HttpRequest.cs create mode 100644 VDownload.Services/VDownload.Services.HttpClient/Token.cs create mode 100644 VDownload.Services/VDownload.Services.HttpClient/VDownload.Services.HttpClient.csproj create mode 100644 VDownload.Services/VDownload.Services.Search/SearchService.cs create mode 100644 VDownload.Services/VDownload.Services.Search/VDownload.Services.Search.csproj create mode 100644 VDownload.Services/VDownload.Services.Tasks/TasksService.cs create mode 100644 VDownload.Services/VDownload.Services.Tasks/VDownload.Services.Tasks.csproj create mode 100644 VDownload.Services/VDownload.Services/ServiceProvider.cs create mode 100644 VDownload.Services/VDownload.Services/VDownload.Services.csproj create mode 100644 VDownload.Sources/VDownload.Sources.Twitch/VDownload.Sources.Twitch.Api/GQL/GetVideoToken/Request/GetVideoTokenExtensions.cs create mode 100644 VDownload.Sources/VDownload.Sources.Twitch/VDownload.Sources.Twitch.Api/GQL/GetVideoToken/Request/GetVideoTokenRequest.cs create mode 100644 VDownload.Sources/VDownload.Sources.Twitch/VDownload.Sources.Twitch.Api/GQL/GetVideoToken/Request/GetVideoTokenVariables.cs create mode 100644 VDownload.Sources/VDownload.Sources.Twitch/VDownload.Sources.Twitch.Api/GQL/GetVideoToken/Request/GetVideoTokenVideoPlaybackAccessToken.cs create mode 100644 VDownload.Sources/VDownload.Sources.Twitch/VDownload.Sources.Twitch.Api/GQL/GetVideoToken/Response/GetVideoTokenData.cs create mode 100644 VDownload.Sources/VDownload.Sources.Twitch/VDownload.Sources.Twitch.Api/GQL/GetVideoToken/Response/GetVideoTokenResponse.cs create mode 100644 VDownload.Sources/VDownload.Sources.Twitch/VDownload.Sources.Twitch.Api/Helix/GetVideos/Response/Data.cs create mode 100644 VDownload.Sources/VDownload.Sources.Twitch/VDownload.Sources.Twitch.Api/Helix/GetVideos/Response/GetVideosResponse.cs create mode 100644 VDownload.Sources/VDownload.Sources.Twitch/VDownload.Sources.Twitch.Api/Helix/GetVideos/Response/MutedSegment.cs create mode 100644 VDownload.Sources/VDownload.Sources.Twitch/VDownload.Sources.Twitch.Api/Helix/GetVideos/Response/Pagination.cs create mode 100644 VDownload.Sources/VDownload.Sources.Twitch/VDownload.Sources.Twitch.Api/TwitchApiService.cs create mode 100644 VDownload.Sources/VDownload.Sources.Twitch/VDownload.Sources.Twitch.Api/VDownload.Sources.Twitch.Api.csproj create mode 100644 VDownload.Sources/VDownload.Sources.Twitch/VDownload.Sources.Twitch.Authentication/Models/ValidateResponseFail.cs create mode 100644 VDownload.Sources/VDownload.Sources.Twitch/VDownload.Sources.Twitch.Authentication/Models/ValidateResponseSuccess.cs create mode 100644 VDownload.Sources/VDownload.Sources.Twitch/VDownload.Sources.Twitch.Authentication/TwitchAuthenticationService.cs create mode 100644 VDownload.Sources/VDownload.Sources.Twitch/VDownload.Sources.Twitch.Authentication/TwitchValidationResult.cs create mode 100644 VDownload.Sources/VDownload.Sources.Twitch/VDownload.Sources.Twitch.Authentication/TwitchValidationTokenData.cs create mode 100644 VDownload.Sources/VDownload.Sources.Twitch/VDownload.Sources.Twitch.Authentication/VDownload.Sources.Twitch.Authentication.csproj create mode 100644 VDownload.Sources/VDownload.Sources.Twitch/VDownload.Sources.Twitch.Configuration/TwitchApiAuthConfiguration.cs create mode 100644 VDownload.Sources/VDownload.Sources.Twitch/VDownload.Sources.Twitch.Configuration/TwitchApiAuthEndpointsConfiguration.cs create mode 100644 VDownload.Sources/VDownload.Sources.Twitch/VDownload.Sources.Twitch.Configuration/TwitchApiConfiguration.cs create mode 100644 VDownload.Sources/VDownload.Sources.Twitch/VDownload.Sources.Twitch.Configuration/TwitchApiGQLConfiguration.cs create mode 100644 VDownload.Sources/VDownload.Sources.Twitch/VDownload.Sources.Twitch.Configuration/TwitchApiGQLQueriesConfiguration.cs create mode 100644 VDownload.Sources/VDownload.Sources.Twitch/VDownload.Sources.Twitch.Configuration/TwitchApiGQLQueriesQueryConfiguration.cs create mode 100644 VDownload.Sources/VDownload.Sources.Twitch/VDownload.Sources.Twitch.Configuration/TwitchApiGQLQueriesQueryExtendedConfiguration.cs create mode 100644 VDownload.Sources/VDownload.Sources.Twitch/VDownload.Sources.Twitch.Configuration/TwitchApiHelixConfiguration.cs create mode 100644 VDownload.Sources/VDownload.Sources.Twitch/VDownload.Sources.Twitch.Configuration/TwitchApiHelixEndpointsConfiguration.cs create mode 100644 VDownload.Sources/VDownload.Sources.Twitch/VDownload.Sources.Twitch.Configuration/TwitchApiUsherConfiguration.cs create mode 100644 VDownload.Sources/VDownload.Sources.Twitch/VDownload.Sources.Twitch.Configuration/TwitchApiUsherEndpointsConfiguration.cs create mode 100644 VDownload.Sources/VDownload.Sources.Twitch/VDownload.Sources.Twitch.Configuration/TwitchAuthenticationConfiguration.cs create mode 100644 VDownload.Sources/VDownload.Sources.Twitch/VDownload.Sources.Twitch.Configuration/TwitchConfiguration.cs create mode 100644 VDownload.Sources/VDownload.Sources.Twitch/VDownload.Sources.Twitch.Configuration/TwitchSearchConfiguration.cs create mode 100644 VDownload.Sources/VDownload.Sources.Twitch/VDownload.Sources.Twitch.Configuration/VDownload.Sources.Twitch.Configuration.csproj create mode 100644 VDownload.Sources/VDownload.Sources.Twitch/VDownload.Sources.Twitch.Search/TwitchSearchService.cs create mode 100644 VDownload.Sources/VDownload.Sources.Twitch/VDownload.Sources.Twitch.Search/VDownload.Sources.Twitch.Search.csproj create mode 100644 VDownload.Sources/VDownload.Sources.Twitch/VDownload.Sources.Twitch/TwitchPlaylist.cs create mode 100644 VDownload.Sources/VDownload.Sources.Twitch/VDownload.Sources.Twitch/TwitchVideo.cs create mode 100644 VDownload.Sources/VDownload.Sources.Twitch/VDownload.Sources.Twitch/TwitchVod.cs create mode 100644 VDownload.Sources/VDownload.Sources.Twitch/VDownload.Sources.Twitch/TwitchVodStream.cs create mode 100644 VDownload.Sources/VDownload.Sources.Twitch/VDownload.Sources.Twitch/VDownload.Sources.Twitch.csproj create mode 100644 VDownload.Tasks/DownloadTask.cs rename {VDownload.Core/Enums => VDownload.Tasks}/DownloadTaskStatus.cs (50%) create mode 100644 VDownload.Tasks/DownloadTasksManager.cs create mode 100644 VDownload.Tasks/VDownload.Tasks.csproj create mode 100644 VDownload/Assets/Downloads/FileDark.png create mode 100644 VDownload/Assets/Downloads/FileLight.png create mode 100644 VDownload/Assets/Downloads/IdleDark.png create mode 100644 VDownload/Assets/Downloads/IdleLight.png create mode 100644 VDownload/Assets/Downloads/InitializingDark.png create mode 100644 VDownload/Assets/Downloads/InitializingLight.png create mode 100644 VDownload/Assets/Downloads/NoTasks.png create mode 100644 VDownload/Assets/Downloads/QualityDark.png create mode 100644 VDownload/Assets/Downloads/QualityLight.png create mode 100644 VDownload/Assets/Downloads/QueuedDark.png create mode 100644 VDownload/Assets/Downloads/QueuedLight.png create mode 100644 VDownload/Assets/Downloads/TimeDark.png create mode 100644 VDownload/Assets/Downloads/TimeLight.png delete mode 100644 VDownload/Assets/Icons/ActiveTasksNumberDark.svg delete mode 100644 VDownload/Assets/Icons/ActiveTasksNumberLight.svg delete mode 100644 VDownload/Assets/Icons/ApplyToAllOptionsDark.svg delete mode 100644 VDownload/Assets/Icons/ApplyToAllOptionsLight.svg delete mode 100644 VDownload/Assets/Icons/AuthorDark.svg delete mode 100644 VDownload/Assets/Icons/AuthorLight.svg delete mode 100644 VDownload/Assets/Icons/CustomMediaLocationDark.svg delete mode 100644 VDownload/Assets/Icons/CustomMediaLocationLight.svg delete mode 100644 VDownload/Assets/Icons/DateDark.svg delete mode 100644 VDownload/Assets/Icons/DateLight.svg delete mode 100644 VDownload/Assets/Icons/DefaultAudioExtensionDark.svg delete mode 100644 VDownload/Assets/Icons/DefaultAudioExtensionLight.svg delete mode 100644 VDownload/Assets/Icons/DefaultMediaTypeDark.svg delete mode 100644 VDownload/Assets/Icons/DefaultMediaTypeLight.svg delete mode 100644 VDownload/Assets/Icons/DefaultVideoExtensionDark.svg delete mode 100644 VDownload/Assets/Icons/DefaultVideoExtensionLight.svg delete mode 100644 VDownload/Assets/Icons/DeleteTasksTemporaryFilesIfEndedWithErrorDark.svg delete mode 100644 VDownload/Assets/Icons/DeleteTasksTemporaryFilesIfEndedWithErrorLight.svg delete mode 100644 VDownload/Assets/Icons/DeleteTemporaryFilesOnStartDark.svg delete mode 100644 VDownload/Assets/Icons/DeleteTemporaryFilesOnStartLight.svg delete mode 100644 VDownload/Assets/Icons/DurationDark.svg delete mode 100644 VDownload/Assets/Icons/DurationLight.svg delete mode 100644 VDownload/Assets/Icons/EditingAlgorithmDark.svg delete mode 100644 VDownload/Assets/Icons/EditingAlgorithmLight.svg delete mode 100644 VDownload/Assets/Icons/Error.svg delete mode 100644 VDownload/Assets/Icons/FileDark.svg delete mode 100644 VDownload/Assets/Icons/FileLight.svg delete mode 100644 VDownload/Assets/Icons/FilenameTemplateDark.svg delete mode 100644 VDownload/Assets/Icons/FilenameTemplateLight.svg delete mode 100644 VDownload/Assets/Icons/FilterDark.svg delete mode 100644 VDownload/Assets/Icons/FilterLight.svg delete mode 100644 VDownload/Assets/Icons/LastMediaLocationDark.svg delete mode 100644 VDownload/Assets/Icons/LastMediaLocationLight.svg delete mode 100644 VDownload/Assets/Icons/LocationDark.svg delete mode 100644 VDownload/Assets/Icons/LocationLight.svg delete mode 100644 VDownload/Assets/Icons/MediaTypeDark.svg delete mode 100644 VDownload/Assets/Icons/MediaTypeLight.svg delete mode 100644 VDownload/Assets/Icons/MeteredConnectionDelayDark.svg delete mode 100644 VDownload/Assets/Icons/MeteredConnectionDelayLight.svg delete mode 100644 VDownload/Assets/Icons/MeteredConnectionWarningDark.svg delete mode 100644 VDownload/Assets/Icons/MeteredConnectionWarningLight.svg delete mode 100644 VDownload/Assets/Icons/QualityDark.svg delete mode 100644 VDownload/Assets/Icons/QualityLight.svg delete mode 100644 VDownload/Assets/Icons/RemoveSuccessfullyEndedTaskDark.svg delete mode 100644 VDownload/Assets/Icons/RemoveSuccessfullyEndedTaskLight.svg delete mode 100644 VDownload/Assets/Icons/ReplaceFileDark.svg delete mode 100644 VDownload/Assets/Icons/ReplaceFileLight.svg delete mode 100644 VDownload/Assets/Icons/ScheduleDark.svg delete mode 100644 VDownload/Assets/Icons/ScheduleLight.svg delete mode 100644 VDownload/Assets/Icons/ShowNotifcationWhenSuccessfulDark.svg delete mode 100644 VDownload/Assets/Icons/ShowNotifcationWhenSuccessfulLight.svg delete mode 100644 VDownload/Assets/Icons/ShowNotifcationWhenUnsuccessfulDark.svg delete mode 100644 VDownload/Assets/Icons/ShowNotifcationWhenUnsuccessfulLight.svg delete mode 100644 VDownload/Assets/Icons/StateCancelledDark.svg delete mode 100644 VDownload/Assets/Icons/StateCancelledLight.svg delete mode 100644 VDownload/Assets/Icons/StateDoneDark.svg delete mode 100644 VDownload/Assets/Icons/StateDoneLight.svg delete mode 100644 VDownload/Assets/Icons/StateDownloadingDark.svg delete mode 100644 VDownload/Assets/Icons/StateDownloadingLight.svg delete mode 100644 VDownload/Assets/Icons/StateErrorDark.svg delete mode 100644 VDownload/Assets/Icons/StateErrorLight.svg delete mode 100644 VDownload/Assets/Icons/StateFinalizingDark.svg delete mode 100644 VDownload/Assets/Icons/StateFinalizingLight.svg delete mode 100644 VDownload/Assets/Icons/StateIdleDark.svg delete mode 100644 VDownload/Assets/Icons/StateIdleLight.svg delete mode 100644 VDownload/Assets/Icons/StateProcessingDark.svg delete mode 100644 VDownload/Assets/Icons/StateProcessingLight.svg delete mode 100644 VDownload/Assets/Icons/StateQueuedDark.svg delete mode 100644 VDownload/Assets/Icons/StateQueuedLight.svg delete mode 100644 VDownload/Assets/Icons/StateScheduledDark.svg delete mode 100644 VDownload/Assets/Icons/StateScheduledLight.svg delete mode 100644 VDownload/Assets/Icons/TemporaryFilesLocationDark.svg delete mode 100644 VDownload/Assets/Icons/TemporaryFilesLocationLight.svg delete mode 100644 VDownload/Assets/Icons/TranscodingAlgorithmDark.svg delete mode 100644 VDownload/Assets/Icons/TranscodingAlgorithmLight.svg delete mode 100644 VDownload/Assets/Icons/TrimDark.svg delete mode 100644 VDownload/Assets/Icons/TrimLight.svg delete mode 100644 VDownload/Assets/Icons/Twitch.svg delete mode 100644 VDownload/Assets/Icons/UseHardwareAccelerationDark.svg delete mode 100644 VDownload/Assets/Icons/UseHardwareAccelerationLight.svg delete mode 100644 VDownload/Assets/Icons/ViewsDark.svg delete mode 100644 VDownload/Assets/Icons/ViewsLight.svg delete mode 100644 VDownload/Assets/Images/HomeTasksListPlaceholderImage.svg delete mode 100644 VDownload/Assets/Images/UnknownThumbnail.png create mode 100644 VDownload/Assets/Logo/Square44x44Logo.targetsize-16_altform-lightunplated.png create mode 100644 VDownload/Assets/Logo/Square44x44Logo.targetsize-16_altform-unplated.png create mode 100644 VDownload/Assets/Logo/Square44x44Logo.targetsize-24_altform-lightunplated.png create mode 100644 VDownload/Assets/Logo/Square44x44Logo.targetsize-24_altform-unplated.png create mode 100644 VDownload/Assets/Logo/Square44x44Logo.targetsize-256_altform-lightunplated.png create mode 100644 VDownload/Assets/Logo/Square44x44Logo.targetsize-256_altform-unplated.png create mode 100644 VDownload/Assets/Logo/Square44x44Logo.targetsize-32_altform-lightunplated.png create mode 100644 VDownload/Assets/Logo/Square44x44Logo.targetsize-32_altform-unplated.png create mode 100644 VDownload/Assets/Logo/Square44x44Logo.targetsize-48_altform-lightunplated.png create mode 100644 VDownload/Assets/Logo/Square44x44Logo.targetsize-48_altform-unplated.png create mode 100644 VDownload/Assets/NavigationView/AuthenticationDark.png create mode 100644 VDownload/Assets/NavigationView/AuthenticationLight.png create mode 100644 VDownload/Assets/NavigationView/HomeDark.png create mode 100644 VDownload/Assets/NavigationView/HomeLight.png create mode 100644 VDownload/Assets/Video/AuthorDark.png create mode 100644 VDownload/Assets/Video/AuthorLight.png create mode 100644 VDownload/Assets/Video/DateDark.png create mode 100644 VDownload/Assets/Video/DateLight.png create mode 100644 VDownload/Assets/Video/DirectoryDark.png create mode 100644 VDownload/Assets/Video/DirectoryLight.png create mode 100644 VDownload/Assets/Video/ExtensionDark.png create mode 100644 VDownload/Assets/Video/ExtensionLight.png create mode 100644 VDownload/Assets/Video/FilenameDark.png create mode 100644 VDownload/Assets/Video/FilenameLight.png create mode 100644 VDownload/Assets/Video/MediaDark.png create mode 100644 VDownload/Assets/Video/MediaLight.png create mode 100644 VDownload/Assets/Video/QualityDark.png create mode 100644 VDownload/Assets/Video/QualityLight.png create mode 100644 VDownload/Assets/Video/TimeDark.png create mode 100644 VDownload/Assets/Video/TimeLight.png create mode 100644 VDownload/Assets/Video/TrimDark.png create mode 100644 VDownload/Assets/Video/TrimLight.png create mode 100644 VDownload/Assets/Video/ViewDark.png create mode 100644 VDownload/Assets/Video/ViewLight.png delete mode 100644 VDownload/Controls/PlaceholderableStackPanel.xaml.cs delete mode 100644 VDownload/Controls/SettingControl.xaml delete mode 100644 VDownload/Controls/SettingControl.xaml.cs delete mode 100644 VDownload/Converters/TimeSpanToTextBoxMaskConverter.cs delete mode 100644 VDownload/Converters/TimeSpanToTextBoxMaskElementsConverter.cs create mode 100644 VDownload/Dictionaries/Colors.xaml create mode 100644 VDownload/Dictionaries/Converters.xaml create mode 100644 VDownload/Dictionaries/Images.xaml create mode 100644 VDownload/MainWindow.xaml create mode 100644 VDownload/MainWindow.xaml.cs create mode 100644 VDownload/MainWindowViewModel.cs delete mode 100644 VDownload/Resources/AppProperties.xaml delete mode 100644 VDownload/Resources/Colors.xaml delete mode 100644 VDownload/Resources/Converters.xaml delete mode 100644 VDownload/Resources/Icons.xaml delete mode 100644 VDownload/Resources/Images.xaml delete mode 100644 VDownload/Strings/en-US/DialogResources.resw delete mode 100644 VDownload/Views/About/MainPage.xaml delete mode 100644 VDownload/Views/About/MainPage.xaml.cs delete mode 100644 VDownload/Views/Home/Controls/DownloadTaskControl.xaml delete mode 100644 VDownload/Views/Home/Controls/DownloadTaskControl.xaml.cs delete mode 100644 VDownload/Views/Home/Controls/PlaylistSearchControl.xaml delete mode 100644 VDownload/Views/Home/Controls/PlaylistSearchControl.xaml.cs delete mode 100644 VDownload/Views/Home/Controls/SerialVideoAddingControl.xaml delete mode 100644 VDownload/Views/Home/Controls/SerialVideoAddingControl.xaml.cs delete mode 100644 VDownload/Views/Home/Controls/SerialVideoAddingVideoControl.xaml delete mode 100644 VDownload/Views/Home/Controls/SerialVideoAddingVideoControl.xaml.cs delete mode 100644 VDownload/Views/Home/Controls/SubscriptionsLoadControl.xaml delete mode 100644 VDownload/Views/Home/Controls/SubscriptionsLoadControl.xaml.cs delete mode 100644 VDownload/Views/Home/Controls/VideoAddingOptionsControl.xaml delete mode 100644 VDownload/Views/Home/Controls/VideoAddingOptionsControl.xaml.cs delete mode 100644 VDownload/Views/Home/Controls/VideoSearchControl.xaml delete mode 100644 VDownload/Views/Home/Controls/VideoSearchControl.xaml.cs delete mode 100644 VDownload/Views/Home/MainPage.xaml delete mode 100644 VDownload/Views/Home/MainPage.xaml.cs delete mode 100644 VDownload/Views/Home/PlaylistAddingPanel.xaml delete mode 100644 VDownload/Views/Home/PlaylistAddingPanel.xaml.cs delete mode 100644 VDownload/Views/Home/SubscriptionsAddingPanel.xaml delete mode 100644 VDownload/Views/Home/SubscriptionsAddingPanel.xaml.cs delete mode 100644 VDownload/Views/Home/VideoAddingPanel.xaml delete mode 100644 VDownload/Views/Home/VideoAddingPanel.xaml.cs delete mode 100644 VDownload/Views/MainPage.xaml delete mode 100644 VDownload/Views/MainPage.xaml.cs delete mode 100644 VDownload/Views/Settings/MainPage.xaml delete mode 100644 VDownload/Views/Settings/MainPage.xaml.cs delete mode 100644 VDownload/Views/Sources/MainPage.xaml delete mode 100644 VDownload/Views/Sources/MainPage.xaml.cs delete mode 100644 VDownload/Views/Subscriptions/Controls/SubscriptionPanel.xaml delete mode 100644 VDownload/Views/Subscriptions/Controls/SubscriptionPanel.xaml.cs delete mode 100644 VDownload/Views/Subscriptions/MainPage.xaml delete mode 100644 VDownload/Views/Subscriptions/MainPage.xaml.cs create mode 100644 VDownload/app.manifest create mode 100644 VDownload/appsettings.json diff --git a/VDownload.Common/AudioExtension.cs b/VDownload.Common/AudioExtension.cs new file mode 100644 index 0000000..f0ef465 --- /dev/null +++ b/VDownload.Common/AudioExtension.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace VDownload.Common +{ + public enum AudioExtension + { + MP3 + } +} diff --git a/VDownload.Common/Exceptions/MediaSearchException.cs b/VDownload.Common/Exceptions/MediaSearchException.cs new file mode 100644 index 0000000..01debc3 --- /dev/null +++ b/VDownload.Common/Exceptions/MediaSearchException.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace VDownload.Common.Exceptions +{ + public class MediaSearchException : Exception + { + #region CONSTRUCTORS + + public MediaSearchException() : base() { } + + public MediaSearchException(string message) : base(message) { } + + public MediaSearchException(string message, Exception inner) : base(message, inner) { } + + #endregion + } +} diff --git a/VDownload.Common/MediaType.cs b/VDownload.Common/MediaType.cs new file mode 100644 index 0000000..48c6a6f --- /dev/null +++ b/VDownload.Common/MediaType.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace VDownload.Common +{ + public enum MediaType + { + [Description("Original")] + Original, + + [Description("Only video")] + OnlyVideo, + + [Description("Only audio")] + OnlyAudio, + } +} diff --git a/VDownload.Common/Playlist.cs b/VDownload.Common/Playlist.cs new file mode 100644 index 0000000..203be1d --- /dev/null +++ b/VDownload.Common/Playlist.cs @@ -0,0 +1,24 @@ +using CommunityToolkit.Mvvm.ComponentModel; +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using VDownload.Common.Models; + +namespace VDownload.Common +{ + public abstract class Playlist : ObservableObject, IEnumerable