@@ -2,19 +2,19 @@ import { MarkdownView, Notice, parseYaml, Plugin, stringifyYaml, TFile, TFolder
22import { getDefaultSettings , MediaDbPluginSettings , MediaDbSettingTab } from './settings/Settings' ;
33import { APIManager } from './api/APIManager' ;
44import { MediaTypeModel } from './models/MediaTypeModel' ;
5- import { CreateNoteOptions , dateTimeToString , markdownTable , replaceIllegalFileNameCharactersInString } from './utils/Utils' ;
5+ import { CreateNoteOptions , dateTimeToString , markdownTable , replaceIllegalFileNameCharactersInString , unCamelCase } from './utils/Utils' ;
66import { OMDbAPI } from './api/apis/OMDbAPI' ;
77import { MALAPI } from './api/apis/MALAPI' ;
88import { WikipediaAPI } from './api/apis/WikipediaAPI' ;
99import { MusicBrainzAPI } from './api/apis/MusicBrainzAPI' ;
10- import { MediaTypeManager } from './utils/MediaTypeManager' ;
10+ import { MEDIA_TYPES , MediaTypeManager } from './utils/MediaTypeManager' ;
1111import { SteamAPI } from './api/apis/SteamAPI' ;
1212import { BoardGameGeekAPI } from './api/apis/BoardGameGeekAPI' ;
1313import { PropertyMapper } from './settings/PropertyMapper' ;
1414import { YAMLConverter } from './utils/YAMLConverter' ;
1515import { MediaDbFolderImportModal } from './modals/MediaDbFolderImportModal' ;
1616import { PropertyMapping , PropertyMappingModel } from './settings/PropertyMapping' ;
17- import { ModalHelper , ModalResultCode } from './utils/ModalHelper' ;
17+ import { ModalHelper , ModalResultCode , SearchModalOptions } from './utils/ModalHelper' ;
1818
1919export 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