Skip to content

Commit 72198ab

Browse files
committed
Made several improvements
- Replaced interpolated string to a new function getDisabledMediaTypes() - Added override for every API with the plugin settings for disabled media types - Added _disabledMediaTypes for API's even if they are the only provider of a media type - Replaced static apiMediaTypes to a dynamic version
1 parent 666ca1e commit 72198ab

File tree

12 files changed

+70
-34
lines changed

12 files changed

+70
-34
lines changed

src/api/APIModel.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,10 @@ export abstract class APIModel {
1818

1919
abstract getById(id: string): Promise<MediaTypeModel>;
2020

21+
abstract getDisabledMediaTypes(): MediaType[];
22+
2123
hasType(type: MediaType): boolean {
22-
const disabledMediaTypes = this.plugin.settings[`${this.apiName}_disabledMediaTypes` as keyof typeof this.plugin.settings] as MediaType[];
24+
const disabledMediaTypes = this.getDisabledMediaTypes();
2325
return this.types.includes(type) && !disabledMediaTypes.includes(type);
2426
}
2527

src/api/apis/BoardGameGeekAPI.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,4 +117,7 @@ export class BoardGameGeekAPI extends APIModel {
117117
},
118118
});
119119
}
120+
getDisabledMediaTypes(): MediaType[] {
121+
return this.plugin.settings.BoardgameGeekAPI_disabledMediaTypes as MediaType[];
122+
}
120123
}

src/api/apis/ComicVineAPI.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,4 +95,7 @@ export class ComicVineAPI extends APIModel {
9595
},
9696
});
9797
}
98+
getDisabledMediaTypes(): MediaType[] {
99+
return this.plugin.settings.ComicVineAPI_disabledMediaTypes as MediaType[];
100+
}
98101
}

src/api/apis/GiantBombAPI.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,4 +106,7 @@ export class GiantBombAPI extends APIModel {
106106
},
107107
});
108108
}
109+
getDisabledMediaTypes(): MediaType[] {
110+
return this.plugin.settings.GiantBombAPI_disabledMediaTypes as MediaType[];
111+
}
109112
}

src/api/apis/MALAPI.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,4 +195,7 @@ export class MALAPI extends APIModel {
195195

196196
throw new Error(`MDB | Unknown media type for id ${id}`);
197197
}
198+
getDisabledMediaTypes(): MediaType[] {
199+
return this.plugin.settings.MALAPI_disabledMediaTypes as MediaType[];
200+
}
198201
}

src/api/apis/MobyGamesAPI.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,4 +107,7 @@ export class MobyGamesAPI extends APIModel {
107107
},
108108
});
109109
}
110+
getDisabledMediaTypes(): MediaType[] {
111+
return this.plugin.settings.MobyGamesAPI_disabledMediaTypes as MediaType[];
112+
}
110113
}

src/api/apis/MusicBrainzAPI.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,4 +99,7 @@ export class MusicBrainzAPI extends APIModel {
9999
},
100100
});
101101
}
102+
getDisabledMediaTypes(): MediaType[] {
103+
return this.plugin.settings.MusicBrainzAPI_disabledMediaTypes as MediaType[];
104+
}
102105
}

src/api/apis/OMDbAPI.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,4 +223,8 @@ export class OMDbAPI extends APIModel {
223223

224224
throw new Error(`MDB | Unknown media type for id ${id}`);
225225
}
226+
227+
getDisabledMediaTypes(): MediaType[] {
228+
return this.plugin.settings.OMDbAPI_disabledMediaTypes as MediaType[];
229+
}
226230
}

src/api/apis/OpenLibraryAPI.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,4 +89,7 @@ export class OpenLibraryAPI extends APIModel {
8989
},
9090
});
9191
}
92+
getDisabledMediaTypes(): MediaType[] {
93+
return this.plugin.settings.OpenLibraryAPI_disabledMediaTypes as MediaType[];
94+
}
9295
}

src/api/apis/SteamAPI.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,4 +109,7 @@ export class SteamAPI extends APIModel {
109109
},
110110
});
111111
}
112+
getDisabledMediaTypes(): MediaType[] {
113+
return this.plugin.settings.SteamAPI_disabledMediaTypes as MediaType[];
114+
}
112115
}

0 commit comments

Comments
 (0)