diff --git a/apps/api/src/xrpc/app/rocksky/song/matchSong.ts b/apps/api/src/xrpc/app/rocksky/song/matchSong.ts index bf9d1836..e163f1f8 100644 --- a/apps/api/src/xrpc/app/rocksky/song/matchSong.ts +++ b/apps/api/src/xrpc/app/rocksky/song/matchSong.ts @@ -1,5 +1,5 @@ import type { Context } from "context"; -import { and, count, eq, or } from "drizzle-orm"; +import { and, count, eq, or, sql } from "drizzle-orm"; import { Effect, pipe } from "effect"; import type { Server } from "lexicon"; import type { SongViewDetailed } from "lexicon/types/app/rocksky/song/defs"; @@ -66,12 +66,12 @@ const retrieve = ({ params, ctx }: { params: QueryParams; ctx: Context }) => { .where( or( and( - eq(tables.tracks.title, params.title), - eq(tables.tracks.artist, params.artist), + sql`LOWER(${tables.tracks.title}) = LOWER(${params.title})`, + sql`LOWER(${tables.tracks.artist}) = LOWER(${params.artist})`, ), and( - eq(tables.tracks.title, params.title), - eq(tables.tracks.albumArtist, params.artist), + sql`LOWER(${tables.tracks.title}) = LOWER(${params.title})`, + sql`LOWER(${tables.tracks.albumArtist}) = LOWER(${params.artist})`, ), ), ) diff --git a/apps/cli/src/scrobble.ts b/apps/cli/src/scrobble.ts index a3cc7d38..a5bc13c3 100644 --- a/apps/cli/src/scrobble.ts +++ b/apps/cli/src/scrobble.ts @@ -68,16 +68,16 @@ export async function publishScrobble( .where( or( and( - eq(schema.tracks.title, track.title), - eq(schema.tracks.artist, track.artist), + sql`LOWER(${schema.tracks.title}) = LOWER(${track.title})`, + sql`LOWER(${schema.tracks.artist}) = LOWER(${track.artist})`, ), and( - eq(schema.tracks.title, track.title), - eq(schema.tracks.albumArtist, track.artist), + sql`LOWER(${schema.tracks.title}) = LOWER(${track.title})`, + sql`LOWER(${schema.tracks.albumArtist}) = LOWER(${track.artist})`, ), and( - eq(schema.tracks.title, track.title), - eq(schema.tracks.albumArtist, track.albumArtist), + sql`LOWER(${schema.tracks.title}) = LOWER(${track.title})`, + sql`LOWER(${schema.tracks.albumArtist}) = LOWER(${track.albumArtist})`, ), ), ) @@ -94,8 +94,8 @@ export async function publishScrobble( .from(schema.artists) .where( or( - eq(schema.artists.name, track.artist), - eq(schema.artists.name, track.albumArtist), + sql`LOWER(${schema.artists.name}) = LOWER(${track.artist})`, + sql`LOWER(${schema.artists.name}) = LOWER(${track.albumArtist})`, ), ) .limit(1) @@ -111,8 +111,8 @@ export async function publishScrobble( .from(schema.albums) .where( and( - eq(schema.albums.title, track.album), - eq(schema.albums.artist, track.albumArtist), + sql`LOWER(${schema.albums.title}) = LOWER(${track.album})`, + sql`LOWER(${schema.albums.artist}) = LOWER(${track.albumArtist})`, ), ) .limit(1) @@ -146,8 +146,8 @@ async function getRecentScrobble( .where( and( eq(schema.users.did, did), - eq(schema.tracks.title, track.title), - eq(schema.tracks.artist, track.artist), + sql`LOWER(${schema.tracks.title}) = LOWER(${track.title})`, + sql`LOWER(${schema.tracks.artist}) = LOWER(${track.artist})`, gte( schema.scrobbles.timestamp, scrobbleTime.subtract(60, "seconds").toDate(),