From f4164ccf24060162b60898e82fe32de306b56520 Mon Sep 17 00:00:00 2001 From: ju09279 Date: Sun, 1 Sep 2024 01:38:52 +0200 Subject: [PATCH] localstorage upgrage, custome colors, fixed broken files (encoding issues) --- backend/Program.cs | 12 +- backend/SqliteDB.cs | 70 +--------- backend/default-bg.png | Bin 0 -> 3787 bytes backend/osudb.cs | 10 +- backend/shitweb.csproj | 6 + backend/types.cs | 54 +++++--- frontend/public/default-bg.png | Bin 0 -> 3787 bytes frontend/src/App.vue | 15 +- frontend/src/assets/base.css | 39 +++++- frontend/src/assets/main.css | 5 +- frontend/src/components/ActiveSearchList.vue | 62 +++++---- .../src/components/CollectionListItem.vue | 10 +- frontend/src/components/Footer.vue | 13 +- frontend/src/components/NowPlaying.vue | 42 +++--- frontend/src/components/SongItem.vue | 31 +++-- frontend/src/public | 0 frontend/src/stores/audioStore.ts | 67 ++++++--- frontend/src/views/MeView.vue | 131 +++++++++++++++++- frontend/src/views/NowPlayingView.vue | 27 ++-- frontend/src/views/RecentView.vue | 2 +- frontend/src/views/SearchView.vue | 94 ++++++++----- 21 files changed, 454 insertions(+), 236 deletions(-) create mode 100644 backend/default-bg.png create mode 100644 frontend/public/default-bg.png create mode 100644 frontend/src/public diff --git a/backend/Program.cs b/backend/Program.cs index 2312198..230e6a5 100644 --- a/backend/Program.cs +++ b/backend/Program.cs @@ -90,9 +90,8 @@ app.MapGet("/api/v1/audio/{*fileName}", async (string fileName, HttpContext cont var decodedFileName = Uri.UnescapeDataString(fileName); var filePath = Path.Combine(Osudb.osufolder, "Songs", decodedFileName); - if (!System.IO.File.Exists(filePath)) + if (!File.Exists(filePath)) { - Console.WriteLine($"Not Found: {filePath}"); return Results.NotFound(); } @@ -125,11 +124,15 @@ app.MapGet("/api/v1/search/artist", async (string? q, int? limit, int? offset) = app.MapGet("/api/v1/search/songs", async (string? q, int? limit, int? offset) => { + var limitv = limit ?? 100; + var offsetv = offset ?? 0; return Results.Ok(); }); app.MapGet("/api/v1/search/collections", async (string? q, int? limit, int? offset) => { + var limitv = limit ?? 100; + var offsetv = offset ?? 0; return Results.Ok(); }); @@ -138,10 +141,9 @@ app.MapGet("/api/v1/images/{*filename}", async (string filename, int? h, int? w) var decodedFileName = Uri.UnescapeDataString(filename); var filePath = Path.Combine(Osudb.osufolder, "Songs", decodedFileName); - if (!System.IO.File.Exists(filePath)) + if (!File.Exists(filePath)) { - Console.WriteLine($"Not Found: {filePath}"); - return Results.NotFound(); + filePath = "default-bg.png"; } var fileExtension = Path.GetExtension(filePath).ToLowerInvariant(); diff --git a/backend/SqliteDB.cs b/backend/SqliteDB.cs index 67dd38b..c30dedd 100644 --- a/backend/SqliteDB.cs +++ b/backend/SqliteDB.cs @@ -184,22 +184,7 @@ namespace shitweb { while (reader.Read()) { - string folder = reader.GetString(reader.GetOrdinal("FolderName")); - string file = reader.GetString(reader.GetOrdinal("FileName")); - string audio = reader.GetString(reader.GetOrdinal("AudioFileName")); - - var img = Osudb.getBG(folder, file); - Song song = new Song( - hash: reader.GetString(reader.GetOrdinal("MD5Hash")), - name: reader.GetString(reader.GetOrdinal("Title")), - artist: reader.GetString(reader.GetOrdinal("Artist")), - length: reader.GetInt32(reader.GetOrdinal("TotalTime")), - url: $"{folder}/{audio}", - previewimage: img, - mapper: reader.GetString(reader.GetOrdinal("Creator")) - ); - - songs.Add(song); + songs.Add(new Song(reader)); } } } @@ -281,23 +266,7 @@ namespace shitweb { while (reader.Read()) { - - string folder = reader.GetString(reader.GetOrdinal("FolderName")); - string file = reader.GetString(reader.GetOrdinal("FileName")); - string audio = reader.GetString(reader.GetOrdinal("AudioFileName")); - - var img = Osudb.getBG(folder, file); - Song song = new Song( - hash: reader.GetString(reader.GetOrdinal("MD5Hash")), - name: reader.GetString(reader.GetOrdinal("Title")), - artist: reader.GetString(reader.GetOrdinal("Artist")), - length: reader.GetInt32(reader.GetOrdinal("TotalTime")), - url: $"{folder}/{audio}", - previewimage: img, - mapper: reader.GetString(reader.GetOrdinal("Creator")) - ); - - return song; + return new Song(reader); } } } @@ -336,22 +305,7 @@ namespace shitweb while (reader.Read()) { - string folder = reader.GetString(reader.GetOrdinal("FolderName")); - string file = reader.GetString(reader.GetOrdinal("FileName")); - string audio = reader.GetString(reader.GetOrdinal("AudioFileName")); - - var img = Osudb.getBG(folder, file); - Song song = new Song( - hash: reader.GetString(reader.GetOrdinal("MD5Hash")), - name: reader.GetString(reader.GetOrdinal("Title")), - artist: reader.GetString(reader.GetOrdinal("Artist")), - length: reader.GetInt32(reader.GetOrdinal("TotalTime")), - url: $"{folder}/{audio}", - previewimage: img, - mapper: reader.GetString(reader.GetOrdinal("Creator")) - ); - - search.Songs.Add(song); + search.Songs.Add(new Song(reader)); } } } @@ -360,6 +314,7 @@ namespace shitweb Artist FROM Beatmap WHERE Artist LIKE @query + OR Title LIKE @query Group By Artist LIMIT 5"; @@ -417,22 +372,7 @@ namespace shitweb while (reader.Read()) { - string folder = reader.GetString(reader.GetOrdinal("FolderName")); - string file = reader.GetString(reader.GetOrdinal("FileName")); - string audio = reader.GetString(reader.GetOrdinal("AudioFileName")); - - var img = Osudb.getBG(folder, file); - Song song = new Song( - hash: reader.GetString(reader.GetOrdinal("MD5Hash")), - name: reader.GetString(reader.GetOrdinal("Title")), - artist: reader.GetString(reader.GetOrdinal("Artist")), - length: reader.GetInt32(reader.GetOrdinal("TotalTime")), - url: $"{folder}/{audio}", - previewimage: img, - mapper: reader.GetString(reader.GetOrdinal("Creator")) - ); - - songs.Add(song); + songs.Add(new Song(reader)); } } } diff --git a/backend/default-bg.png b/backend/default-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..2c31f5a67c026cf01a1e7d11043ffaadb393823f GIT binary patch literal 3787 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 GE%85oCk|%- literal 0 HcmV?d00001 diff --git a/backend/osudb.cs b/backend/osudb.cs index c6cdfc1..7a453da 100644 --- a/backend/osudb.cs +++ b/backend/osudb.cs @@ -144,9 +144,9 @@ public class Osudb if (match.Success) { - string background = match.Groups["image_filename"].Value; + string background = Uri.EscapeDataString(match.Groups["image_filename"].Value); - return Path.Combine(songfolder, background); + return Path.Combine(Uri.EscapeDataString(songfolder), background); } pattern = @"\d+,\d+,""(?[^""]+\.[a-zA-Z]+)"""; @@ -155,10 +155,10 @@ public class Osudb if (match.Success) { - string background = match.Groups["image_filename"].Value; - return Path.Combine(songfolder, background); + string background = Uri.EscapeDataString(match.Groups["image_filename"].Value); + return Path.Combine(Uri.EscapeDataString(songfolder), background); } } - return null; + return "default-bg.png"; } } diff --git a/backend/shitweb.csproj b/backend/shitweb.csproj index 84f95c5..9026d11 100644 --- a/backend/shitweb.csproj +++ b/backend/shitweb.csproj @@ -12,4 +12,10 @@ + + + PreserveNewest + + + diff --git a/backend/types.cs b/backend/types.cs index af8ccb6..424cdb0 100644 --- a/backend/types.cs +++ b/backend/types.cs @@ -1,6 +1,8 @@ using OsuParsers.Database.Objects; using OsuParsers.Enums.Database; -using OsuParsers.Enums; +using OsuParsers.Enums; +using System.Data.SQLite; +using System.CodeDom; public class Song{ public string hash {get; set;} @@ -15,13 +17,27 @@ public class Song{ this.hash = hash; this.name = name; this.artist = artist; this.length = length; this.url = url; this.previewimage = previewimage; this.mapper = mapper; } + public Song(SQLiteDataReader reader) { + string folder = reader.GetString(reader.GetOrdinal("FolderName")); + string file = reader.GetString(reader.GetOrdinal("FileName")); + string audio = reader.GetString(reader.GetOrdinal("AudioFileName")); + + this.hash = reader.GetString(reader.GetOrdinal("MD5Hash")); + this.name = reader.GetString(reader.GetOrdinal("Title")); + this.artist = reader.GetString(reader.GetOrdinal("Artist")); + this.length = reader.GetInt32(reader.GetOrdinal("TotalTime")); + this.url = Uri.EscapeDataString($"{folder}/{audio}"); + this.previewimage = Osudb.getBG(folder, file); + this.mapper = reader.GetString(reader.GetOrdinal("Creator")); + + } } public class CollectionPreview{ public int index { get; set;} - public string name {get; set;} + public string? name {get; set;} public int length {get; set;} - public string previewimage {get; set;} + public string? previewimage {get; set;} private CollectionPreview() { } @@ -31,9 +47,9 @@ public class CollectionPreview{ } public class Collection{ - public string name {get; set;} + public string? name {get; set;} public int length {get; set;} - public List songs { get; set;} + public List songs { get; set;} = new List(); private Collection() { } @@ -50,31 +66,31 @@ public class ActiveSearch{ public class Beatmap { - public string Artist { get; set; } - public string ArtistUnicode { get; set; } - public string Title { get; set; } - public string TitleUnicode { get; set; } - public string Creator { get; set; } - public string Difficulty { get; set; } - public string AudioFileName { get; set; } - public string MD5Hash { get; set; } - public string FileName { get; set; } + public string? Artist { get; set; } + public string? ArtistUnicode { get; set; } + public string? Title { get; set; } + public string? TitleUnicode { get; set; } + public string? Creator { get; set; } + public string? Difficulty { get; set; } + public string? AudioFileName { get; set; } + public string? MD5Hash { get; set; } + public string? FileName { get; set; } public RankedStatus RankedStatus { get; set; } public DateTime LastModifiedTime { get; set; } public int TotalTime { get; set; } public int AudioPreviewTime { get; set; } public int BeatmapId { get; set; } public int BeatmapSetId { get; set; } - public string Source { get; set; } - public string Tags { get; set; } + public string? Source { get; set; } + public string? Tags { get; set; } public DateTime LastPlayed { get; set; } - public string FolderName { get; set; } + public string? FolderName { get; set; } } public class BeatmapSet { public int BeatmapSetId { get; set; } - public string FolderName { get; set; } - public string Creator { get; set; } + public string? FolderName { get; set; } + public string? Creator { get; set; } public DateTime LastModifiedTime { get; set; } public List Beatmaps { get; private set; } = new List(); diff --git a/frontend/public/default-bg.png b/frontend/public/default-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..2c31f5a67c026cf01a1e7d11043ffaadb393823f GIT binary patch literal 3787 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 GE%85oCk|%- literal 0 HcmV?d00001 diff --git a/frontend/src/App.vue b/frontend/src/App.vue index 96f06cd..7ef6981 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -32,11 +32,24 @@ watch(route, async (to) => { }) +function loadColors() { + + document.documentElement.style.setProperty('--background-color', localStorage.getItem('bgColor') || '#1c1719'); + document.documentElement.style.setProperty('--action-color', localStorage.getItem('actionColor') || '#eab308'); + + document.documentElement.style.setProperty('--information-color', localStorage.getItem('infoColor') || '#ec4899'); + document.documentElement.style.setProperty('--border-color', localStorage.getItem('borderColor') || '#ec4899'); + + console.log(localStorage.getItem('bgColor')); +} + +loadColors(); + diff --git a/frontend/src/components/CollectionListItem.vue b/frontend/src/components/CollectionListItem.vue index 0afbaa6..0573115 100644 --- a/frontend/src/components/CollectionListItem.vue +++ b/frontend/src/components/CollectionListItem.vue @@ -5,10 +5,10 @@ import { useUserStore } from '@/stores/userStore'; import { useAudioStore } from '@/stores/audioStore'; const userStore = useUserStore(); const audioStore = useAudioStore(); -const props = defineProps<{ collection: CollectionPreview}>(); +const props = defineProps<{ collection: CollectionPreview }>(); -function hi(){ +function hi() { } @@ -16,11 +16,11 @@ function hi(){