Skip to content

Commit 6d64e5f

Browse files
authored
User data as cache (#1550)
For a single track name or artist name, validate wildcard by matching userData.
1 parent a71c6d0 commit 6d64e5f

File tree

1 file changed

+27
-1
lines changed

1 file changed

+27
-1
lines changed

ts/packages/agents/player/src/agent/playerHandlers.ts

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ import { PlayerActions } from "./playerSchema.js";
2929
import registerDebug from "debug";
3030
import { resolveMusicDeviceEntity } from "../devices.js";
3131
import { getUserDevices } from "../endpoints.js";
32-
import { getUserDataCompletions } from "../userData.js";
32+
import { addUserDataStrings, getUserDataCompletions } from "../userData.js";
3333

3434
const debugSpotify = registerDebug("typeagent:spotify");
3535

@@ -184,6 +184,18 @@ async function validateTrack(
184184
album: string | undefined,
185185
context: IClientContext,
186186
) {
187+
if (artists === undefined && album === undefined) {
188+
const data = context.userData?.data;
189+
if (data && data.tracks) {
190+
if (data.nameMap === undefined) {
191+
addUserDataStrings(data);
192+
}
193+
// if user data has exact match return true
194+
if (data.nameMap!.get(trackName.toLocaleLowerCase())) {
195+
return true;
196+
}
197+
}
198+
}
187199
const resolvedArtists = artists
188200
? await resolveArtists(artists, context)
189201
: [];
@@ -254,6 +266,20 @@ async function validateAlbum(
254266
}
255267

256268
async function validateArtist(artistName: string, context: IClientContext) {
269+
// if user data has exact match return true
270+
const userData = context.userData;
271+
if (userData && userData.data) {
272+
const artists = userData.data.artists;
273+
if (artists) {
274+
if (!userData.data.nameMap) {
275+
addUserDataStrings(userData.data);
276+
}
277+
if (userData.data.nameMap!.get(artistName.toLocaleLowerCase())) {
278+
return true;
279+
}
280+
}
281+
}
282+
257283
const data = await searchArtists(artistName, context);
258284

259285
if (data && data.artists && data.artists.items.length > 0) {

0 commit comments

Comments
 (0)