taStorage constants added

This commit is contained in:
Mic 2026-03-23 00:22:00 +01:00
parent 170dddfb78
commit 1ccd3d3123
2 changed files with 14 additions and 11 deletions

View file

@ -72,7 +72,7 @@ export class taSpamReport {
async loadReportData(data_id) { async loadReportData(data_id) {
this.taLog.log("[loadReportData] data_id: " + data_id); this.taLog.log("[loadReportData] data_id: " + data_id);
let record = await this._storage.getRecord(data_id); let record = await this._storage.getRecord(data_id);
if (!record || !this._storage.hasField(record, 'spam')) { if (!record || !this._storage.hasField(record, taStorage.FIELD_SPAM)) {
this.taLog.log("[loadReportData] no record found for data_id: " + data_id); this.taLog.log("[loadReportData] no record found for data_id: " + data_id);
return null; return null;
} }

View file

@ -22,6 +22,9 @@ export class taStorage {
static STORAGE_KEY_PREFIX = 'msg:'; static STORAGE_KEY_PREFIX = 'msg:';
static SCHEMA_VERSION = 1; static SCHEMA_VERSION = 1;
static FIELD_SPAM = 'spam';
static FIELD_SUMMARY = 'summary';
static FIELD_TRANSLATION = 'translation';
taLog = null; taLog = null;
@ -87,12 +90,12 @@ export class taStorage {
try { try {
let key = this._buildKey(messageId); let key = this._buildKey(messageId);
let record = await this.getRecord(messageId) || { v: taStorage.SCHEMA_VERSION }; let record = await this.getRecord(messageId) || { v: taStorage.SCHEMA_VERSION };
if ('spam' in record && !force) { if (taStorage.FIELD_SPAM in record && !force) {
this.taLog.log('[writeSpam] spam field already exists, skipping (force=false)'); this.taLog.log('[writeSpam] spam field already exists, skipping (force=false)');
return; return;
} }
let now = Date.now(); let now = Date.now();
record.spam = { record[taStorage.FIELD_SPAM] = {
spamValue: report_data.spamValue, spamValue: report_data.spamValue,
explanation: report_data.explanation, explanation: report_data.explanation,
subject: report_data.subject, subject: report_data.subject,
@ -122,9 +125,9 @@ export class taStorage {
let result = {}; let result = {};
for (let [key, record] of Object.entries(all)) { for (let [key, record] of Object.entries(all)) {
if (!key.startsWith(taStorage.STORAGE_KEY_PREFIX)) continue; if (!key.startsWith(taStorage.STORAGE_KEY_PREFIX)) continue;
if (!this.hasField(record, 'spam')) continue; if (!this.hasField(record, taStorage.FIELD_SPAM)) continue;
let messageId = key.slice(taStorage.STORAGE_KEY_PREFIX.length); let messageId = key.slice(taStorage.STORAGE_KEY_PREFIX.length);
let spam = record.spam; let spam = record[taStorage.FIELD_SPAM];
result[messageId] = { result[messageId] = {
headerMessageId: messageId, headerMessageId: messageId,
spamValue: spam.spamValue, spamValue: spam.spamValue,
@ -155,11 +158,11 @@ export class taStorage {
try { try {
let key = this._buildKey(messageId); let key = this._buildKey(messageId);
let record = await this.getRecord(messageId); let record = await this.getRecord(messageId);
if (!record || !('spam' in record)) { if (!record || !(taStorage.FIELD_SPAM in record)) {
this.taLog.log('[deleteSpamField] no spam field found for messageId: ' + messageId); this.taLog.log('[deleteSpamField] no spam field found for messageId: ' + messageId);
return; return;
} }
delete record.spam; delete record[taStorage.FIELD_SPAM];
const remainingFields = Object.keys(record).filter(k => k !== 'v' && k !== 'ts'); const remainingFields = Object.keys(record).filter(k => k !== 'v' && k !== 'ts');
if (remainingFields.length === 0) { if (remainingFields.length === 0) {
this.taLog.log('[deleteSpamField] no remaining fields, deleting entire record'); this.taLog.log('[deleteSpamField] no remaining fields, deleting entire record');
@ -184,12 +187,12 @@ export class taStorage {
try { try {
let key = this._buildKey(messageId); let key = this._buildKey(messageId);
let record = await this.getRecord(messageId) || { v: taStorage.SCHEMA_VERSION }; let record = await this.getRecord(messageId) || { v: taStorage.SCHEMA_VERSION };
if ('summary' in record && !force) { if (taStorage.FIELD_SUMMARY in record && !force) {
this.taLog.log('[writeSummary] summary field already exists, skipping (force=false)'); this.taLog.log('[writeSummary] summary field already exists, skipping (force=false)');
return; return;
} }
let now = Date.now(); let now = Date.now();
record.summary = { text: text, ts: now }; record[taStorage.FIELD_SUMMARY] = { text: text, ts: now };
record.ts = now; record.ts = now;
await messenger.storage.local.set({ [key]: record }); await messenger.storage.local.set({ [key]: record });
} catch (e) { } catch (e) {
@ -209,12 +212,12 @@ export class taStorage {
try { try {
let key = this._buildKey(messageId); let key = this._buildKey(messageId);
let record = await this.getRecord(messageId) || { v: taStorage.SCHEMA_VERSION }; let record = await this.getRecord(messageId) || { v: taStorage.SCHEMA_VERSION };
if ('translation' in record && !force) { if (taStorage.FIELD_TRANSLATION in record && !force) {
this.taLog.log('[writeTranslation] translation field already exists, skipping (force=false)'); this.taLog.log('[writeTranslation] translation field already exists, skipping (force=false)');
return; return;
} }
let now = Date.now(); let now = Date.now();
record.translation = { translated_text: translated_text, lang: lang, ts: now }; record[taStorage.FIELD_TRANSLATION] = { translated_text: translated_text, lang: lang, ts: now };
record.ts = now; record.ts = now;
await messenger.storage.local.set({ [key]: record }); await messenger.storage.local.set({ [key]: record });
} catch (e) { } catch (e) {