From 39017bfa82b67d735fe97087e1e99ef9c6b4ba3c Mon Sep 17 00:00:00 2001 From: Conor Meyers Date: Tue, 23 Aug 2022 15:51:29 +0100 Subject: [PATCH] Add more detail to search results Adds getSummary to the MediaTypeModel.ts abstract class, which allows individual models to give more detail to better allow people to pick the right result --- src/modals/MediaDbSearchResultModal.ts | 2 +- src/models/GameModel.ts | 4 ++++ src/models/MediaTypeModel.ts | 3 +++ src/models/MovieModel.ts | 3 +++ src/models/MusicReleaseModel.ts | 6 ++++++ src/models/SeriesModel.ts | 3 +++ src/models/WikiModel.ts | 3 +++ 7 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/modals/MediaDbSearchResultModal.ts b/src/modals/MediaDbSearchResultModal.ts index ec7015a..eeda417 100644 --- a/src/modals/MediaDbSearchResultModal.ts +++ b/src/modals/MediaDbSearchResultModal.ts @@ -29,7 +29,7 @@ export class MediaDbSearchResultModal extends SelectModal { // Renders each suggestion item. renderElement(item: MediaTypeModel, el: HTMLElement) { el.createEl('div', {text: this.plugin.mediaTypeManager.getFileName(item)}); - el.createEl('small', {text: `${item.englishTitle}\n`}); + el.createEl('small', {text: `${item.getSummary()}\n`}); el.createEl('small', {text: `${item.type.toUpperCase() + (item.subType ? ` (${item.subType})` : '')} from ${item.dataSource}`}); } diff --git a/src/models/GameModel.ts b/src/models/GameModel.ts index d19dc2e..2d2e68c 100644 --- a/src/models/GameModel.ts +++ b/src/models/GameModel.ts @@ -42,4 +42,8 @@ export class GameModel extends MediaTypeModel { return MediaType.Game; } + getSummary(): string { + return this.englishTitle + ' (' + this.year + ')'; + } + } diff --git a/src/models/MediaTypeModel.ts b/src/models/MediaTypeModel.ts index d82216d..f1c4bd2 100644 --- a/src/models/MediaTypeModel.ts +++ b/src/models/MediaTypeModel.ts @@ -14,6 +14,9 @@ export abstract class MediaTypeModel { abstract getMediaType(): MediaType; + //a string that contains enough info to disambiguate from similar media + abstract getSummary(): string; + abstract getTags(): string[]; toMetaDataObject(): object { diff --git a/src/models/MovieModel.ts b/src/models/MovieModel.ts index a761908..4300801 100644 --- a/src/models/MovieModel.ts +++ b/src/models/MovieModel.ts @@ -44,4 +44,7 @@ export class MovieModel extends MediaTypeModel { return MediaType.Movie; } + getSummary(): string { + return this.englishTitle + ' (' + this.year + ')'; + } } diff --git a/src/models/MusicReleaseModel.ts b/src/models/MusicReleaseModel.ts index 4094927..9aa03bf 100644 --- a/src/models/MusicReleaseModel.ts +++ b/src/models/MusicReleaseModel.ts @@ -37,4 +37,10 @@ export class MusicReleaseModel extends MediaTypeModel { return MediaType.MusicRelease; } + getSummary(): string { + var summary = this.title + ' (' + this.year + ')'; + if(this.artists.length > 0) + summary += ' - ' + this.artists.join(', ') + return summary; + } } diff --git a/src/models/SeriesModel.ts b/src/models/SeriesModel.ts index 5e49a59..43fcfae 100644 --- a/src/models/SeriesModel.ts +++ b/src/models/SeriesModel.ts @@ -47,4 +47,7 @@ export class SeriesModel extends MediaTypeModel { return MediaType.Series; } + getSummary(): string { + return this.title + ' (' + this.year + ')'; + } } diff --git a/src/models/WikiModel.ts b/src/models/WikiModel.ts index 64b2ab5..3121873 100644 --- a/src/models/WikiModel.ts +++ b/src/models/WikiModel.ts @@ -43,4 +43,7 @@ export class WikiModel extends MediaTypeModel { return copy; } + getSummary(): string { + return this.title; + } }