Skip to content

Commit 31ffd0d

Browse files
committed
Added sub-objects for api toggles (WIP)
1 parent 5eec98d commit 31ffd0d

File tree

2 files changed

+45
-31
lines changed

2 files changed

+45
-31
lines changed

src/api/APIModel.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ export abstract class APIModel {
2020
abstract getById(id: string): Promise<MediaTypeModel>;
2121

2222
hasType(type: MediaType): boolean {
23-
if (this.types.contains(type) && !(this.plugin.settings[(this.apiName + type) as keyof MediaDbPluginSettings] === false)) {
23+
if (this.types.contains(type) && !(this.plugin.settings[((`${this.apiName}"."${type}`)) as keyof MediaDbPluginSettings] === false)) {
2424
return true;
2525
}
2626
}

src/settings/Settings.ts

Lines changed: 44 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,21 @@ export interface MediaDbPluginSettings {
1919
openNoteInNewTab: boolean;
2020
useDefaultFrontMatter: boolean;
2121
enableTemplaterIntegration: boolean;
22-
OMDbAPImovie: boolean;
23-
OMDbAPIseries: boolean;
24-
OMDbAPIgame: boolean;
25-
MALAPImovie: boolean;
26-
MALAPIseries: boolean;
27-
SteamAPIgame: boolean;
28-
MobyGamesAPIgame: boolean;
29-
22+
OMDbAPI: {
23+
movie: boolean,
24+
series: boolean,
25+
game: boolean
26+
};
27+
MALAPI: {
28+
movie: boolean,
29+
series: boolean
30+
};
31+
SteamAPI: {
32+
game: boolean
33+
};
34+
MobyGamesAPI: {
35+
game: boolean
36+
};
3037
movieTemplate: string;
3138
seriesTemplate: string;
3239
mangaTemplate: string;
@@ -76,14 +83,21 @@ const DEFAULT_SETTINGS: MediaDbPluginSettings = {
7683
openNoteInNewTab: true,
7784
useDefaultFrontMatter: true,
7885
enableTemplaterIntegration: false,
79-
OMDbAPImovie: true,
80-
OMDbAPIgame: true,
81-
OMDbAPIseries: true,
82-
MALAPIseries: true,
83-
MALAPImovie: true,
84-
SteamAPIgame: true,
85-
MobyGamesAPIgame: true,
86-
86+
OMDbAPI: {
87+
movie: true,
88+
game: true,
89+
series: true,
90+
},
91+
MALAPI: {
92+
movie: true,
93+
series: true,
94+
},
95+
SteamAPI: {
96+
game: true,
97+
},
98+
MobyGamesAPI: {
99+
game: true,
100+
},
87101
movieTemplate: '',
88102
seriesTemplate: '',
89103
mangaTemplate: '',
@@ -281,17 +295,17 @@ export class MediaDbSettingTab extends PluginSettingTab {
281295
.setName('OMDb API')
282296
.setDesc('Use OMDb API for movies.')
283297
.addToggle(cb => {
284-
cb.setValue(this.plugin.settings.OMDbAPImovie).onChange(data => {
285-
this.plugin.settings.OMDbAPImovie = data;
298+
cb.setValue(this.plugin.settings.OMDbAPI.movie).onChange(data => {
299+
this.plugin.settings.OMDbAPI.movie = data;
286300
this.plugin.saveSettings();
287301
});
288302
});
289303
new Setting(containerEl)
290304
.setName('MAL API')
291305
.setDesc('Use MAL API for movies.')
292306
.addToggle(cb => {
293-
cb.setValue(this.plugin.settings.MALAPImovie).onChange(data => {
294-
this.plugin.settings.MALAPImovie = data;
307+
cb.setValue(this.plugin.settings.MALAPI.movie).onChange(data => {
308+
this.plugin.settings.MALAPI.movie = data;
295309
this.plugin.saveSettings();
296310
});
297311
});
@@ -300,17 +314,17 @@ export class MediaDbSettingTab extends PluginSettingTab {
300314
.setName('OMDb API')
301315
.setDesc('Use OMDb API for series.')
302316
.addToggle(cb => {
303-
cb.setValue(this.plugin.settings.OMDbAPIseries).onChange(data => {
304-
this.plugin.settings.OMDbAPIseries = data;
317+
cb.setValue(this.plugin.settings.OMDbAPI.series).onChange(data => {
318+
this.plugin.settings.OMDbAPI.series = data;
305319
this.plugin.saveSettings();
306320
});
307321
});
308322
new Setting(containerEl)
309323
.setName('MAL API')
310324
.setDesc('Use MAL API for series.')
311325
.addToggle(cb => {
312-
cb.setValue(this.plugin.settings.MALAPIseries).onChange(data => {
313-
this.plugin.settings.MALAPIseries = data;
326+
cb.setValue(this.plugin.settings.MALAPI.series).onChange(data => {
327+
this.plugin.settings.MALAPI.series = data;
314328
this.plugin.saveSettings();
315329
});
316330
});
@@ -319,26 +333,26 @@ export class MediaDbSettingTab extends PluginSettingTab {
319333
.setName('OMDb API')
320334
.setDesc('Use OMDb API for games.')
321335
.addToggle(cb => {
322-
cb.setValue(this.plugin.settings.OMDbAPIgame).onChange(data => {
323-
this.plugin.settings.OMDbAPIgame = data;
336+
cb.setValue(this.plugin.settings.OMDbAPI.game).onChange(data => {
337+
this.plugin.settings.OMDbAPI.game = data;
324338
this.plugin.saveSettings();
325339
});
326340
});
327341
new Setting(containerEl)
328342
.setName('Steam API')
329343
.setDesc('Use OMDb API for games.')
330344
.addToggle(cb => {
331-
cb.setValue(this.plugin.settings.SteamAPIgame).onChange(data => {
332-
this.plugin.settings.SteamAPIgame = data;
345+
cb.setValue(this.plugin.settings.SteamAPI.game).onChange(data => {
346+
this.plugin.settings.SteamAPI.game = data;
333347
this.plugin.saveSettings();
334348
});
335349
});
336350
new Setting(containerEl)
337351
.setName('MobyGames API')
338352
.setDesc('Use MobyGames API for games.')
339353
.addToggle(cb => {
340-
cb.setValue(this.plugin.settings.MobyGamesAPIgame).onChange(data => {
341-
this.plugin.settings.MobyGamesAPIgame = data;
354+
cb.setValue(this.plugin.settings.MobyGamesAPI.game).onChange(data => {
355+
this.plugin.settings.MobyGamesAPI.game = data;
342356
this.plugin.saveSettings();
343357
});
344358
});

0 commit comments

Comments
 (0)