diff --git a/backend/database/sql/queries/artists.sql b/backend/database/sql/queries/artists.sql index caf7af0..942b910 100644 --- a/backend/database/sql/queries/artists.sql +++ b/backend/database/sql/queries/artists.sql @@ -32,7 +32,7 @@ SELECT * FROM artists ORDER BY name; -- name: GetAlbumArtists :many -SELECT DISTINCT a.id, a.name +SELECT DISTINCT a.id, a.name, a.mbid FROM artists a JOIN artist_credit_artist aca ON aca.artist_id = a.id JOIN artist_credit ac ON ac.id = aca.credit_id @@ -40,7 +40,7 @@ JOIN release_groups rg ON rg.album_artist_credit_id = ac.id ORDER BY a.name; -- name: GetAlbumArtistsByLibrary :many -SELECT DISTINCT a.id, a.name +SELECT DISTINCT a.id, a.name, a.mbid FROM artists a JOIN artist_credit_artist aca ON aca.artist_id = a.id JOIN artist_credit ac ON ac.id = aca.credit_id diff --git a/backend/database/sql/queries/release_groups.sql b/backend/database/sql/queries/release_groups.sql index 4c0c059..7110dd0 100644 --- a/backend/database/sql/queries/release_groups.sql +++ b/backend/database/sql/queries/release_groups.sql @@ -50,6 +50,7 @@ SELECT rg.id, rg.name, rg.year, + rg.mbid, COALESCE(ac.text, fallback_ac.text, '') as artist_name, COALESCE(ca.file_path, '') as cover_art_path FROM release_groups rg @@ -69,6 +70,7 @@ SELECT rg.id, rg.name, rg.year, + rg.mbid, COALESCE(ac.text, fallback_ac.text, '') as artist_name, COALESCE(ca.file_path, '') as cover_art_path FROM release_groups rg diff --git a/backend/database/sql/schemas/artists.sql b/backend/database/sql/schemas/artists.sql index 93bcb09..09d2cf7 100644 --- a/backend/database/sql/schemas/artists.sql +++ b/backend/database/sql/schemas/artists.sql @@ -1,4 +1,5 @@ CREATE TABLE IF NOT EXISTS artists ( id INTEGER PRIMARY KEY, - name TEXT NOT NULL UNIQUE + name TEXT NOT NULL UNIQUE, + mbid TEXT ); diff --git a/backend/database/sql/schemas/release_groups.sql b/backend/database/sql/schemas/release_groups.sql index 78f0e8e..f2339ba 100644 --- a/backend/database/sql/schemas/release_groups.sql +++ b/backend/database/sql/schemas/release_groups.sql @@ -6,6 +6,7 @@ CREATE TABLE IF NOT EXISTS release_groups ( year INTEGER, total_tracks INTEGER, total_discs INTEGER, + mbid TEXT, FOREIGN KEY(cover_art_id) REFERENCES cover_art(id), FOREIGN KEY(album_artist_credit_id) REFERENCES artist_credit(id), UNIQUE(name, album_artist_credit_id) diff --git a/backend/database/sql/sqlcgen/artists.sql.go b/backend/database/sql/sqlcgen/artists.sql.go index b1d563f..e71f0d1 100644 --- a/backend/database/sql/sqlcgen/artists.sql.go +++ b/backend/database/sql/sqlcgen/artists.sql.go @@ -11,13 +11,13 @@ import ( const createArtist = `-- name: CreateArtist :one INSERT INTO artists (name) VALUES (?) -RETURNING id, name +RETURNING id, name, mbid ` func (q *Queries) CreateArtist(ctx context.Context, name string) (Artist, error) { row := q.db.QueryRowContext(ctx, createArtist, name) var i Artist - err := row.Scan(&i.ID, &i.Name) + err := row.Scan(&i.ID, &i.Name, &i.Mbid) return i, err } @@ -41,7 +41,7 @@ func (q *Queries) DeleteArtist(ctx context.Context, id int64) error { } const getAlbumArtists = `-- name: GetAlbumArtists :many -SELECT DISTINCT a.id, a.name +SELECT DISTINCT a.id, a.name, a.mbid FROM artists a JOIN artist_credit_artist aca ON aca.artist_id = a.id JOIN artist_credit ac ON ac.id = aca.credit_id @@ -58,7 +58,7 @@ func (q *Queries) GetAlbumArtists(ctx context.Context) ([]Artist, error) { var items []Artist for rows.Next() { var i Artist - if err := rows.Scan(&i.ID, &i.Name); err != nil { + if err := rows.Scan(&i.ID, &i.Name, &i.Mbid); err != nil { return nil, err } items = append(items, i) @@ -73,7 +73,7 @@ func (q *Queries) GetAlbumArtists(ctx context.Context) ([]Artist, error) { } const getAlbumArtistsByLibrary = `-- name: GetAlbumArtistsByLibrary :many -SELECT DISTINCT a.id, a.name +SELECT DISTINCT a.id, a.name, a.mbid FROM artists a JOIN artist_credit_artist aca ON aca.artist_id = a.id JOIN artist_credit ac ON ac.id = aca.credit_id @@ -100,7 +100,7 @@ func (q *Queries) GetAlbumArtistsByLibrary(ctx context.Context, libraryID int64) var items []Artist for rows.Next() { var i Artist - if err := rows.Scan(&i.ID, &i.Name); err != nil { + if err := rows.Scan(&i.ID, &i.Name, &i.Mbid); err != nil { return nil, err } items = append(items, i) @@ -115,7 +115,7 @@ func (q *Queries) GetAlbumArtistsByLibrary(ctx context.Context, libraryID int64) } const getAllArtists = `-- name: GetAllArtists :many -SELECT id, name FROM artists +SELECT id, name, mbid FROM artists ORDER BY name ` @@ -128,7 +128,7 @@ func (q *Queries) GetAllArtists(ctx context.Context) ([]Artist, error) { var items []Artist for rows.Next() { var i Artist - if err := rows.Scan(&i.ID, &i.Name); err != nil { + if err := rows.Scan(&i.ID, &i.Name, &i.Mbid); err != nil { return nil, err } items = append(items, i) @@ -143,26 +143,26 @@ func (q *Queries) GetAllArtists(ctx context.Context) ([]Artist, error) { } const getArtist = `-- name: GetArtist :one -SELECT id, name FROM artists +SELECT id, name, mbid FROM artists WHERE id = ? LIMIT 1 ` func (q *Queries) GetArtist(ctx context.Context, id int64) (Artist, error) { row := q.db.QueryRowContext(ctx, getArtist, id) var i Artist - err := row.Scan(&i.ID, &i.Name) + err := row.Scan(&i.ID, &i.Name, &i.Mbid) return i, err } const getArtistByName = `-- name: GetArtistByName :one -SELECT id, name FROM artists +SELECT id, name, mbid FROM artists WHERE name = ? LIMIT 1 ` func (q *Queries) GetArtistByName(ctx context.Context, name string) (Artist, error) { row := q.db.QueryRowContext(ctx, getArtistByName, name) var i Artist - err := row.Scan(&i.ID, &i.Name) + err := row.Scan(&i.ID, &i.Name, &i.Mbid) return i, err } @@ -185,12 +185,12 @@ func (q *Queries) UpdateArtist(ctx context.Context, arg UpdateArtistParams) erro const upsertArtist = `-- name: UpsertArtist :one INSERT INTO artists (name) VALUES (?) ON CONFLICT(name) DO UPDATE SET name = excluded.name -RETURNING id, name +RETURNING id, name, mbid ` func (q *Queries) UpsertArtist(ctx context.Context, name string) (Artist, error) { row := q.db.QueryRowContext(ctx, upsertArtist, name) var i Artist - err := row.Scan(&i.ID, &i.Name) + err := row.Scan(&i.ID, &i.Name, &i.Mbid) return i, err } diff --git a/backend/database/sql/sqlcgen/models.go b/backend/database/sql/sqlcgen/models.go index 9df7e55..4c1183e 100644 --- a/backend/database/sql/sqlcgen/models.go +++ b/backend/database/sql/sqlcgen/models.go @@ -12,6 +12,7 @@ import ( type Artist struct { ID int64 Name string + Mbid sql.NullString } type ArtistCredit struct { @@ -154,6 +155,7 @@ type ReleaseGroup struct { Year sql.NullInt64 TotalTracks sql.NullInt64 TotalDiscs sql.NullInt64 + Mbid sql.NullString } type ReleaseGroupRecording struct { diff --git a/backend/database/sql/sqlcgen/release_groups.sql.go b/backend/database/sql/sqlcgen/release_groups.sql.go index df1c187..362353b 100644 --- a/backend/database/sql/sqlcgen/release_groups.sql.go +++ b/backend/database/sql/sqlcgen/release_groups.sql.go @@ -23,7 +23,7 @@ func (q *Queries) CountReleaseGroupRecordings(ctx context.Context, releaseGroupI const createReleaseGroup = `-- name: CreateReleaseGroup :one INSERT INTO release_groups (name) VALUES (?) -RETURNING id, name, cover_art_id, album_artist_credit_id, year, total_tracks, total_discs +RETURNING id, name, cover_art_id, album_artist_credit_id, year, total_tracks, total_discs, mbid ` func (q *Queries) CreateReleaseGroup(ctx context.Context, name string) (ReleaseGroup, error) { @@ -37,6 +37,7 @@ func (q *Queries) CreateReleaseGroup(ctx context.Context, name string) (ReleaseG &i.Year, &i.TotalTracks, &i.TotalDiscs, + &i.Mbid, ) return i, err } @@ -45,7 +46,7 @@ const createReleaseGroupFull = `-- name: CreateReleaseGroupFull :one INSERT INTO release_groups ( name, cover_art_id, album_artist_credit_id, year, total_tracks, total_discs ) VALUES (?, ?, ?, ?, ?, ?) -RETURNING id, name, cover_art_id, album_artist_credit_id, year, total_tracks, total_discs +RETURNING id, name, cover_art_id, album_artist_credit_id, year, total_tracks, total_discs, mbid ` type CreateReleaseGroupFullParams struct { @@ -75,6 +76,7 @@ func (q *Queries) CreateReleaseGroupFull(ctx context.Context, arg CreateReleaseG &i.Year, &i.TotalTracks, &i.TotalDiscs, + &i.Mbid, ) return i, err } @@ -233,6 +235,7 @@ SELECT rg.id, rg.name, rg.year, + rg.mbid, COALESCE(ac.text, fallback_ac.text, '') as artist_name, COALESCE(ca.file_path, '') as cover_art_path FROM release_groups rg @@ -252,6 +255,7 @@ type GetAllAlbumsWithDetailsRow struct { ID int64 Name string Year sql.NullInt64 + Mbid sql.NullString ArtistName string CoverArtPath string } @@ -269,6 +273,7 @@ func (q *Queries) GetAllAlbumsWithDetails(ctx context.Context) ([]GetAllAlbumsWi &i.ID, &i.Name, &i.Year, + &i.Mbid, &i.ArtistName, &i.CoverArtPath, ); err != nil { @@ -290,6 +295,7 @@ SELECT rg.id, rg.name, rg.year, + rg.mbid, COALESCE(ac.text, fallback_ac.text, '') as artist_name, COALESCE(ca.file_path, '') as cover_art_path FROM release_groups rg @@ -316,6 +322,7 @@ type GetAllAlbumsWithDetailsByLibraryRow struct { ID int64 Name string Year sql.NullInt64 + Mbid sql.NullString ArtistName string CoverArtPath string } @@ -333,6 +340,7 @@ func (q *Queries) GetAllAlbumsWithDetailsByLibrary(ctx context.Context, libraryI &i.ID, &i.Name, &i.Year, + &i.Mbid, &i.ArtistName, &i.CoverArtPath, ); err != nil { @@ -350,7 +358,7 @@ func (q *Queries) GetAllAlbumsWithDetailsByLibrary(ctx context.Context, libraryI } const getAllReleaseGroups = `-- name: GetAllReleaseGroups :many -SELECT id, name, cover_art_id, album_artist_credit_id, year, total_tracks, total_discs FROM release_groups +SELECT id, name, cover_art_id, album_artist_credit_id, year, total_tracks, total_discs, mbid FROM release_groups ORDER BY name ` @@ -371,6 +379,7 @@ func (q *Queries) GetAllReleaseGroups(ctx context.Context) ([]ReleaseGroup, erro &i.Year, &i.TotalTracks, &i.TotalDiscs, + &i.Mbid, ); err != nil { return nil, err } @@ -386,7 +395,7 @@ func (q *Queries) GetAllReleaseGroups(ctx context.Context) ([]ReleaseGroup, erro } const getReleaseGroup = `-- name: GetReleaseGroup :one -SELECT id, name, cover_art_id, album_artist_credit_id, year, total_tracks, total_discs FROM release_groups +SELECT id, name, cover_art_id, album_artist_credit_id, year, total_tracks, total_discs, mbid FROM release_groups WHERE id = ? LIMIT 1 ` @@ -401,12 +410,13 @@ func (q *Queries) GetReleaseGroup(ctx context.Context, id int64) (ReleaseGroup, &i.Year, &i.TotalTracks, &i.TotalDiscs, + &i.Mbid, ) return i, err } const getReleaseGroupByNameAndArtist = `-- name: GetReleaseGroupByNameAndArtist :one -SELECT id, name, cover_art_id, album_artist_credit_id, year, total_tracks, total_discs FROM release_groups +SELECT id, name, cover_art_id, album_artist_credit_id, year, total_tracks, total_discs, mbid FROM release_groups WHERE name = ? AND album_artist_credit_id = ? LIMIT 1 ` @@ -426,6 +436,7 @@ func (q *Queries) GetReleaseGroupByNameAndArtist(ctx context.Context, arg GetRel &i.Year, &i.TotalTracks, &i.TotalDiscs, + &i.Mbid, ) return i, err } @@ -468,7 +479,7 @@ VALUES (?, ?, ?) ON CONFLICT(name, album_artist_credit_id) DO UPDATE SET album_artist_credit_id = COALESCE(excluded.album_artist_credit_id, release_groups.album_artist_credit_id), year = COALESCE(excluded.year, release_groups.year) -RETURNING id, name, cover_art_id, album_artist_credit_id, year, total_tracks, total_discs +RETURNING id, name, cover_art_id, album_artist_credit_id, year, total_tracks, total_discs, mbid ` type UpsertReleaseGroupParams struct { @@ -488,6 +499,7 @@ func (q *Queries) UpsertReleaseGroup(ctx context.Context, arg UpsertReleaseGroup &i.Year, &i.TotalTracks, &i.TotalDiscs, + &i.Mbid, ) return i, err } diff --git a/backend/library/query.go b/backend/library/query.go index eb68924..0a3ef77 100644 --- a/backend/library/query.go +++ b/backend/library/query.go @@ -147,6 +147,7 @@ func (l *Library) GetTrackMBIDs(filePath string) TrackMBIDs { type Artist struct { ID int64 Name string + MBID string ImageSmall string ImageMedium string ImageLarge string @@ -157,6 +158,7 @@ type Album struct { ID int64 Name string ArtistName string + MBID string CoverArtPath string CoverArtSmall string CoverArtMedium string @@ -331,6 +333,10 @@ func (l *Library) GetAllAlbums() ([]Album, error) { album.Year = row.Year.Int64 } + if row.Mbid.Valid { + album.MBID = row.Mbid.String + } + // Convert filesystem path to URL path for the asset handler. if row.CoverArtPath != "" { urls := coverart.ResolveURLs(row.CoverArtPath) @@ -366,10 +372,16 @@ func (l *Library) GetAllArtists() ([]Artist, error) { artists := make([]Artist, 0, len(rows)) for _, row := range rows { - artists = append(artists, Artist{ + a := Artist{ ID: row.ID, Name: row.Name, - }) + } + + if row.Mbid.Valid { + a.MBID = row.Mbid.String + } + + artists = append(artists, a) } // Resolve artist image URLs from the disk cache. @@ -663,6 +675,10 @@ func (l *Library) GetAllAlbumsByLibrary( album.Year = row.Year.Int64 } + if row.Mbid.Valid { + album.MBID = row.Mbid.String + } + if row.CoverArtPath != "" { urls := coverart.ResolveURLs(row.CoverArtPath) album.CoverArtPath = urls.Original @@ -706,10 +722,16 @@ func (l *Library) GetAllArtistsByLibrary( artists := make([]Artist, 0, len(rows)) for _, row := range rows { - artists = append(artists, Artist{ + a := Artist{ ID: row.ID, Name: row.Name, - }) + } + + if row.Mbid.Valid { + a.MBID = row.Mbid.String + } + + artists = append(artists, a) } l.resolveArtistImages(artists) diff --git a/frontend/src/components/explore-view/explore-view.ts b/frontend/src/components/explore-view/explore-view.ts index dff7307..833c361 100644 --- a/frontend/src/components/explore-view/explore-view.ts +++ b/frontend/src/components/explore-view/explore-view.ts @@ -10,6 +10,7 @@ import type { MBRecording, } from '@go/explore/Service'; import { libraryStore } from '../../store/library-store'; +import { exploreCache } from '../../store/explore-cache'; import '@awesome.me/webawesome/dist/components/icon/icon.js'; /* ── Constants ── */ @@ -525,6 +526,10 @@ export class ExploreView extends LitElement { const localResults = this.searchLibraryCache(query); if (localResults && (localResults.artists?.length || localResults.releaseGroups?.length)) { this.results = localResults; + exploreCache.populateFromSearch( + localResults.artists || [], + localResults.releaseGroups || [], + ); this.loadThumbnails(); this.loadArtistImages(); const elapsed = (performance.now() - startTime).toFixed(0); @@ -541,7 +546,8 @@ export class ExploreView extends LitElement { /** * Search the frontend library cache for matching artists and albums. - * Pure JS — no Go calls, guaranteed instant. + * Pure JS — no Go calls, guaranteed instant. Returns results with + * MBIDs and local cover art so they can navigate to explore pages. */ private searchLibraryCache(query: string): MBSearchResult | null { const q = query.toLowerCase(); @@ -552,14 +558,17 @@ export class ExploreView extends LitElement { for (const a of cachedArtists) { if (a.Name.toLowerCase().includes(q)) { artists.push({ - mbid: '', + mbid: a.MBID || '', name: a.Name, sortName: '', - type: 'Group', + type: '', country: '', disambiguation: '', score: 100, - } as MBArtist); + _imageSmall: a.ImageSmall || '', + _imageMedium: a.ImageMedium || '', + _inLibrary: true, + } as MBArtist & { _imageSmall: string; _imageMedium: string; _inLibrary: boolean }); if (artists.length >= 5) break; } } @@ -571,12 +580,14 @@ export class ExploreView extends LitElement { for (const a of cachedAlbums) { if (a.Name.toLowerCase().includes(q) || a.ArtistName.toLowerCase().includes(q)) { releaseGroups.push({ - mbid: '', + mbid: a.MBID || '', title: a.Name, primaryType: 'Album', artistCredit: a.ArtistName, firstReleaseDate: a.Year ? String(a.Year) : '', - } as MBReleaseGroup); + _coverArt: a.CoverArtMedium || a.CoverArtSmall || '', + _inLibrary: true, + } as MBReleaseGroup & { _coverArt: string; _inLibrary: boolean }); if (releaseGroups.length >= 5) break; } } @@ -589,6 +600,61 @@ export class ExploreView extends LitElement { return { artists, releaseGroups, recordings: [] } as MBSearchResult; } + /** + * Merge full search results with library data: library entries + * take priority (local art, "In Library" badge). MB-only results + * are appended after library matches. + */ + private mergeWithLibrary(result: MBSearchResult): MBSearchResult { + const cachedArtists = libraryStore.cachedArtists; + const cachedAlbums = libraryStore.cachedAlbums; + + // Build MBID→library lookups. + const libArtistsByMBID = new Map(); + const libArtistsByName = new Map(); + if (cachedArtists) { + for (const a of cachedArtists) { + if (a.MBID) libArtistsByMBID.set(a.MBID, a); + libArtistsByName.set(a.Name.toLowerCase(), a); + } + } + + const libAlbumsByMBID = new Map(); + if (cachedAlbums) { + for (const a of cachedAlbums) { + if (a.MBID) libAlbumsByMBID.set(a.MBID, a); + } + } + + // Enrich artists: if MB result matches a library artist, add local images. + if (result.artists) { + for (let i = 0; i < result.artists.length; i++) { + const a = result.artists[i]; + const lib = (a.mbid && libArtistsByMBID.get(a.mbid)) || + libArtistsByName.get(a.name.toLowerCase()); + if (lib) { + (a as any)._imageSmall = lib.ImageSmall || ''; + (a as any)._imageMedium = lib.ImageMedium || ''; + (a as any)._inLibrary = true; + } + } + } + + // Enrich release groups: if MB result matches a library album, use local art. + if (result.releaseGroups) { + for (let i = 0; i < result.releaseGroups.length; i++) { + const rg = result.releaseGroups[i]; + const lib = rg.mbid ? libAlbumsByMBID.get(rg.mbid) : undefined; + if (lib) { + (rg as any)._coverArt = lib.CoverArtMedium || lib.CoverArtSmall || ''; + (rg as any)._inLibrary = true; + } + } + } + + return result; + } + private async executeFullSearch(version: number, query: string, startTime: number) { try { const result = await Search(query); @@ -601,7 +667,11 @@ export class ExploreView extends LitElement { return; } - this.results = result; + this.results = this.mergeWithLibrary(result); + exploreCache.populateFromSearch( + this.results.artists || [], + this.results.releaseGroups || [], + ); this.loadThumbnails(); this.loadArtistImages(); this.checkLibrary(); diff --git a/frontend/src/store/explore-cache.ts b/frontend/src/store/explore-cache.ts new file mode 100644 index 0000000..b5d5c3a --- /dev/null +++ b/frontend/src/store/explore-cache.ts @@ -0,0 +1,107 @@ +/** + * ExploreCache — a simple in-memory cache for explore data that + * persists across page navigations within a session. Populated by + * search results and consumed by detail pages to avoid redundant + * API calls. + * + * Data flows: + * search results → cache artist images, album art, release groups + * artist detail page → check cache before API calls + * album detail page → check cache before API calls + */ + +import type { MBReleaseGroup, LBTopRecording } from '@go/explore/Service'; + +/** Cached artist data from search results. */ +export interface CachedArtist { + mbid: string; + name: string; + imageURL?: string; // resolved artist image + imageSmall?: string; // library small image + imageMedium?: string; // library medium image +} + +/** Cached album data from search results. */ +export interface CachedAlbum { + mbid: string; + title: string; + artistName: string; + coverArt?: string; // local cover art URL + year?: string; +} + +class ExploreCacheStore { + private artists = new Map(); + private albums = new Map(); + private artistAlbums = new Map(); + private artistTopTracks = new Map(); + + // -- Artists -- + + setArtist(mbid: string, data: CachedArtist) { + if (mbid) this.artists.set(mbid, data); + } + + getArtist(mbid: string): CachedArtist | undefined { + return this.artists.get(mbid); + } + + // -- Albums -- + + setAlbum(mbid: string, data: CachedAlbum) { + if (mbid) this.albums.set(mbid, data); + } + + getAlbum(mbid: string): CachedAlbum | undefined { + return this.albums.get(mbid); + } + + // -- Artist → Albums (release groups) -- + + setArtistAlbums(artistMBID: string, albums: MBReleaseGroup[]) { + if (artistMBID) this.artistAlbums.set(artistMBID, albums); + } + + getArtistAlbums(artistMBID: string): MBReleaseGroup[] | undefined { + return this.artistAlbums.get(artistMBID); + } + + // -- Artist → Top tracks -- + + setArtistTopTracks(artistMBID: string, tracks: LBTopRecording[]) { + if (artistMBID) this.artistTopTracks.set(artistMBID, tracks); + } + + getArtistTopTracks(artistMBID: string): LBTopRecording[] | undefined { + return this.artistTopTracks.get(artistMBID); + } + + // -- Bulk populate from search results -- + + populateFromSearch(artists: any[], releaseGroups: any[]) { + for (const a of artists) { + if (a.mbid) { + this.setArtist(a.mbid, { + mbid: a.mbid, + name: a.name, + imageSmall: a._imageSmall, + imageMedium: a._imageMedium, + }); + } + } + + for (const rg of releaseGroups) { + if (rg.mbid) { + this.setAlbum(rg.mbid, { + mbid: rg.mbid, + title: rg.title, + artistName: rg.artistCredit || '', + coverArt: rg._coverArt, + year: rg.firstReleaseDate, + }); + } + } + } +} + +export const exploreCache = new ExploreCacheStore(); diff --git a/frontend/wailsjs/go/explore/Service.d.ts b/frontend/wailsjs/go/explore/Service.d.ts index aa034a9..d73cc78 100755 --- a/frontend/wailsjs/go/explore/Service.d.ts +++ b/frontend/wailsjs/go/explore/Service.d.ts @@ -1,7 +1,6 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT import {explore} from '../models'; -import {http} from '../models'; import {context} from '../models'; export function BrowseReleaseGroups(arg1:string):Promise>; @@ -38,8 +37,6 @@ export function SearchArtists(arg1:string):Promise>; export function SearchLocal(arg1:string):Promise; -export function SearchLocalHandler():Promise; - export function SearchRecordings(arg1:string):Promise>; export function SearchReleaseGroups(arg1:string):Promise>; diff --git a/frontend/wailsjs/go/explore/Service.js b/frontend/wailsjs/go/explore/Service.js index d92f32c..bd9b699 100755 --- a/frontend/wailsjs/go/explore/Service.js +++ b/frontend/wailsjs/go/explore/Service.js @@ -70,10 +70,6 @@ export function SearchLocal(arg1) { return window['go']['explore']['Service']['SearchLocal'](arg1); } -export function SearchLocalHandler() { - return window['go']['explore']['Service']['SearchLocalHandler'](); -} - export function SearchRecordings(arg1) { return window['go']['explore']['Service']['SearchRecordings'](arg1); } diff --git a/frontend/wailsjs/go/models.ts b/frontend/wailsjs/go/models.ts index 8a50381..e19d69d 100755 --- a/frontend/wailsjs/go/models.ts +++ b/frontend/wailsjs/go/models.ts @@ -242,6 +242,7 @@ export namespace library { ID: number; Name: string; ArtistName: string; + MBID: string; CoverArtPath: string; CoverArtSmall: string; CoverArtMedium: string; @@ -257,6 +258,7 @@ export namespace library { this.ID = source["ID"]; this.Name = source["Name"]; this.ArtistName = source["ArtistName"]; + this.MBID = source["MBID"]; this.CoverArtPath = source["CoverArtPath"]; this.CoverArtSmall = source["CoverArtSmall"]; this.CoverArtMedium = source["CoverArtMedium"]; @@ -267,6 +269,7 @@ export namespace library { export class Artist { ID: number; Name: string; + MBID: string; ImageSmall: string; ImageMedium: string; ImageLarge: string; @@ -279,6 +282,7 @@ export namespace library { if ('string' === typeof source) source = JSON.parse(source); this.ID = source["ID"]; this.Name = source["Name"]; + this.MBID = source["MBID"]; this.ImageSmall = source["ImageSmall"]; this.ImageMedium = source["ImageMedium"]; this.ImageLarge = source["ImageLarge"];