Merge pull request 'Issue 1' (#2) from issue-1 into master

Reviewed-on: #2
This commit was merged in pull request #2.
This commit is contained in:
2026-09-16 23:38:41 -04:00
+20 -17
View File
@@ -111,21 +111,21 @@ export async function initAircraftDb() {
db = new Database(DB_PATH); db = new Database(DB_PATH);
db.exec(` db.exec(`
CREATE TABLE IF NOT EXISTS aircraft ( CREATE TABLE IF NOT EXISTS aircraft (
icao TEXT PRIMARY KEY, icao TEXT PRIMARY KEY,
built TEXT, built TEXT,
categoryDescription TEXT, categoryDescription TEXT,
country TEXT, country TEXT,
engines TEXT, engines TEXT,
class TEXT, class TEXT,
manufacturer TEXT, manufacturer TEXT,
model TEXT, model TEXT,
modes TEXT, modes TEXT,
operator TEXT, operator TEXT,
operatorCallsign TEXT, operatorCallsign TEXT,
owner TEXT, owner TEXT,
registration TEXT, registration TEXT,
serialNumber TEXT, serialNumber TEXT,
aircraft TEXT aircraft TEXT
); );
CREATE TABLE IF NOT EXISTS military_ranges (start TEXT NOT NULL, end TEXT NOT NULL); CREATE TABLE IF NOT EXISTS military_ranges (start TEXT NOT NULL, end TEXT NOT NULL);
@@ -243,7 +243,10 @@ export function classifyAircraft(row) {
const matchesAny = (fields, list) => fields.some(f => { const matchesAny = (fields, list) => fields.some(f => {
const value = normalizeName(f); const value = normalizeName(f);
return value && list.some(k => value.includes(normalizeName(k))); return value && list.some(k => {
const kw = normalizeName(k);
return kw && new RegExp('\\b' + kw.replace(/[.*+?^${}()|[\\]\\]/g, '\\$&') + '\\b', 'i').test(value);
});
}); });
const operators = [row.operator, row.operatorCallsign, row.owner]; const operators = [row.operator, row.operatorCallsign, row.owner];
@@ -503,4 +506,4 @@ setInterval(() => {
const last = trail.at(-1); const last = trail.at(-1);
if (!last || last.ts < cutoff) history.delete(key); if (!last || last.ts < cutoff) history.delete(key);
} }
}, 1000 * 60 * 5); }, 1000 * 60 * 5);