Skip to content

Commit ca97268

Browse files
committed
Revert ":bricks: Update to .Net 8 GA"
This reverts commit 45ce50d.
1 parent 45ce50d commit ca97268

14 files changed

+113
-74
lines changed

Nitefox.App/Ffmpeg/FfmpegService.cs

+14-6
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,16 @@
1616
using SharpCompress.Readers;
1717
namespace Nitefox.App.Ffmpeg;
1818

19-
public class FfmpegService(NitefoxConfig nitefoxConfig)
19+
public class FfmpegService
2020
{
21+
private readonly NitefoxConfig _nitefoxConfig;
22+
23+
public FfmpegService(NitefoxConfig nitefoxConfig)
24+
{
25+
_nitefoxConfig = nitefoxConfig;
26+
27+
}
28+
2129
public async Task<bool> StreamConvert(string url, string fileName)
2230
{
2331
return await FFMpegArguments
@@ -30,14 +38,14 @@ public void ConfigureFfmpeg()
3038
{
3139
GlobalFFOptions.Configure(new FFOptions
3240
{
33-
BinaryFolder = nitefoxConfig.FfmpegLocation,
34-
TemporaryFilesFolder = nitefoxConfig.TempFilesLocation
41+
BinaryFolder = _nitefoxConfig.FfmpegLocation,
42+
TemporaryFilesFolder = _nitefoxConfig.TempFilesLocation
3543
});
3644
}
3745

3846
public async Task<bool> DownloadFfmpeg()
3947
{
40-
if (new DirectoryInfo(nitefoxConfig.FfmpegLocation).EnumerateFiles()
48+
if (new DirectoryInfo(_nitefoxConfig.FfmpegLocation).EnumerateFiles()
4149
.Count() >= 3)
4250
{
4351
return true;
@@ -68,7 +76,7 @@ public async Task<bool> DownloadFfmpeg()
6876
releaseAsset = release.Assets.First(asset => asset.Name.EndsWith("osx-arm64.zip"));
6977
}
7078

71-
var downloadInfo = await AssetDownloader.Instance.DownloadAssetAsync(releaseAsset, nitefoxConfig.FfmpegLocation);
79+
var downloadInfo = await AssetDownloader.Instance.DownloadAssetAsync(releaseAsset, _nitefoxConfig.FfmpegLocation);
7280

7381
await Task.Run(async () =>
7482
{
@@ -79,7 +87,7 @@ await Task.Run(async () =>
7987
{
8088
if (!reader.Entry.IsDirectory)
8189
{
82-
reader.WriteEntryToDirectory(nitefoxConfig.FfmpegLocation, new ExtractionOptions()
90+
reader.WriteEntryToDirectory(_nitefoxConfig.FfmpegLocation, new ExtractionOptions()
8391
{
8492
ExtractFullPath = true,
8593
Overwrite = true

Nitefox.App/Media/MediaDownloader.cs

+32-20
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,28 @@
1717

1818
namespace Nitefox.App.Media;
1919

20-
public class MediaDownloader(
21-
IFileService fileService,
22-
FfmpegService ffmpegService,
23-
NitefoxConfig nitefoxConfig,
24-
MetadataService metadataService)
20+
public class MediaDownloader
2521
{
26-
27-
private readonly DataStore _mediaDataStore = new ($"{nitefoxConfig.DownloadLocation}downloads.json",
28-
reloadBeforeGetCollection: true);
22+
private readonly IFileService _fileService;
23+
private readonly DataStore _mediaDataStore;
24+
private readonly FfmpegService _ffmpegService;
25+
private readonly NitefoxConfig _nitefoxConfig;
26+
private readonly MetadataService _metadataService;
2927

28+
public MediaDownloader(
29+
IFileService fileService,
30+
FfmpegService ffmpegService,
31+
NitefoxConfig nitefoxConfig,
32+
MetadataService metadataService)
33+
{
34+
_fileService = fileService;
35+
_ffmpegService = ffmpegService;
36+
_nitefoxConfig = nitefoxConfig;
37+
_metadataService = metadataService;
38+
_mediaDataStore = new DataStore($"{_nitefoxConfig.DownloadLocation}downloads.json",
39+
reloadBeforeGetCollection: true);
40+
}
41+
3042
public async Task<TrackDownload> Download(string title, string url, string author, string? collection = null)
3143
{
3244
var trackDownload = new TrackDownload
@@ -39,12 +51,12 @@ public async Task<TrackDownload> Download(string title, string url, string autho
3951

4052
try
4153
{
42-
await ffmpegService.DownloadFfmpeg();
54+
await _ffmpegService.DownloadFfmpeg();
4355

44-
ffmpegService.ConfigureFfmpeg();
45-
fileService.SetupDirectories();
56+
_ffmpegService.ConfigureFfmpeg();
57+
_fileService.SetupDirectories();
4658

47-
var streamUrl = await metadataService.GetYoutubeSongStream(url);
59+
var streamUrl = await _metadataService.GetYoutubeSongStream(url);
4860

4961
if (string.IsNullOrWhiteSpace(streamUrl))
5062
{
@@ -53,12 +65,12 @@ public async Task<TrackDownload> Download(string title, string url, string autho
5365

5466
if (collection is not null)
5567
{
56-
var songAlbumPath = $"{nitefoxConfig.DownloadLocation}{collection}\\";
68+
var songAlbumPath = $"{_nitefoxConfig.DownloadLocation}{collection}\\";
5769

5870
trackDownload.Collection = collection;
5971
trackDownload.SavePath = $"{songAlbumPath}{songSaveName}";
6072
trackDownload.IsDownloaded =
61-
await ffmpegService.StreamConvert(streamUrl, $"{songAlbumPath}{songSaveName}");
73+
await _ffmpegService.StreamConvert(streamUrl, $"{songAlbumPath}{songSaveName}");
6274

6375
if (trackDownload.IsDownloaded)
6476
{
@@ -69,9 +81,9 @@ await _mediaDataStore.GetCollection<TrackDownload>()
6981
return trackDownload;
7082
}
7183

72-
trackDownload.SavePath = $"{nitefoxConfig.DownloadLocation}{songSaveName}";
84+
trackDownload.SavePath = $"{_nitefoxConfig.DownloadLocation}{songSaveName}";
7385
trackDownload.IsDownloaded =
74-
await ffmpegService.StreamConvert(streamUrl, $"{nitefoxConfig.DownloadLocation}{songSaveName}");
86+
await _ffmpegService.StreamConvert(streamUrl, $"{_nitefoxConfig.DownloadLocation}{songSaveName}");
7587

7688
if (trackDownload.IsDownloaded)
7789
{
@@ -90,9 +102,9 @@ await _mediaDataStore.GetCollection<TrackDownload>()
90102

91103
public async IAsyncEnumerable<TrackDownload> DownloadAlbum(string title, string id)
92104
{
93-
fileService.CreateMediaDirectory(nitefoxConfig.DownloadLocation, title.ToPathSafeString());
105+
_fileService.CreateMediaDirectory(_nitefoxConfig.DownloadLocation, title.ToPathSafeString());
94106

95-
foreach (var track in await metadataService.GetAlbumTracksMetadata(id, title))
107+
foreach (var track in await _metadataService.GetAlbumTracksMetadata(id, title))
96108
{
97109
var authors = track.Artists.Select(artist => artist.Name).Take(3).ToDelimitedString();
98110
yield return await Download(track.Title, track.Url, authors, title.ToPathSafeString());
@@ -101,9 +113,9 @@ public async IAsyncEnumerable<TrackDownload> DownloadAlbum(string title, string
101113

102114
public async IAsyncEnumerable<TrackDownload> DownloadPlaylist(string title, string id)
103115
{
104-
fileService.CreateMediaDirectory(nitefoxConfig.DownloadLocation, title.ToPathSafeString());
116+
_fileService.CreateMediaDirectory(_nitefoxConfig.DownloadLocation, title.ToPathSafeString());
105117

106-
foreach (var track in await metadataService.GetPlaylistTracksMetadata(id, title))
118+
foreach (var track in await _metadataService.GetPlaylistTracksMetadata(id, title))
107119
{
108120
var authors = track.Artists.Select(artist => artist.Name).Take(3).ToDelimitedString();
109121
yield return await Download(track.Title, track.Url, authors, title.ToPathSafeString());

Nitefox.App/Media/MediaSearch.cs

+11-4
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,15 @@
1414

1515
namespace Nitefox.App.Media;
1616

17-
public class MediaSearch(SpotifyClient spotifyClient)
17+
public class MediaSearch
1818
{
19+
private readonly SpotifyClient _spotifyClient;
20+
21+
public MediaSearch(SpotifyClient spotifyClient)
22+
{
23+
_spotifyClient = spotifyClient;
24+
}
25+
1926
public async Task<IEnumerable<ISearchResult>> SearchAsync(string query, int limit = Int32.MaxValue, int skip = 0)
2027
{
2128
try
@@ -24,15 +31,15 @@ public async Task<IEnumerable<ISearchResult>> SearchAsync(string query, int limi
2431

2532
if (query.Contains("album", StringComparison.InvariantCultureIgnoreCase))
2633
{
27-
return await spotifyClient.Search.GetAlbumsAsync(cleanQuery, skip, limit);
34+
return await _spotifyClient.Search.GetAlbumsAsync(cleanQuery, skip, limit);
2835
}
2936

3037
if (query.Contains("playlist", StringComparison.InvariantCultureIgnoreCase))
3138
{
32-
return await spotifyClient.Search.GetPlaylistsAsync(cleanQuery, skip, limit);
39+
return await _spotifyClient.Search.GetPlaylistsAsync(cleanQuery, skip, limit);
3340
}
3441

35-
return await spotifyClient.Search.GetTracksAsync(cleanQuery, skip, limit);
42+
return await _spotifyClient.Search.GetTracksAsync(cleanQuery, skip, limit);
3643
}
3744
catch (Exception e)
3845
{

Nitefox.App/Media/MetadataService.cs

+20-11
Original file line numberDiff line numberDiff line change
@@ -15,25 +15,34 @@
1515

1616
namespace Nitefox.App.Media;
1717

18-
public class MetadataService(SpotifyClient spotifyClient, YoutubeClient youtubeClient)
18+
public class MetadataService
1919
{
20+
private readonly SpotifyClient _spotifyClient;
21+
private readonly YoutubeClient _youtubeClient;
22+
23+
public MetadataService(SpotifyClient spotifyClient, YoutubeClient youtubeClient)
24+
{
25+
_spotifyClient = spotifyClient;
26+
_youtubeClient = youtubeClient;
27+
}
28+
2029
public async Task<int> GetAlbumTrackCount(string id)
2130
{
22-
var album = await spotifyClient.Albums.GetAsync(id);
31+
var album = await _spotifyClient.Albums.GetAsync(id);
2332
return album.Tracks.Count;
2433
}
2534

2635
public async Task<int> GetPlaylistTrackCount(string id)
2736
{
28-
var playlists = await spotifyClient.Playlists.GetAsync(id);
37+
var playlists = await _spotifyClient.Playlists.GetAsync(id);
2938
return playlists.Tracks.Count;
3039
}
3140

3241
public async Task<string> GetAlbumImageUrl(string id)
3342
{
3443
try
3544
{
36-
var album = await spotifyClient.Albums.GetAsync(id);
45+
var album = await _spotifyClient.Albums.GetAsync(id);
3746
var image = album.Images.FirstOrDefault(image => !string.IsNullOrWhiteSpace(image.Url));
3847
if (image is null) return string.Empty;
3948
return image.Url;
@@ -52,7 +61,7 @@ public async Task<string> GetPlaylistImageUrl(string id)
5261
{
5362
try
5463
{
55-
var tracks = await spotifyClient.Playlists.GetTracksAsync(id, limit: 5);
64+
var tracks = await _spotifyClient.Playlists.GetTracksAsync(id, limit: 5);
5665
var playlistImages = tracks.SelectMany(track => track.Album.Images)
5766
.Where(image => !string.IsNullOrWhiteSpace(image.Url));
5867
var image = playlistImages.FirstOrDefault(image => !string.IsNullOrWhiteSpace(image.Url));
@@ -71,30 +80,30 @@ public async Task<string> GetPlaylistImageUrl(string id)
7180

7281
public async Task<string> GetYoutubeSongStream(string url)
7382
{
74-
var youtubeId = await spotifyClient.Tracks.GetYoutubeIdAsync(url);
75-
var streamManifest = await youtubeClient.Videos.Streams.GetManifestAsync($"https://youtube.com/watch?v={youtubeId}");
83+
var youtubeId = await _spotifyClient.Tracks.GetYoutubeIdAsync(url);
84+
var streamManifest = await _youtubeClient.Videos.Streams.GetManifestAsync($"https://youtube.com/watch?v={youtubeId}");
7685
return streamManifest.GetAudioOnlyStreams().GetWithHighestBitrate().Url;
7786
}
7887

7988
public async Task<string> GetPreviewStream(string url)
8089
{
81-
var youtubeId = await spotifyClient.Tracks.GetYoutubeIdAsync(url);
82-
var streamManifest = await youtubeClient.Videos.Streams.GetManifestAsync($"https://youtube.com/watch?v={youtubeId}");
90+
var youtubeId = await _spotifyClient.Tracks.GetYoutubeIdAsync(url);
91+
var streamManifest = await _youtubeClient.Videos.Streams.GetManifestAsync($"https://youtube.com/watch?v={youtubeId}");
8392
return streamManifest.GetAudioOnlyStreams()
8493
.OrderByDescending(stream => stream.Size)
8594
.First().Url;
8695
}
8796

8897
public async Task<IEnumerable<Track>> GetAlbumTracksMetadata(string id, string title)
8998
{
90-
var tracks = await spotifyClient.Albums.GetAllTracksAsync(id);
99+
var tracks = await _spotifyClient.Albums.GetAllTracksAsync(id);
91100
return tracks.AsEnumerable();
92101
}
93102

94103

95104
public async Task<IEnumerable<Track>> GetPlaylistTracksMetadata(string id, string title)
96105
{
97-
var tracks = await spotifyClient.Playlists.GetAllTracksAsync(id);
106+
var tracks = await _spotifyClient.Playlists.GetAllTracksAsync(id);
98107
return tracks.AsEnumerable();
99108
}
100109

Nitefox.App/Nitefox.App.csproj

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFramework>net8.0</TargetFramework>
4+
<TargetFramework>net7.0</TargetFramework>
55
<ImplicitUsings>enable</ImplicitUsings>
66
<Nullable>enable</Nullable>
77
<PublishAot>true</PublishAot>
8-
<LangVersion>12</LangVersion>
98
</PropertyGroup>
109

1110
<ItemGroup>
@@ -18,7 +17,6 @@
1817
<PackageReference Include="Russkyc.Configuration" Version="1.0.1" />
1918
<PackageReference Include="SharpCompress" Version="0.34.1" />
2019
<PackageReference Include="SpotifyExplode" Version="1.0.7" />
21-
<PackageReference Include="TagLibSharp" Version="2.3.0" />
2220
<PackageReference Include="YoutubeExplode" Version="6.3.6" />
2321
</ItemGroup>
2422

Nitefox.App/States/MediaPlayerState.cs

+1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ public void Play(string track, string url)
2222
{
2323
Track = track;
2424
StreamUrl = url;
25+
Loaded = true;
2526
}
2627

2728
public void Stop()

Nitefox.Client.Photino/Nitefox.Client.Photino.csproj

+1-2
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,8 @@
22

33
<PropertyGroup>
44
<OutputType>WinExe</OutputType>
5-
<TargetFramework>net8.0</TargetFramework>
5+
<TargetFramework>net7.0</TargetFramework>
66
<ApplicationIcon>nitefox_icon.ico</ApplicationIcon>
7-
<LangVersion>12</LangVersion>
87
</PropertyGroup>
98

109
<ItemGroup>

Nitefox.Client.Photino/Services/PhotinoFileService.cs

+24-16
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,26 @@
1616

1717
namespace Nitefox.Client.Photino.Services;
1818

19-
public class PhotinoFileService(NitefoxConfig nitefoxConfig) : IFileService
19+
public class PhotinoFileService : IFileService
2020
{
21-
public Task<string> OpenFolder()
21+
private readonly NitefoxConfig _nitefoxConfig;
22+
23+
public PhotinoFileService(NitefoxConfig nitefoxConfig)
24+
{
25+
_nitefoxConfig = nitefoxConfig;
26+
SetupDirectories();
27+
}
28+
29+
public async Task<string> OpenFolder()
2230
{
2331
try
2432
{
2533
var path = Program.App.MainWindow.ShowOpenFolder();
26-
return Task.FromResult(path[0]);
34+
return path[0];
2735
}
2836
catch (Exception)
2937
{
30-
return Task.FromResult("");
38+
return "";
3139
}
3240
}
3341

@@ -46,34 +54,34 @@ public bool CreateMediaDirectory(string basePath, string directoryName)
4654

4755
public void SetupDirectories()
4856
{
49-
if (string.IsNullOrWhiteSpace(nitefoxConfig.DownloadLocation))
57+
if (string.IsNullOrWhiteSpace(_nitefoxConfig.DownloadLocation))
5058
{
51-
nitefoxConfig.DownloadLocation = Environment.CurrentDirectory + "\\songs\\";
59+
_nitefoxConfig.DownloadLocation = Environment.CurrentDirectory + "\\songs\\";
5260
}
5361

54-
if (!Directory.Exists(nitefoxConfig.DownloadLocation))
62+
if (!Directory.Exists(_nitefoxConfig.DownloadLocation))
5563
{
56-
Directory.CreateDirectory(nitefoxConfig.DownloadLocation);
64+
Directory.CreateDirectory(_nitefoxConfig.DownloadLocation);
5765
}
5866

59-
if (string.IsNullOrWhiteSpace(nitefoxConfig.TempFilesLocation))
67+
if (string.IsNullOrWhiteSpace(_nitefoxConfig.TempFilesLocation))
6068
{
61-
nitefoxConfig.TempFilesLocation = Environment.CurrentDirectory + "\\temp\\";
69+
_nitefoxConfig.TempFilesLocation = Environment.CurrentDirectory + "\\temp\\";
6270
}
6371

64-
if (!Directory.Exists(nitefoxConfig.TempFilesLocation))
72+
if (!Directory.Exists(_nitefoxConfig.TempFilesLocation))
6573
{
66-
Directory.CreateDirectory(nitefoxConfig.TempFilesLocation);
74+
Directory.CreateDirectory(_nitefoxConfig.TempFilesLocation);
6775
}
6876

69-
if (string.IsNullOrWhiteSpace(nitefoxConfig.FfmpegLocation))
77+
if (string.IsNullOrWhiteSpace(_nitefoxConfig.FfmpegLocation))
7078
{
71-
nitefoxConfig.FfmpegLocation = Environment.CurrentDirectory + "\\ffmpeg\\";
79+
_nitefoxConfig.FfmpegLocation = Environment.CurrentDirectory + "\\ffmpeg\\";
7280
}
7381

74-
if (!Directory.Exists(nitefoxConfig.FfmpegLocation))
82+
if (!Directory.Exists(_nitefoxConfig.FfmpegLocation))
7583
{
76-
Directory.CreateDirectory(nitefoxConfig.FfmpegLocation);
84+
Directory.CreateDirectory(_nitefoxConfig.FfmpegLocation);
7785
}
7886
}
7987
}

0 commit comments

Comments
 (0)