new object $channel_db: $db; var $channel_db system_channels = ['Login, 'System, 'All]; var $db database = #[['all, ['All, 0, <$parent_lock_frob, [$admin]>, 0, $channel_db, [$channel_db], 0, 0]], ['login, ['Login, 2, 0, 0, $channel_db, [$channel_db], "User login and logout notifications.", 0]], ['system, ['System, 1, 0, 0, $channel_db, [$channel_db], "System wide messages like backup notifications.", 0]]]; var $root created_on = 845244416; var $root flags = ['variables, 'methods, 'code, 'core]; var $root inited = 1; var $root managed = [$channel_db]; var $root manager = $channel_db; var $root trusted = [$channel_ui]; protected method .clean_db() { var x, d; d = #[]; for x in (.database()) { pause(); if ((x[2])[2]) d = d.add(@x); } .set_database(d); }; root method .core_channel_db() { var elem, key, value, d; d = #[]; for elem in (.database()) { refresh(); [key, value] = elem; if (!valid(value[5])) continue; if (filter elem in (value[6]) where (!valid(elem))) continue; d = d.add(key, value); } .set_database(d); }; public method .search() { arg channel; var key; if (type(channel) != 'symbol) key = .strip_key(channel); else key = channel; catch ~keynf, ~matchnf return (> .exact_match(key) <); with throw(~keynf, "Unknown channel: " + channel); }; public method .strip_key() { arg channel; var key; anticipate_assignment(); return lowercase(tostr(channel)).to_symbol(); }; public method .system_channels() { return system_channels; };