new object $finger_interface: $connection_interface;
var $has_commands local = #[];
var $has_commands remote = #[];
var $has_commands shortcuts = #[];
var $root created_on = 849598071;
var $root flags = ['variables, 'methods, 'code, 'core];
var $root inited = 1;
var $root managed = [$finger_interface];
var $root manager = $finger_interface;
var $root quota_exempt = 1;
public method .connection_starting() {
arg addr, port;
};
public method .parse_line() {
arg line;
var who, out, time, gender;
if ((line.length()) > 0) {
catch any {
who = $user_db.exact_match(line);
out = ["Information on " + (who.name())];
out = [@out, @(who.display_info('no_blanks)).prefix(" ")];
time = who.created_on();
if (who.is($thing))
gender = (who.gender()).pronoun('psc);
else
gender = "It";
out = [@out, ((" " + (who.name())) + " was created on ") + ($time.format("%A %B %d %Y", time)), (((" " + gender) + " is ") + ($time.elapsed(time() - time, 'long))) + " old."];
if (who.is($user))
out = [@out, (((" " + gender) + " has logged ") + ($time.elapsed(who.connected_seconds(), 'long))) + " online."];
if (who.connected())
out = [@out, (" " + (who.name())) + " is currently connected."];
else
out = [@out, ((((" " + (who.name())) + " was last connected at ") + ($time.format("%r", abs(who.connected_at())))) + " ") + ($time.format("%A %B %d %Y", abs(who.connected_at())))];
(.connection()).write(out);
} with {
(.connection()).write("Unable to locate user: " + line);
}
} else {
catch any
(.connection()).write($code_lib.generate_listing($user_db.connected()));
with
(.connection()).write("Error");
}
return 'disconnect;
};