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

Function importRules

shift/shift.ts:1206–1236  ·  view source on GitHub ↗
(jsonData: string, merge = false)

Source from the content-addressed store, hash-verified

1204 if (merge) {
1205 Object.assign(lowdb.data.rules, newRules);
1206 } else {
1207 lowdb.data.rules = newRules;
1208 }
1209 await lowdb.write();
1210 ruleCache.clear();
1211 } else {
1212 // SQLite 模式下逐条导入
1213 for (const [sourceId, rule] of Object.entries(
1214 newRules as { [key: string]: ShiftRule }
1215 )) {
1216 if (!merge) {
1217 // 如果不是合并模式,先删除现有规则
1218 deleteShiftRule(Number(sourceId));
1219 }
1220 saveShiftRule(Number(sourceId), rule);
1221 }
1222 }
1223}
1224// Message listener handler for the plugin system
1225async function shiftMessageListener(
1226 message: any,
1227 options?: { isEdited?: boolean }
1228): Promise<void> {
1229 await handleIncomingMessage(message, options?.isEdited);
1230}
1231class ShiftPlugin extends Plugin {
1232 cleanup(): void {
1233 cleanupGroupBuffers();
1234 BackupManager.cleanup();
1235 ruleCache.clear();
1236 if (sqliteDb) {
1237 sqliteDb.close();
1238 sqliteDb = null;
1239 }

Callers 1

ShiftPluginClass · 0.85

Calls 4

deleteShiftRuleFunction · 0.85
saveShiftRuleFunction · 0.85
writeMethod · 0.80
clearMethod · 0.80

Tested by

no test coverage detected