mirror of
https://github.com/JuLi0n21/pwa-player.git
synced 2026-04-19 23:40:05 +00:00
localstorage upgrage, custome colors, fixed broken files (encoding issues)
This commit is contained in:
@@ -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();
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
BIN
backend/default-bg.png
Normal file
BIN
backend/default-bg.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.7 KiB |
@@ -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+,""(?<image_filename>[^""]+\.[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";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,4 +12,10 @@
|
||||
<PackageReference Include="System.Drawing.Common" Version="8.0.8" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Update="default-bg.png">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
@@ -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<Song> songs { get; set;}
|
||||
public List<Song> songs { get; set;} = new List<Song>();
|
||||
|
||||
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<Beatmap> Beatmaps { get; private set; } = new List<Beatmap>();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user