[feature-136] can now search models from the download modal

This commit is contained in:
MathieuG-P
2023-05-16 00:50:47 +02:00
parent eb9775c89f
commit 645f18002a
22 changed files with 336 additions and 109 deletions
-9
View File
@@ -1,9 +0,0 @@
export function isValidUrl(url: string): boolean{
try{
new URL(url);
return true;
}
catch(e){
return false;
}
}
+9
View File
@@ -2,6 +2,10 @@ import { ipcMain } from "electron";
import { IpcRequest } from "shared/models/ipc";
import { ModelSaberService } from "../services/thrid-party/model-saber/model-saber.service";
import { UtilsService } from "../services/utils.service";
import { IpcService } from "../services/ipc.service";
import { MSGetQuery } from "shared/models/models/model-saber.model";
const ipc = IpcService.getInstance();
ipcMain.on("ms-get-model-by-id", async (event, request: IpcRequest<string|number>) => {
const utils = UtilsService.getInstance();
@@ -12,4 +16,9 @@ ipcMain.on("ms-get-model-by-id", async (event, request: IpcRequest<string|number
}).catch(e => {
utils.ipcSend(request.responceChannel, {success: false, error: e});
})
});
ipc.on<MSGetQuery>("search-models", async (req, reply) => {
const ms = ModelSaberService.getInstance();
reply(ms.searchModels(req.args));
});
-2
View File
@@ -106,7 +106,5 @@ else{
log.error(args?.args);
});
LocalModelsManagerService.getInstance().getModels(MSModelType.Saber, null).toPromise().catch(console.error).then(console.log);
}).catch(log.error);
}
@@ -7,7 +7,7 @@ import { RequestService } from "../request.service";
import { UtilsService } from "../utils.service";
import { LocalMapsManagerService } from "./local-maps-manager.service";
import log from "electron-log"
import { isValidUrl } from "../../helpers/url.helpers";
import { isValidUrl } from "../../../shared/helpers/url.helpers";
import { ipcMain } from "electron";
import { WindowManagerService } from "../window-manager.service";
import { IpcRequest } from "shared/models/ipc";
@@ -1,3 +1,4 @@
import { Observable } from "rxjs";
import { MSGetQuery, MSGetQueryFilterType, MSModel, MSModelPlatform } from "../../../../shared/models/models/model-saber.model";
import { ModelSaberApiService } from "./model-saber-api.service";
import log from "electron-log";
@@ -81,4 +82,14 @@ export class ModelSaberService {
}
public searchModels(query: MSGetQuery): Observable<MSModel[]>{
return new Observable<MSModel[]>(observer => {
(async () => {
const res = await this.modelSaberApi.searchModel(query);
if(res.status !== 200){ observer.error(res.status); }
observer.next(Object.values(res.data));
})().catch(e => observer.error(e)).then(() => observer.complete());
});
}
}