5 Commits

3 changed files with 53 additions and 23 deletions

View File

@@ -1,20 +1,9 @@
FROM oven/bun:1.0.25-slim as builder
WORKDIR /app
# Copy package files
COPY package*.json ./
COPY bun.lockb ./
COPY dist dist
COPY nginx.conf /etc/nginx/conf.d/default.conf
# Install dependencies
RUN bun install
# Copy source files
COPY . .
# Build the application
RUN bun run build
# Production stage
FROM nginx:alpine
COPY --from=builder /app/dist /usr/share/nginx/html
COPY nginx.conf /etc/nginx/conf.d/default.conf

View File

@@ -22,6 +22,7 @@ export const SystemView = () => {
}
const saveSignature = async (signature: Signature): Promise<void> => {
console.log(signature);
try {
// Check if signature already exists
let existingRecord: SignatureRecord | null = null;
@@ -34,7 +35,7 @@ export const SystemView = () => {
const newScannedPercentage = parseScannedPercentage(signature.scanned);
if (existingRecord) {
const updatedSignature: Pick<SignatureRecord, 'updated' | 'type' | 'name' | 'scanned'> = {
const updatedSignature: Pick<SignatureRecord, 'updated' | 'type' | 'name' | 'scanned' | 'note'> = {
updated: new Date().toISOString()
}
// Existing record has no type and our new signature has a type
@@ -47,6 +48,8 @@ export const SystemView = () => {
const existingScannedPercentage = parseScannedPercentage(existingRecord.scanned);
if (newScannedPercentage >= existingScannedPercentage)
updatedSignature.scanned = signature.scanned;
if (!!!existingRecord.note && !!signature.note)
updatedSignature.note = signature.note;
await pb.collection('signature').update(existingRecord.id, updatedSignature);
console.log(`Updated signature ${signature.identifier}: ${existingScannedPercentage}% -> ${newScannedPercentage}%`);
} else {
@@ -57,7 +60,8 @@ export const SystemView = () => {
name: signature.signame,
type: signature.type,
dangerous: signature.dangerous,
scanned: signature.scanned
scanned: signature.scanned,
note: signature.note
});
console.log(`Created new signature ${signature.identifier} with ${newScannedPercentage}% scan`);
}
@@ -125,6 +129,9 @@ export const SystemView = () => {
if (updatedSignature.scanned !== undefined) {
updateData.scanned = updatedSignature.scanned;
}
if (updatedSignature.note !== undefined) {
updateData.note = updatedSignature.note;
}
console.log('Update data:', updateData);
@@ -199,7 +206,7 @@ export const SystemView = () => {
}
// Turn off clean mode after use
setCleanMode(false);
// setCleanMode(false);
}
// Save all new/updated signatures

View File

@@ -1,5 +1,28 @@
import { SigviewRecord as Signature } from "@/lib/pbtypes";
const fourOutOfTen = [
"Angel Cartel Occupied Mining Colony",
"Mul-Zatah Monastery",
"Guristas Scout Outpost",
"Sansha's Nation Occupied Mining Colony",
"Serpentis Phi-Outpost",
"Drone Infested Mine",
];
const fiveOutOfTen = [
"Angel's Red Light District",
"Blood Raider Psychotropics Depot",
"Guristas Hallucinogen Supply Waypoint",
"Sansha's Nation Neural Paralytic Facility",
"Serpentis Corporation Hydroponics Site",
"Outgrowth Rogue Drone Hive",
];
function isFourOutOfTen(signature: string): boolean {
return fourOutOfTen.some((s) => signature.includes(s));
}
function isFiveOutOfTen(signature: string): boolean {
return fiveOutOfTen.some((s) => signature.includes(s));
}
export const parseSignature = (text: string): Omit<Signature, 'system' | 'id' | 'sysid'> | null => {
const parts = text.split('\t');
if (parts.length < 4) return null;
@@ -10,12 +33,23 @@ export const parseSignature = (text: string): Omit<Signature, 'system' | 'id' |
return null;
}
let note = "";
const isFour = isFourOutOfTen(parts[3]);
if (isFour) {
note = "4/10";
}
const isFive = isFiveOutOfTen(parts[3]);
if (isFive) {
note = "5/10";
}
return {
identifier: parts[0],
type: parts[2],
signame: parts[3],
scanned: parts.length > 4 ? parts[4] : undefined,
dangerous: false // TODO: Implement dangerous signature detection
dangerous: false, // TODO: Implement dangerous signature detection
note: note,
};
};