/
ColdCore-3.0a8/
ColdCore-3.0a8/src/
new object $help_updates: $help_coldcore;

var $has_name name = ['prop, "Updates", "Updates"];
var $help_node body = <$ctext_frob, [[], #[]]>;
var $help_node index = $help_index_subsystem;
var $help_node links = #[];
var $help_node nolist = 0;
var $help_updates cleanup_time = 2592000;
var $help_updates dirty = 2;
var $help_updates update_list = [[871452000, [$help_theme]]];
var $root created_on = 848537316;
var $root flags = ['variables, 'methods, 'code, 'core];
var $root inited = 1;
var $root managed = [$help_updates];
var $root manager = $help_updates;
var $root trusted = [$help_node];

public method .body() {
    var i, j, out, body;
    
    body = pass();
    if (dirty || (!body)) {
        if (!update_list) {
            out = ["There weren't any recent updates."];
        } else {
            out = ["{dl:"];
            for i in (update_list) {
                j = map j in (i[2]) to ([j.name(), "" + j]).sort();
                out += [((("{dt:" + ($time.format("%d-%b-%Y", i[1]))) + "}{dd:") + (map j in (j) to (strfmt("{link node=%l:%l}", j[2], j[1])).to_english())) + "}"];
            }
            out += ["}"];
        }
        .set_body(out);
        body = pass();
        dirty = 0;
    }
    return body;
};

root method .core_help_updates() {
    dirty = 1;
    update_list = [];
    .set_body([]);
};

public method .touched() {
    var i, j, t;
    
    (> .perms(caller(), 'trusts) <);
    dirty++;
    t = localtime();
    t = (((t[1]) - (t[2])) - (60 * (t[3]))) - (3600 * (t[4]));
    if ((i = t in (update_list.slice(1))))
        update_list = update_list.replace(i, [(update_list[i])[1], ((update_list[i])[2]).setadd(sender())]);
    else
        update_list += [[t, [sender()]]];
    update_list = map i in (update_list || []) to ([i[1], filter j in (i[2]) where ((| j.has_ancestor($help_node) |))]);
    update_list = filter i in (update_list || []) where ((i[2]) && ((i[1]) > (t - cleanup_time)));
};