5 Commits

7 changed files with 74 additions and 17 deletions

View File

@@ -74,6 +74,13 @@ export const SignatureCard = ({ signature, onDelete, onUpdate }: SignatureCardPr
<h3 className="text-white font-medium text-lg"> <h3 className="text-white font-medium text-lg">
{signature.signame || 'Unnamed Signature'} {signature.signame || 'Unnamed Signature'}
</h3> </h3>
{signature.note && (
<div className="mt-2">
<Badge variant="outline" className="bg-blue-900/50 text-blue-200 border-blue-500 px-3 py-1 text-sm font-semibold">
{signature.note}
</Badge>
</div>
)}
</div> </div>
{/* Additional Info */} {/* Additional Info */}

View File

@@ -30,7 +30,8 @@ export const SignatureEditModal = ({ signature, isOpen, onClose, onSave }: Signa
signame: signature.signame || "", signame: signature.signame || "",
dangerous: signature.dangerous || false, dangerous: signature.dangerous || false,
scanned: signature.scanned || "", scanned: signature.scanned || "",
identifier: signature.identifier || "" identifier: signature.identifier || "",
note: signature.note || ""
}); });
const [isLoading, setIsLoading] = useState(false); const [isLoading, setIsLoading] = useState(false);
@@ -45,7 +46,8 @@ export const SignatureEditModal = ({ signature, isOpen, onClose, onSave }: Signa
type: formData.type === "unknown" ? undefined : formData.type, type: formData.type === "unknown" ? undefined : formData.type,
signame: formData.signame || undefined, signame: formData.signame || undefined,
dangerous: formData.dangerous, dangerous: formData.dangerous,
scanned: formData.scanned || undefined scanned: formData.scanned || undefined,
note: formData.note || undefined
}); });
onClose(); onClose();
toast({ toast({
@@ -71,7 +73,8 @@ export const SignatureEditModal = ({ signature, isOpen, onClose, onSave }: Signa
signame: signature.signame || "", signame: signature.signame || "",
dangerous: signature.dangerous || false, dangerous: signature.dangerous || false,
scanned: signature.scanned || "", scanned: signature.scanned || "",
identifier: signature.identifier || "" identifier: signature.identifier || "",
note: signature.note || ""
}); });
onClose(); onClose();
}; };
@@ -152,6 +155,18 @@ export const SignatureEditModal = ({ signature, isOpen, onClose, onSave }: Signa
/> />
</div> </div>
{/* Note Field - Add before the Dangerous Flag */}
<div className="space-y-2">
<Label htmlFor="note" className="text-slate-200">Important Note</Label>
<Input
id="note"
value={formData.note}
onChange={(e) => setFormData(prev => ({ ...prev, note: e.target.value }))}
placeholder="Add important information about this signature"
className="bg-slate-700 border-slate-600 text-slate-200"
/>
</div>
{/* Dangerous Flag */} {/* Dangerous Flag */}
<div className="flex items-center justify-between"> <div className="flex items-center justify-between">
<Label htmlFor="dangerous" className="text-slate-200">Dangerous</Label> <Label htmlFor="dangerous" className="text-slate-200">Dangerous</Label>

View File

@@ -117,6 +117,11 @@ export const SignatureListItem = ({ signature, onDelete, onUpdate }: SignatureLi
</Badge> </Badge>
)} )}
</h3> </h3>
{signature.note && (
<Badge variant="outline" className="bg-blue-900/50 text-blue-200 border-blue-500 px-2 py-0.5 text-sm font-semibold ml-2">
{signature.note}
</Badge>
)}
</div> </div>
</div> </div>

View File

@@ -107,6 +107,7 @@ export type SignatureRecord = {
id: string id: string
identifier: string identifier: string
name?: string name?: string
note?: string
scanned?: string scanned?: string
system: RecordIdString system: RecordIdString
type?: string type?: string
@@ -118,6 +119,7 @@ export type SigviewRecord = {
dangerous?: boolean dangerous?: boolean
id: string id: string
identifier: string identifier: string
note?: string
scanned?: string scanned?: string
signame?: string signame?: string
sysid?: RecordIdString sysid?: RecordIdString

View File

@@ -125,6 +125,9 @@ export const SystemView = () => {
if (updatedSignature.scanned !== undefined) { if (updatedSignature.scanned !== undefined) {
updateData.scanned = updatedSignature.scanned; updateData.scanned = updatedSignature.scanned;
} }
if (updatedSignature.note !== undefined) {
updateData.note = updatedSignature.note;
}
console.log('Update data:', updateData); console.log('Update data:', updateData);
@@ -199,7 +202,7 @@ export const SystemView = () => {
} }
// Turn off clean mode after use // Turn off clean mode after use
setCleanMode(false); // setCleanMode(false);
} }
// Save all new/updated signatures // Save all new/updated signatures

View File

@@ -1,5 +1,28 @@
import { SigviewRecord as Signature } from "@/lib/pbtypes"; 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 => { export const parseSignature = (text: string): Omit<Signature, 'system' | 'id' | 'sysid'> | null => {
const parts = text.split('\t'); const parts = text.split('\t');
if (parts.length < 4) return null; if (parts.length < 4) return null;
@@ -10,12 +33,23 @@ export const parseSignature = (text: string): Omit<Signature, 'system' | 'id' |
return null; 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 { return {
identifier: parts[0], identifier: parts[0],
type: parts[2], type: parts[2],
signame: parts[3], signame: parts[3],
scanned: parts.length > 4 ? parts[4] : undefined, scanned: parts.length > 4 ? parts[4] : undefined,
dangerous: false // TODO: Implement dangerous signature detection dangerous: false, // TODO: Implement dangerous signature detection
note: note,
}; };
}; };

View File

@@ -41,17 +41,8 @@ RELEASE_ID=$(echo $RELEASE_RESPONSE | awk -F'"id":' '{print $2+0; exit}')
echo "Release ID: $RELEASE_ID" echo "Release ID: $RELEASE_ID"
echo "Uploading the things..." echo "Uploading the things..."
WINRELEASE="./build/windows/x64/runner/Release/" WINRELEASE="build/bin/signalerr.exe"
7z a $WINRELEASE/$ZIP $WINRELEASE/*
curl -X POST \ curl -X POST \
-H "Authorization: token $TOKEN" \ -H "Authorization: token $TOKEN" \
-F "attachment=@$WINRELEASE/$ZIP" \ -F "attachment=@$WINRELEASE" \
"$GITEA/api/v1/repos/$REPO/releases/${RELEASE_ID}/assets?name=$ZIP" "$GITEA/api/v1/repos/$REPO/releases/${RELEASE_ID}/assets?name=signalerr.exe"
rm $WINRELEASE/$ZIP
ANDROIDRELEASE="./build/app/outputs/flutter-apk/"
mv $ANDROIDRELEASE/app-release.apk $ANDROIDRELEASE/$APK
curl -X POST \
-H "Authorization: token $TOKEN" \
-F "attachment=@$ANDROIDRELEASE/$APK" \
"$GITEA/api/v1/repos/$REPO/releases/${RELEASE_ID}/assets?name=$APK"