@@ -2,18 +2,20 @@ import {Notice, Plugin, TFile} from 'obsidian';
22import { DEFAULT_SETTINGS , MediaDbPluginSettings , MediaDbSettingTab } from './settings/Settings' ;
33import { APIManager } from './api/APIManager' ;
44import { MediaTypeModel } from './models/MediaTypeModel' ;
5- import { replaceIllegalFileNameCharactersInString , replaceTags } from './utils/Utils' ;
5+ import { replaceIllegalFileNameCharactersInString } from './utils/Utils' ;
66import { OMDbAPI } from './api/apis/OMDbAPI' ;
77import { MediaDbAdvancedSearchModal } from './modals/MediaDbAdvancedSearchModal' ;
88import { MediaDbSearchResultModal } from './modals/MediaDbSearchResultModal' ;
99import { MALAPI } from './api/apis/MALAPI' ;
1010import { MediaDbIdSearchModal } from './modals/MediaDbIdSearchModal' ;
1111import { WikipediaAPI } from './api/apis/WikipediaAPI' ;
1212import { MusicBrainzAPI } from './api/apis/MusicBrainzAPI' ;
13+ import { MediaTypeManager } from './utils/MediaTypeManager' ;
1314
1415export default class MediaDbPlugin extends Plugin {
1516 settings : MediaDbPluginSettings ;
1617 apiManager : APIManager ;
18+ mediaTypeManager : MediaTypeManager ;
1719
1820 async onload ( ) {
1921 await this . loadSettings ( ) ;
@@ -54,6 +56,8 @@ export default class MediaDbPlugin extends Plugin {
5456 this . apiManager . registerAPI ( new WikipediaAPI ( this ) ) ;
5557 this . apiManager . registerAPI ( new MusicBrainzAPI ( this ) ) ;
5658 // this.apiManager.registerAPI(new LocGovAPI(this)); // TODO: parse data
59+
60+ this . mediaTypeManager = new MediaTypeManager ( this . settings ) ;
5761 }
5862
5963 async createMediaDbNote ( modal : ( ) => Promise < MediaTypeModel > ) : Promise < void > {
@@ -68,37 +72,18 @@ export default class MediaDbPlugin extends Plugin {
6872 }
6973 }
7074
71- async createMediaDbNoteFromModel ( data : MediaTypeModel ) : Promise < void > {
75+ async createMediaDbNoteFromModel ( mediaTypeModel : MediaTypeModel ) : Promise < void > {
7276 try {
7377 console . log ( 'MDB | Creating new note...' ) ;
74- // console.log(data);
75-
76- let fileContent = `---\n${ data . toMetaData ( ) } ---\n` ;
77-
78- let templateFile : TFile = null ;
79-
80- if ( data . type === 'movie' && this . settings . movieTemplate ) {
81- templateFile = this . app . vault . getFiles ( ) . filter ( ( f : TFile ) => f . name === this . settings . movieTemplate ) . first ( ) ;
82- } else if ( data . type === 'series' && this . settings . seriesTemplate ) {
83- templateFile = this . app . vault . getFiles ( ) . filter ( ( f : TFile ) => f . name === this . settings . seriesTemplate ) . first ( ) ;
84- } else if ( data . type === 'game' && this . settings . gameTemplate ) {
85- templateFile = this . app . vault . getFiles ( ) . filter ( ( f : TFile ) => f . name === this . settings . gameTemplate ) . first ( ) ;
86- } else if ( data . type === 'wiki' && this . settings . wikiTemplate ) {
87- templateFile = this . app . vault . getFiles ( ) . filter ( ( f : TFile ) => f . name === this . settings . wikiTemplate ) . first ( ) ;
88- } else if ( data . type === 'musicRelease' && this . settings . musicReleaseTemplate ) {
89- templateFile = this . app . vault . getFiles ( ) . filter ( ( f : TFile ) => f . name === this . settings . musicReleaseTemplate ) . first ( ) ;
90- }
78+ // console.log(mediaTypeModel);
79+
80+ let fileContent = `---\n${ mediaTypeModel . toMetaData ( ) } ---\n` ;
9181
92- if ( templateFile ) {
93- let template = await this . app . vault . cachedRead ( templateFile ) ;
94- // console.log(template);
95- if ( this . settings . templates ) {
96- template = replaceTags ( template , data ) ;
97- }
98- fileContent += template ;
82+ if ( this . settings . templates ) {
83+ fileContent += await this . mediaTypeManager . getContent ( mediaTypeModel , this . app ) ;
9984 }
10085
101- const fileName = replaceIllegalFileNameCharactersInString ( data . getFileName ( ) ) ;
86+ const fileName = replaceIllegalFileNameCharactersInString ( this . mediaTypeManager . getFileName ( mediaTypeModel ) ) ;
10287 const filePath = `${ this . settings . folder . replace ( / \/ $ / , '' ) } /${ fileName } .md` ;
10388
10489 await this . app . vault . delete ( this . app . vault . getAbstractFileByPath ( filePath ) ) ;
@@ -120,9 +105,9 @@ export default class MediaDbPlugin extends Plugin {
120105
121106 async openMediaDbSearchModal ( ) : Promise < MediaTypeModel > {
122107 return new Promise ( ( ( resolve , reject ) => {
123- new MediaDbAdvancedSearchModal ( this . app , this . apiManager , ( err , results ) => {
108+ new MediaDbAdvancedSearchModal ( this . app , this , ( err , results ) => {
124109 if ( err ) return reject ( err ) ;
125- new MediaDbSearchResultModal ( this . app , results , ( err2 , res ) => {
110+ new MediaDbSearchResultModal ( this . app , this , results , ( err2 , res ) => {
126111 if ( err2 ) return reject ( err2 ) ;
127112 resolve ( res ) ;
128113 } ) . open ( ) ;
@@ -132,7 +117,7 @@ export default class MediaDbPlugin extends Plugin {
132117
133118 async openMediaDbIdSearchModal ( ) : Promise < MediaTypeModel > {
134119 return new Promise ( ( ( resolve , reject ) => {
135- new MediaDbIdSearchModal ( this . app , this . apiManager , ( err , res ) => {
120+ new MediaDbIdSearchModal ( this . app , this , ( err , res ) => {
136121 if ( err ) return reject ( err ) ;
137122 resolve ( res ) ;
138123 } ) . open ( ) ;
@@ -165,6 +150,7 @@ export default class MediaDbPlugin extends Plugin {
165150 }
166151
167152 async saveSettings ( ) {
153+ this . mediaTypeManager . updateTemplates ( this . settings ) ;
168154 await this . saveData ( this . settings ) ;
169155 }
170156}
0 commit comments