Improve the signature updating logic

So that types are inserted even forsignatures which are less scanned
than existing
This commit is contained in:
2025-06-16 19:27:02 +02:00
parent 739f8fea3a
commit 4ac6155c24

View File

@@ -9,6 +9,7 @@ import { parseSignature, parseScannedPercentage } from "@/utils/signatureParser"
import { getSystemId } from "@/utils/systemApi";
import pb from "@/lib/pocketbase";
import { SigviewRecord as Signature } from "@/lib/pbtypes";
import { udpSocket } from "bun";
export const SystemView = () => {
const { system, region } = useParams();
@@ -34,23 +35,19 @@ export const SystemView = () => {
const newScannedPercentage = parseScannedPercentage(signature.scanned);
if (existingRecord) {
const updatedSignature: Pick<Signature, 'updated' | 'type' | 'signame' | 'scanned'> = {
updated: new Date().toISOString()
}
if (existingRecord.type == "" && signature.type != "")
updatedSignature.type = signature.type;
if (existingRecord.signame == "" && signature.signame != "")
updatedSignature.signame = signature.signame;
// Update existing signature only if new scan percentage is higher
const existingScannedPercentage = parseScannedPercentage(existingRecord.scanned);
if (newScannedPercentage >= existingScannedPercentage) {
await pb.collection('signature').update(existingRecord.id, {
name: signature.signame,
type: signature.type,
dangerous: signature.dangerous,
scanned: signature.scanned
});
console.log(`Updated signature ${signature.identifier}: ${existingScannedPercentage}% -> ${newScannedPercentage}%`);
} else {
const updatedSignature: Pick<Signature, 'updated'> = {
updated: new Date().toISOString()
}
await pb.collection('signature').update(existingRecord.id, updatedSignature);
console.log(`Skipped updating signature ${signature.identifier}: new scan ${newScannedPercentage}% is not better than existing ${existingScannedPercentage}%`);
}
if (newScannedPercentage >= existingScannedPercentage)
updatedSignature.scanned = signature.scanned;
await pb.collection('signature').update(existingRecord.id, updatedSignature);
console.log(`Updated signature ${signature.identifier}: ${existingScannedPercentage}% -> ${newScannedPercentage}%`);
} else {
// Create new signature
await pb.collection('signature').create({