Skip to content

Commit 436f98c

Browse files
committed
WIP api selection
I'm close but I don't now how to get the MediaType that the plugin called
1 parent ca7658b commit 436f98c

File tree

3 files changed

+39
-34
lines changed

3 files changed

+39
-34
lines changed

src/api/APIManager.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
import { APIModel } from './APIModel';
22
import { MediaTypeModel } from '../models/MediaTypeModel';
3+
import MediaDbPlugin from '../main';
4+
35

46
export class APIManager {
7+
plugin: MediaDbPlugin;
58
apis: APIModel[];
69

7-
constructor() {
10+
constructor(plugin: MediaDbPlugin) {
11+
this.plugin = plugin;
812
this.apis = [];
913
}
1014

@@ -18,9 +22,9 @@ export class APIManager {
1822
console.debug(`MDB | api manager queried with "${query}"`);
1923

2024
let res: MediaTypeModel[] = [];
21-
2225
for (const api of this.apis) {
23-
if (apisToQuery.contains(api.apiName)) {
26+
const apiSettings = [api.apiName, MediaTypeModel].filter(s => s).join('') as keyof typeof this.plugin.settings;
27+
if (apisToQuery.contains(api.apiName) && this.plugin.settings[apiSettings]) {
2428
const apiRes = await api.searchByTitle(query);
2529
res = res.concat(apiRes);
2630
}

src/main.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ export default class MediaDbPlugin extends Plugin {
3939
frontMatterRexExpPattern: string = '^(---)\\n[\\s\\S]*?\\n---';
4040

4141
async onload(): Promise<void> {
42-
this.apiManager = new APIManager();
42+
this.apiManager = new APIManager(this);
4343
// register APIs
4444
this.apiManager.registerAPI(new OMDbAPI(this));
4545
this.apiManager.registerAPI(new MALAPI(this));
@@ -73,7 +73,8 @@ export default class MediaDbPlugin extends Plugin {
7373
this.app.workspace.on('file-menu', (menu, file) => {
7474
if (file instanceof TFolder) {
7575
menu.addItem(item => {
76-
item.setTitle('Import folder as Media DB entries')
76+
item
77+
.setTitle('Import folder as Media DB entries')
7778
.setIcon('database')
7879
.onClick(() => this.createEntriesFromFolder(file));
7980
});

src/settings/Settings.ts

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@ export interface MediaDbPluginSettings {
1919
openNoteInNewTab: boolean;
2020
useDefaultFrontMatter: boolean;
2121
enableTemplaterIntegration: boolean;
22-
OMDbAPIMovies: boolean;
23-
OMDbAPISeries: boolean;
24-
OMDbAPIGames: boolean;
25-
MALAPIMovies: boolean;
26-
MALAPISeries: boolean;
27-
SteamAPI: boolean;
28-
MobyGamesAPI: boolean;
22+
OMDbAPImovie: boolean;
23+
OMDbAPIseries: boolean;
24+
OMDbAPIgame: boolean;
25+
MALAPImovie: boolean;
26+
MALAPIseries: boolean;
27+
SteamAPIgame: boolean;
28+
MobyGamesAPIgame: boolean;
2929

3030
movieTemplate: string;
3131
seriesTemplate: string;
@@ -76,13 +76,13 @@ const DEFAULT_SETTINGS: MediaDbPluginSettings = {
7676
openNoteInNewTab: true,
7777
useDefaultFrontMatter: true,
7878
enableTemplaterIntegration: false,
79-
OMDbAPIMovies: true,
80-
OMDbAPIGames: true,
81-
OMDbAPISeries: true,
82-
MALAPISeries: true,
83-
MALAPIMovies: true,
84-
SteamAPI: true,
85-
MobyGamesAPI: true,
79+
OMDbAPImovie: true,
80+
OMDbAPIgame: true,
81+
OMDbAPIseries: true,
82+
MALAPIseries: true,
83+
MALAPImovie: true,
84+
SteamAPIgame: true,
85+
MobyGamesAPIgame: true,
8686

8787
movieTemplate: '',
8888
seriesTemplate: '',
@@ -176,7 +176,7 @@ export class MediaDbSettingTab extends PluginSettingTab {
176176
});
177177
});
178178

179-
new Setting(containerEl)
179+
new Setting(containerEl)
180180
.setName('Moby Games key')
181181
.setDesc('API key for "www.mobygames.com".')
182182
.addText(cb => {
@@ -281,17 +281,17 @@ export class MediaDbSettingTab extends PluginSettingTab {
281281
.setName('OMDb API')
282282
.setDesc('Use OMDb API for movies.')
283283
.addToggle(cb => {
284-
cb.setValue(this.plugin.settings.OMDbAPIMovies).onChange(data => {
285-
this.plugin.settings.OMDbAPIMovies = data;
284+
cb.setValue(this.plugin.settings.OMDbAPImovie).onChange(data => {
285+
this.plugin.settings.OMDbAPImovie = data;
286286
this.plugin.saveSettings();
287287
});
288288
});
289289
new Setting(containerEl)
290290
.setName('MAL API')
291291
.setDesc('Use MAL API for movies.')
292292
.addToggle(cb => {
293-
cb.setValue(this.plugin.settings.MALAPIMovies).onChange(data => {
294-
this.plugin.settings.MALAPIMovies = data;
293+
cb.setValue(this.plugin.settings.MALAPImovie).onChange(data => {
294+
this.plugin.settings.MALAPImovie = data;
295295
this.plugin.saveSettings();
296296
});
297297
});
@@ -300,17 +300,17 @@ export class MediaDbSettingTab extends PluginSettingTab {
300300
.setName('OMDb API')
301301
.setDesc('Use OMDb API for series.')
302302
.addToggle(cb => {
303-
cb.setValue(this.plugin.settings.OMDbAPISeries).onChange(data => {
304-
this.plugin.settings.OMDbAPISeries = data;
303+
cb.setValue(this.plugin.settings.OMDbAPIseries).onChange(data => {
304+
this.plugin.settings.OMDbAPIseries = data;
305305
this.plugin.saveSettings();
306306
});
307307
});
308308
new Setting(containerEl)
309309
.setName('MAL API')
310310
.setDesc('Use MAL API for series.')
311311
.addToggle(cb => {
312-
cb.setValue(this.plugin.settings.MALAPISeries).onChange(data => {
313-
this.plugin.settings.MALAPISeries = data;
312+
cb.setValue(this.plugin.settings.MALAPIseries).onChange(data => {
313+
this.plugin.settings.MALAPIseries = data;
314314
this.plugin.saveSettings();
315315
});
316316
});
@@ -319,26 +319,26 @@ export class MediaDbSettingTab extends PluginSettingTab {
319319
.setName('OMDb API')
320320
.setDesc('Use OMDb API for games.')
321321
.addToggle(cb => {
322-
cb.setValue(this.plugin.settings.OMDbAPIGames).onChange(data => {
323-
this.plugin.settings.OMDbAPIGames = data;
322+
cb.setValue(this.plugin.settings.OMDbAPIgame).onChange(data => {
323+
this.plugin.settings.OMDbAPIgame = data;
324324
this.plugin.saveSettings();
325325
});
326326
});
327327
new Setting(containerEl)
328328
.setName('Steam API')
329329
.setDesc('Use OMDb API for games.')
330330
.addToggle(cb => {
331-
cb.setValue(this.plugin.settings.SteamAPI).onChange(data => {
332-
this.plugin.settings.SteamAPI = data;
331+
cb.setValue(this.plugin.settings.SteamAPIgame).onChange(data => {
332+
this.plugin.settings.SteamAPIgame = data;
333333
this.plugin.saveSettings();
334334
});
335335
});
336336
new Setting(containerEl)
337337
.setName('MobyGames API')
338338
.setDesc('Use MobyGames API for games.')
339339
.addToggle(cb => {
340-
cb.setValue(this.plugin.settings.MobyGamesAPI).onChange(data => {
341-
this.plugin.settings.MobyGamesAPI = data;
340+
cb.setValue(this.plugin.settings.MobyGamesAPIgame).onChange(data => {
341+
this.plugin.settings.MobyGamesAPIgame = data;
342342
this.plugin.saveSettings();
343343
});
344344
});

0 commit comments

Comments
 (0)