|
1 | | -import {Notice, Plugin, TFile} from 'obsidian'; |
| 1 | +import {FrontMatterCache, Notice, Plugin, TFile} from 'obsidian'; |
2 | 2 | import {DEFAULT_SETTINGS, MediaDbPluginSettings, MediaDbSettingTab} from './settings/Settings'; |
3 | 3 | import {APIManager} from './api/APIManager'; |
4 | 4 | import {MediaTypeModel} from './models/MediaTypeModel'; |
@@ -130,21 +130,25 @@ export default class MediaDbPlugin extends Plugin { |
130 | 130 | const activeLeaf: TFile = this.app.workspace.getActiveFile(); |
131 | 131 | if (!activeLeaf.name) return; |
132 | 132 |
|
133 | | - let metadata = this.app.metadataCache.getFileCache(activeLeaf).frontmatter; |
| 133 | + let metadata: FrontMatterCache = this.app.metadataCache.getFileCache(activeLeaf).frontmatter; |
134 | 134 |
|
135 | | - if (!metadata.type || !metadata.dataSource || !metadata.id) { |
| 135 | + if (!metadata?.type || !metadata?.dataSource || !metadata?.id) { |
136 | 136 | throw new Error('MDB | active note is not a Media DB entry or is missing metadata'); |
137 | 137 | } |
138 | 138 |
|
139 | | - const newMetadata = await this.apiManager.queryDetailedInfo({dataSource: metadata.dataSource, id: metadata.id} as MediaTypeModel); |
| 139 | + delete metadata.position; // remove unnecessary data from the FrontMatterCache |
| 140 | + let oldMediaTypeModel = this.mediaTypeManager.createMediaTypeModelFromMediaType(metadata, metadata.type); |
140 | 141 |
|
141 | | - if (!newMetadata) { |
| 142 | + let newMediaTypeModel = await this.apiManager.queryDetailedInfo({dataSource: metadata.dataSource, id: metadata.id} as MediaTypeModel); |
| 143 | + if (!newMediaTypeModel) { |
142 | 144 | return; |
143 | 145 | } |
144 | 146 |
|
| 147 | + newMediaTypeModel = Object.assign(oldMediaTypeModel, newMediaTypeModel.getWithOutUserData()); |
| 148 | + |
145 | 149 | console.log('MDB | deleting old entry'); |
146 | 150 | await this.app.vault.delete(activeLeaf); |
147 | | - await this.createMediaDbNoteFromModel(newMetadata); |
| 151 | + await this.createMediaDbNoteFromModel(newMediaTypeModel); |
148 | 152 | } |
149 | 153 |
|
150 | 154 | async loadSettings() { |
|
0 commit comments