!752 static new L copies; static class Copy { S machineID; S dataID; long since; S status; } p { load("copies"); makeBot("I'm Jack's Identity Manager."); } synchronized answer { if (match("copy to machine * with data *", s, m) || match("copy to machine *", s, m)) { deleteFrom(m.unq(0)); new Copy c; c.machineID = m.unq(0); c.dataID = l(m.m) > 1 ? m.unq(1) : "#1001471"; c.since = now(); c.status = "copy requested"; copies.add(c); save("copies"); ret "OK"; } if "should machine * run jack" { ret yn(hasWhere(copies, "machineID", m.unq(0))); } if "delete from machine *" { ret deleteFrom(m.unq(0)); } } static S deleteFrom(S machineID) { Copy c = find(copies, "machineID", machineID); if (c == null) ret "not found"; copies.remove(c); save("copies"); ret "OK, deleted"; }