Skip to content

Commit ba3566c

Browse files
committed
1 parent 9e29614 commit ba3566c

File tree

1 file changed

+12
-5
lines changed

1 file changed

+12
-5
lines changed

src/main.ts

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,19 @@ import { MarkdownView, Notice, parseYaml, Plugin, stringifyYaml, TFile, TFolder
22
import { getDefaultSettings, MediaDbPluginSettings, MediaDbSettingTab } from './settings/Settings';
33
import { APIManager } from './api/APIManager';
44
import { MediaTypeModel } from './models/MediaTypeModel';
5-
import { CreateNoteOptions, dateTimeToString, markdownTable, replaceIllegalFileNameCharactersInString } from './utils/Utils';
5+
import { CreateNoteOptions, dateTimeToString, markdownTable, replaceIllegalFileNameCharactersInString, unCamelCase } from './utils/Utils';
66
import { OMDbAPI } from './api/apis/OMDbAPI';
77
import { MALAPI } from './api/apis/MALAPI';
88
import { WikipediaAPI } from './api/apis/WikipediaAPI';
99
import { MusicBrainzAPI } from './api/apis/MusicBrainzAPI';
10-
import { MediaTypeManager } from './utils/MediaTypeManager';
10+
import { MEDIA_TYPES, MediaTypeManager } from './utils/MediaTypeManager';
1111
import { SteamAPI } from './api/apis/SteamAPI';
1212
import { BoardGameGeekAPI } from './api/apis/BoardGameGeekAPI';
1313
import { PropertyMapper } from './settings/PropertyMapper';
1414
import { YAMLConverter } from './utils/YAMLConverter';
1515
import { MediaDbFolderImportModal } from './modals/MediaDbFolderImportModal';
1616
import { PropertyMapping, PropertyMappingModel } from './settings/PropertyMapping';
17-
import { ModalHelper, ModalResultCode } from './utils/ModalHelper';
17+
import { ModalHelper, ModalResultCode, SearchModalOptions } from './utils/ModalHelper';
1818

1919
export default class MediaDbPlugin extends Plugin {
2020
settings: MediaDbPluginSettings;
@@ -68,6 +68,13 @@ export default class MediaDbPlugin extends Plugin {
6868
name: 'Create Media DB entry',
6969
callback: () => this.createEntryWithSearchModal(),
7070
});
71+
for (const mediaType of MEDIA_TYPES) {
72+
this.addCommand({
73+
id: `open-media-db-search-modal-with-${mediaType}`,
74+
name: `Create Media DB entry (${unCamelCase(mediaType)})`,
75+
callback: () => this.createEntryWithSearchModal({ preselectedTypes: [mediaType] }),
76+
});
77+
}
7178
this.addCommand({
7279
id: 'open-media-db-advanced-search-modal',
7380
name: 'Create Media DB entry (advanced search)',
@@ -155,9 +162,9 @@ export default class MediaDbPlugin extends Plugin {
155162
}
156163
}
157164

158-
async createEntryWithSearchModal() {
165+
async createEntryWithSearchModal(searchModalOptions?: SearchModalOptions) {
159166
let types: string[] = [];
160-
let apiSearchResults: MediaTypeModel[] = await this.modalHelper.openSearchModal({}, async searchModalData => {
167+
let apiSearchResults: MediaTypeModel[] = await this.modalHelper.openSearchModal(searchModalOptions ?? {}, async searchModalData => {
161168
types = searchModalData.types;
162169
const apis = this.apiManager.apis.filter(x => x.hasTypeOverlap(searchModalData.types)).map(x => x.apiName);
163170
return await this.apiManager.query(searchModalData.query, apis);

0 commit comments

Comments
 (0)