MCPcopy Create free account
hub / github.com/TeleBoxOrg/TeleBox_Plugins / saveShiftRule

Function saveShiftRule

shift/shift.ts:345–379  ·  view source on GitHub ↗
(sourceId: number, rule: ShiftRule)

Source from the content-addressed store, hash-verified

343 INSERT OR REPLACE INTO shift_rules
344 (source_id, target_id, options, target_type, paused, created_at, filters)
345 VALUES (?, ?, ?, ?, ?, ?, ?)
346 `);
347
348 stmt.run(
349 sourceId,
350 rule.target_id,
351 JSON.stringify(rule.options),
352 rule.target_type,
353 rule.paused ? 1 : 0,
354 rule.created_at,
355 JSON.stringify(rule.filters)
356 );
357
358 ruleCache.set(sourceId, { rule, timestamp: Date.now() });
359 return true;
360 }
361 return false;
362 } catch (error) {
363 console.error(`[SHIFT] Error saving rule:`, error);
364 return false;
365 }
366}
367
368// Delete shift rule
369function deleteShiftRule(sourceId: number): boolean {
370 try {
371 if (useLowdb && lowdb) {
372 // 从 lowdb 删除
373 delete lowdb.data.rules[String(sourceId)];
374 lowdb.write();
375 ruleCache.delete(sourceId);
376 return true;
377 } else if (sqliteDb) {
378 // 从 SQLite 删除
379 const stmt = sqliteDb.prepare(
380 "DELETE FROM shift_rules WHERE source_id = ?"
381 );
382 stmt.run(sourceId);

Callers 2

importRulesFunction · 0.85
ShiftPluginClass · 0.85

Calls 4

writeMethod · 0.80
runMethod · 0.80
errorMethod · 0.80
setMethod · 0.45

Tested by

no test coverage detected