diff --git a/src/main/kotlin/net/taehui/twilight/system/DB.kt b/src/main/kotlin/net/taehui/twilight/system/DB.kt index 6f3b51a..88c6ad4 100644 --- a/src/main/kotlin/net/taehui/twilight/system/DB.kt +++ b/src/main/kotlin/net/taehui/twilight/system/DB.kt @@ -2669,7 +2669,7 @@ } } - fun getAvatar(wantAvatarID: String, wantAvatarName: String): CompletableFuture { + fun getAvatar(want: String): CompletableFuture { return logValueFuture { var avatarID = "" var avatarName = "" @@ -2699,7 +2699,7 @@ val wantAvatars = mutableListOf() pool.connection.use { - if (wantAvatarID.isEmpty()) { + if (want.startsWith("!")) { it.prepareStatement( """ SELECT Avatar_ID, Avatar_Name, Avatar_Intro @@ -2707,7 +2707,7 @@ WHERE Avatar_Name LIKE ? """.trimIndent() ).use { dbStatement -> - dbStatement.setString(1, "%$wantAvatarName%") + dbStatement.setString(1, "%${Utility.getDefaultAvatarID(want.substring(1))}%") dbStatement.executeQuery().use { rows -> while (rows.next()) { wantAvatars.add(object { @@ -2731,7 +2731,7 @@ WHERE Avatar_ID = ? """.trimIndent() ).use { dbStatement -> - dbStatement.setString(1, wantAvatarID) + dbStatement.setString(1, want) dbStatement.executeQuery().use { rows -> if (rows.next()) { avatarID = rows.getString("Avatar_ID") diff --git a/src/main/kotlin/net/taehui/twilight/www/WwwAvatar.kt b/src/main/kotlin/net/taehui/twilight/www/WwwAvatar.kt index c70abe5..c80f3ca 100644 --- a/src/main/kotlin/net/taehui/twilight/www/WwwAvatar.kt +++ b/src/main/kotlin/net/taehui/twilight/www/WwwAvatar.kt @@ -183,14 +183,19 @@ } "/qwilight/www/avatar" -> { - DB.getAvatar(Utility.getDefaultAvatarID(avatarID), params.getOrDefault("avatarName", "")) - .thenAccept { - if (it != null) { - send(ctx, it) - } else { - send204(ctx) + val want = params.getOrDefault("want", "") + if (want.isEmpty()) { + send400(ctx) + }else { + DB.getAvatar(want) + .thenAccept { + if (it != null) { + send(ctx, it) + } else { + send204(ctx) + } } - } + } } "/qwilight/www/avatar/favorites/4K" -> DB.getAvatarFavorites(