mirror of
https://github.com/Zagrios/bs-manager.git
synced 2026-07-03 14:08:25 +02:00
Merge pull request #513 from Zagrios/bugfix/bsm-crashs-when-loading-playlists-with-an-invalid-playlist-file
[bugfix] Bsm crashs when loading playlists with an invalid playlist file
This commit is contained in:
@@ -23,6 +23,7 @@ import { isValidUrl } from "shared/helpers/url.helpers";
|
||||
import { Archive } from "main/models/archive.class";
|
||||
import { CustomError } from "shared/models/exceptions/custom-error.class";
|
||||
import { BsmLocalMap } from "shared/models/maps/bsm-local-map.interface";
|
||||
import { tryit } from "shared/helpers/error.helpers";
|
||||
import recursiveReadDir from "recursive-readdir";
|
||||
|
||||
export class LocalPlaylistsManagerService {
|
||||
@@ -137,6 +138,10 @@ export class LocalPlaylistsManagerService {
|
||||
|
||||
const bpList: BPList = isLocalFile ? JSON.parse(readFileSync(source).toString()) : await this.request.getJSON<BPList>(source);
|
||||
|
||||
if(!bpList?.playlistTitle){
|
||||
throw new Error(`Invalid playlist file ${source}`);
|
||||
}
|
||||
|
||||
return bpList;
|
||||
}
|
||||
|
||||
@@ -166,7 +171,12 @@ export class LocalPlaylistsManagerService {
|
||||
progress.total = playlistPaths.length;
|
||||
|
||||
for (const playlistPath of playlistPaths) {
|
||||
const bpList = await this.readPlaylistFromSource(playlistPath);
|
||||
const {result: bpList, error} = await tryit(() => this.readPlaylistFromSource(playlistPath));
|
||||
|
||||
if(error) {
|
||||
log.error(error);
|
||||
continue;
|
||||
}
|
||||
|
||||
const localBpList: LocalBPList = { ...bpList, path: playlistPath };
|
||||
bpLists.push(localBpList);
|
||||
|
||||
+2
-2
@@ -379,8 +379,8 @@ export const LocalPlaylistsListPanel = forwardRef<LocalPlaylistsListRef, Props>(
|
||||
if(!playlists){ return []; }
|
||||
|
||||
return playlists.filter(p => {
|
||||
if(!p.playlistTitle.toLowerCase().includes(search.toLowerCase())){ return false; }
|
||||
if(!p.playlistAuthor.toLowerCase().includes(search.toLowerCase())){ return false; }
|
||||
if(!p.playlistTitle?.toLowerCase().includes(search.toLowerCase())){ return false; }
|
||||
if(!p.playlistAuthor?.toLowerCase().includes(search.toLowerCase())){ return false; }
|
||||
|
||||
if(typeof p.nbMaps === "number" && (typeof playlistFiler?.minNbMaps === "number" || typeof playlistFiler?.maxNbMaps === "number")){
|
||||
if(playlistFiler?.minNbMaps && p.nbMaps < playlistFiler.minNbMaps){ return false; }
|
||||
|
||||
Reference in New Issue
Block a user