From bad3155ddad88d0ffe596d85ed37442f104f945e Mon Sep 17 00:00:00 2001 From: NeoCoderMatrix86 <40752681+NeoCoderMatrix86@users.noreply.github.com> Date: Mon, 10 Jun 2024 10:30:50 +0200 Subject: [PATCH 01/49] Updated libraries and version --- AudioCuesheetEditor/AudioCuesheetEditor.csproj | 8 ++++---- AudioCuesheetEditorTests/AudioCuesheetEditorTests.csproj | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/AudioCuesheetEditor/AudioCuesheetEditor.csproj b/AudioCuesheetEditor/AudioCuesheetEditor.csproj index ddce9620..3ddc6127 100644 --- a/AudioCuesheetEditor/AudioCuesheetEditor.csproj +++ b/AudioCuesheetEditor/AudioCuesheetEditor.csproj @@ -7,7 +7,7 @@ enable https://github.com/NeoCoderMatrix86/AudioCuesheetEditor 3.0 - 5.0.0 + 6.0.0 false true true @@ -97,19 +97,19 @@ - + - + - + diff --git a/AudioCuesheetEditorTests/AudioCuesheetEditorTests.csproj b/AudioCuesheetEditorTests/AudioCuesheetEditorTests.csproj index ab10f1bf..fbe26848 100644 --- a/AudioCuesheetEditorTests/AudioCuesheetEditorTests.csproj +++ b/AudioCuesheetEditorTests/AudioCuesheetEditorTests.csproj @@ -7,9 +7,9 @@ - - - + + + all runtime; build; native; contentfiles; analyzers; buildtransitive From afc6e671eda4bf7ff31bb7374fc7958e570ad784 Mon Sep 17 00:00:00 2001 From: NeoCoderMatrix86 <40752681+NeoCoderMatrix86@users.noreply.github.com> Date: Mon, 10 Jun 2024 11:55:48 +0200 Subject: [PATCH 02/49] Calculate begin from previous section --- .../Model/IO/Export/CuesheetSection.cs | 2 +- .../Model/IO/Export/CuesheetSectionTests.cs | 134 ++++++++++++++++-- 2 files changed, 127 insertions(+), 9 deletions(-) diff --git a/AudioCuesheetEditor/Model/IO/Export/CuesheetSection.cs b/AudioCuesheetEditor/Model/IO/Export/CuesheetSection.cs index 8fc38bc7..7107f45a 100644 --- a/AudioCuesheetEditor/Model/IO/Export/CuesheetSection.cs +++ b/AudioCuesheetEditor/Model/IO/Export/CuesheetSection.cs @@ -38,7 +38,7 @@ public CuesheetSection(Cuesheet cuesheet) title = Cuesheet.Title; audiofileName = Cuesheet.Audiofile?.Name; //Try to set begin - begin = Cuesheet.Sections?.FirstOrDefault()?.End; + begin = Cuesheet.Sections?.LastOrDefault()?.End; if (Begin.HasValue == false) { begin = Cuesheet.Tracks.Min(x => x.Begin); diff --git a/AudioCuesheetEditorTests/Model/IO/Export/CuesheetSectionTests.cs b/AudioCuesheetEditorTests/Model/IO/Export/CuesheetSectionTests.cs index e9810a3c..36c343e7 100644 --- a/AudioCuesheetEditorTests/Model/IO/Export/CuesheetSectionTests.cs +++ b/AudioCuesheetEditorTests/Model/IO/Export/CuesheetSectionTests.cs @@ -1,12 +1,7 @@ -using Microsoft.VisualStudio.TestTools.UnitTesting; -using AudioCuesheetEditor.Model.IO.Export; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +using AudioCuesheetEditor.Model.AudioCuesheet; using AudioCuesheetEditor.Model.Entity; -using AudioCuesheetEditor.Model.AudioCuesheet; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using System; namespace AudioCuesheetEditor.Model.IO.Export.Tests { @@ -52,5 +47,128 @@ public void ValidationTest() Assert.AreEqual(ValidationStatus.Success, beginValidationResult.Status); Assert.AreEqual(ValidationStatus.Success, endValidationResult.Status); } + + [TestMethod()] + public void Begin_FirstSection_ReturnsTimespanZero() + { + // Arrange + var cuesheet = new Cuesheet(); + cuesheet.AddTrack(new Track() + { + End = new TimeSpan(0, 4, 43) + }); + cuesheet.AddTrack(new Track() + { + End = new TimeSpan(0, 9, 23) + }); + cuesheet.AddTrack(new Track() + { + End = new TimeSpan(0, 14, 12) + }); + cuesheet.AddTrack(new Track() + { + End = new TimeSpan(0, 18, 53) + }); + cuesheet.AddTrack(new Track() + { + End = new TimeSpan(0, 22, 01) + }); + cuesheet.AddTrack(new Track() + { + End = new TimeSpan(0, 25, 56) + }); + cuesheet.AddTrack(new Track() + { + End = new TimeSpan(0, 31, 12) + }); + // Act + var section = cuesheet.AddSection(); + // Assert + Assert.AreEqual(TimeSpan.Zero, section.Begin); + } + + [TestMethod()] + public void Begin_SecondSection_ReturnsFirstSectionEnd() + { + // Arrange + var cuesheet = new Cuesheet(); + cuesheet.AddTrack(new Track() + { + End = new TimeSpan(0, 4, 43) + }); + cuesheet.AddTrack(new Track() + { + End = new TimeSpan(0, 9, 23) + }); + cuesheet.AddTrack(new Track() + { + End = new TimeSpan(0, 14, 12) + }); + cuesheet.AddTrack(new Track() + { + End = new TimeSpan(0, 18, 53) + }); + cuesheet.AddTrack(new Track() + { + End = new TimeSpan(0, 22, 01) + }); + cuesheet.AddTrack(new Track() + { + End = new TimeSpan(0, 25, 56) + }); + cuesheet.AddTrack(new Track() + { + End = new TimeSpan(0, 31, 12) + }); + var section1 = cuesheet.AddSection(); + section1.End = new TimeSpan(0, 30, 0); + // Act + var section2 = cuesheet.AddSection(); + // Assert + Assert.AreEqual(section1.End, section2.Begin); + } + + [TestMethod()] + public void Begin_ThirdSection_ReturnsSecondSectionEnd() + { + // Arrange + var cuesheet = new Cuesheet(); + cuesheet.AddTrack(new Track() + { + End = new TimeSpan(0, 4, 43) + }); + cuesheet.AddTrack(new Track() + { + End = new TimeSpan(0, 9, 23) + }); + cuesheet.AddTrack(new Track() + { + End = new TimeSpan(0, 14, 12) + }); + cuesheet.AddTrack(new Track() + { + End = new TimeSpan(0, 18, 53) + }); + cuesheet.AddTrack(new Track() + { + End = new TimeSpan(0, 22, 01) + }); + cuesheet.AddTrack(new Track() + { + End = new TimeSpan(0, 25, 56) + }); + cuesheet.AddTrack(new Track() + { + End = new TimeSpan(0, 31, 12) + }); + var section1 = cuesheet.AddSection(); + section1.End = new TimeSpan(0, 15, 0); + var section2 = cuesheet.AddSection(); + section2.End = new TimeSpan(0, 30, 0); + // Act + var section3 = cuesheet.AddSection(); + // Assert + Assert.AreEqual(section2.End, section3.Begin); + } } } \ No newline at end of file From 7df4fb8914dfab24efc8836dcba527b930e68419 Mon Sep 17 00:00:00 2001 From: NeoCoderMatrix86 <40752681+NeoCoderMatrix86@users.noreply.github.com> Date: Tue, 11 Jun 2024 13:39:51 +0200 Subject: [PATCH 03/49] Added service worker for offline usage --- .../AudioCuesheetEditor.csproj | 5 ++ AudioCuesheetEditor/wwwroot/icon-192.png | Bin 0 -> 30011 bytes AudioCuesheetEditor/wwwroot/icon-512.png | Bin 0 -> 51708 bytes AudioCuesheetEditor/wwwroot/index.html | 5 ++ .../wwwroot/manifest.webmanifest | 22 +++++++ AudioCuesheetEditor/wwwroot/service-worker.js | 4 ++ .../wwwroot/service-worker.published.js | 55 ++++++++++++++++++ 7 files changed, 91 insertions(+) create mode 100644 AudioCuesheetEditor/wwwroot/icon-192.png create mode 100644 AudioCuesheetEditor/wwwroot/icon-512.png create mode 100644 AudioCuesheetEditor/wwwroot/manifest.webmanifest create mode 100644 AudioCuesheetEditor/wwwroot/service-worker.js create mode 100644 AudioCuesheetEditor/wwwroot/service-worker.published.js diff --git a/AudioCuesheetEditor/AudioCuesheetEditor.csproj b/AudioCuesheetEditor/AudioCuesheetEditor.csproj index 3ddc6127..c595817d 100644 --- a/AudioCuesheetEditor/AudioCuesheetEditor.csproj +++ b/AudioCuesheetEditor/AudioCuesheetEditor.csproj @@ -11,6 +11,7 @@ false true true + service-worker-assets.js @@ -111,5 +112,9 @@ + + + + diff --git a/AudioCuesheetEditor/wwwroot/icon-192.png b/AudioCuesheetEditor/wwwroot/icon-192.png new file mode 100644 index 0000000000000000000000000000000000000000..700add90467a7b666567f4aaeb0c9e1715c550c1 GIT binary patch literal 30011 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 literal 0 HcmV?d00001 diff --git a/AudioCuesheetEditor/wwwroot/icon-512.png b/AudioCuesheetEditor/wwwroot/icon-512.png new file mode 100644 index 0000000000000000000000000000000000000000..751bdc2bb7abde57a17e7f5a7eb4a577a926632c GIT binary patch literal 51708 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®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 AudioCuesheetEditor + + + + @@ -52,6 +56,7 @@ 🗙 + diff --git a/AudioCuesheetEditor/wwwroot/manifest.webmanifest b/AudioCuesheetEditor/wwwroot/manifest.webmanifest new file mode 100644 index 00000000..8ccc95cf --- /dev/null +++ b/AudioCuesheetEditor/wwwroot/manifest.webmanifest @@ -0,0 +1,22 @@ +{ + "name": "AudioCuesheetEditor", + "short_name": "AudioCuesheetEditor", + "id": "./", + "start_url": "./", + "display": "standalone", + "background_color": "#ffffff", + "theme_color": "#03173d", + "prefer_related_applications": false, + "icons": [ + { + "src": "icon-512.png", + "type": "image/png", + "sizes": "512x512" + }, + { + "src": "icon-192.png", + "type": "image/png", + "sizes": "192x192" + } + ] +} diff --git a/AudioCuesheetEditor/wwwroot/service-worker.js b/AudioCuesheetEditor/wwwroot/service-worker.js new file mode 100644 index 00000000..fe614dae --- /dev/null +++ b/AudioCuesheetEditor/wwwroot/service-worker.js @@ -0,0 +1,4 @@ +// In development, always fetch from the network and do not enable offline support. +// This is because caching would make development more difficult (changes would not +// be reflected on the first load after each change). +self.addEventListener('fetch', () => { }); diff --git a/AudioCuesheetEditor/wwwroot/service-worker.published.js b/AudioCuesheetEditor/wwwroot/service-worker.published.js new file mode 100644 index 00000000..1f7f543f --- /dev/null +++ b/AudioCuesheetEditor/wwwroot/service-worker.published.js @@ -0,0 +1,55 @@ +// Caution! Be sure you understand the caveats before publishing an application with +// offline support. See https://aka.ms/blazor-offline-considerations + +self.importScripts('./service-worker-assets.js'); +self.addEventListener('install', event => event.waitUntil(onInstall(event))); +self.addEventListener('activate', event => event.waitUntil(onActivate(event))); +self.addEventListener('fetch', event => event.respondWith(onFetch(event))); + +const cacheNamePrefix = 'offline-cache-'; +const cacheName = `${cacheNamePrefix}${self.assetsManifest.version}`; +const offlineAssetsInclude = [ /\.dll$/, /\.pdb$/, /\.wasm/, /\.html/, /\.js$/, /\.json$/, /\.css$/, /\.woff$/, /\.png$/, /\.jpe?g$/, /\.gif$/, /\.ico$/, /\.blat$/, /\.dat$/ ]; +const offlineAssetsExclude = [ /^service-worker\.js$/ ]; + +// Replace with your base path if you are hosting on a subfolder. Ensure there is a trailing '/'. +const base = "/"; +const baseUrl = new URL(base, self.origin); +const manifestUrlList = self.assetsManifest.assets.map(asset => new URL(asset.url, baseUrl).href); + +async function onInstall(event) { + console.info('Service worker: Install'); + + // Fetch and cache all matching items from the assets manifest + const assetsRequests = self.assetsManifest.assets + .filter(asset => offlineAssetsInclude.some(pattern => pattern.test(asset.url))) + .filter(asset => !offlineAssetsExclude.some(pattern => pattern.test(asset.url))) + .map(asset => new Request(asset.url, { integrity: asset.hash, cache: 'no-cache' })); + await caches.open(cacheName).then(cache => cache.addAll(assetsRequests)); +} + +async function onActivate(event) { + console.info('Service worker: Activate'); + + // Delete unused caches + const cacheKeys = await caches.keys(); + await Promise.all(cacheKeys + .filter(key => key.startsWith(cacheNamePrefix) && key !== cacheName) + .map(key => caches.delete(key))); +} + +async function onFetch(event) { + let cachedResponse = null; + if (event.request.method === 'GET') { + // For all navigation requests, try to serve index.html from cache, + // unless that request is for an offline resource. + // If you need some URLs to be server-rendered, edit the following check to exclude those URLs + const shouldServeIndexHtml = event.request.mode === 'navigate' + && !manifestUrlList.some(url => url === event.request.url); + + const request = shouldServeIndexHtml ? 'index.html' : event.request; + const cache = await caches.open(cacheName); + cachedResponse = await cache.match(request); + } + + return cachedResponse || fetch(event.request); +} From 1f024f000e830c74e0d3550aabc93b4f112267f2 Mon Sep 17 00:00:00 2001 From: NeoCoderMatrix86 <40752681+NeoCoderMatrix86@users.noreply.github.com> Date: Tue, 11 Jun 2024 13:40:36 +0200 Subject: [PATCH 04/49] Update MusicBrainzDataProvider.cs --- AudioCuesheetEditor/Data/Services/MusicBrainzDataProvider.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/AudioCuesheetEditor/Data/Services/MusicBrainzDataProvider.cs b/AudioCuesheetEditor/Data/Services/MusicBrainzDataProvider.cs index 7ee78d1a..1e46b55d 100644 --- a/AudioCuesheetEditor/Data/Services/MusicBrainzDataProvider.cs +++ b/AudioCuesheetEditor/Data/Services/MusicBrainzDataProvider.cs @@ -45,7 +45,7 @@ public class MusicBrainzDataProvider public async Task> SearchArtistAsync(String searchString) { - List artistSearchResult = new(); + List artistSearchResult = []; if (String.IsNullOrEmpty(searchString) == false) { using var query = new Query(Application, ApplicationVersion, ProjectUrl); @@ -57,7 +57,7 @@ public async Task> SearchArtistAsync(Stri public async Task> SearchTitleAsync(String searchString, String? artist = null) { - List titleSearchResult = new(); + List titleSearchResult = []; if (String.IsNullOrEmpty(searchString) == false) { using var query = new Query(Application, ApplicationVersion, ProjectUrl); From 9d96213c75b77a6d887687dbbd184a8f50859c0e Mon Sep 17 00:00:00 2001 From: NeoCoderMatrix86 <40752681+NeoCoderMatrix86@users.noreply.github.com> Date: Wed, 12 Jun 2024 08:40:39 +0200 Subject: [PATCH 05/49] Update index.html --- AudioCuesheetEditor/wwwroot/index.html | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/AudioCuesheetEditor/wwwroot/index.html b/AudioCuesheetEditor/wwwroot/index.html index 616c5478..35324dfe 100644 --- a/AudioCuesheetEditor/wwwroot/index.html +++ b/AudioCuesheetEditor/wwwroot/index.html @@ -19,6 +19,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + +