diff --git a/xtrn/chat_pager/ircbot/pager.js b/xtrn/chat_pager/ircbot/pager.js index 43a7c2b4c5413052c0a748cf56825778ce2670f1..857a309a0746165709dac2abd2939b72b504d218 100644 --- a/xtrn/chat_pager/ircbot/pager.js +++ b/xtrn/chat_pager/ircbot/pager.js @@ -23,7 +23,9 @@ var settings = load_settings(fullpath(this.dir + '../settings.ini')); if (bot_cfg !== null && settings !== null) { - var queue = new Queue(settings.queue.queue_name); + if (!settings.queue.disabled) { + var queue = new Queue(settings.queue.queue_name); + } var timer = new Timer(); var scanner = new Scanner(settings.scanner); var messages = []; @@ -58,11 +60,21 @@ if (bot_cfg !== null && settings !== null) { } } - Bot_Commands["CHAT"] = new Bot_Command(0, false, false); + Bot_Commands["CHAT"] = new Bot_Command(90, false, false); Bot_Commands["CHAT"].usage = get_cmd_prefix() + "!chat [node]"; Bot_Commands["CHAT"].command = function (target, onick, ouh, srv, lbl, cmd) { - var valname = "chat_" + cmd[1]; - queue.write(system.timer, valname); + if (cmd.length > 0) { + var nn = parseInt(cmd[1]); + if (isNaN(nn) || nn < 1 || nn > system.node_list.length) { + return; + } else if (!settings.queue.disabled) { + var valname = "chat_" + cmd[1]; + queue.write(system.timer, valname); + } else { + var valname = system.temp_dir + "syspage_response." + cmd[1]; + file_touch(valname); + } + } } } else { diff --git a/xtrn/chat_pager/page_sysop.js b/xtrn/chat_pager/page_sysop.js index 083466c84ab75a0fe9b6acb0ecd07b949d1d02ce..6159bcb57bef159034b8a9718db0d2d02471cc33 100644 --- a/xtrn/chat_pager/page_sysop.js +++ b/xtrn/chat_pager/page_sysop.js @@ -3,6 +3,8 @@ load('frame.js'); load('progress-bar.js'); load(js.exec_dir + 'lib.js'); +// Flush any existing named values (valname) and return the last one +// (I haven't checked yet, but I assume Queue is FIFO) function get_last_queued_value(queue, valname) { var val, temp_val; while (typeof (temp_val = queue.read(valname)) !== 'undefined') { @@ -11,9 +13,17 @@ function get_last_queued_value(queue, valname) { return val; } +function get_node_response_time(filename) { + return (file_exists(filename) ? (file_date(filename) * 1000) : null); +} + function await_page_response(settings, frame) { - var queue = new Queue(settings.queue.queue_name); - var valname = "chat_" + bbs.node_num; + if (!settings.queue.disabled) { + var queue = new Queue(settings.queue.queue_name); + var valname = "chat_" + bbs.node_num; + } else { + var valname = system.temp_dir + 'syspage_response.' + bbs.node_num; + } var answered = false; var stime = system.timer; var utime = system.timer; @@ -29,10 +39,13 @@ function await_page_response(settings, frame) { progress_bar.set_progress( (((now - stime) * 1000) / settings.terminal.wait_time) * 100 ); - progress_bar.cycle(); utime = now; } - var val = get_last_queued_value(queue, valname); + var val = ( + !settings.queue.disabled + ? get_last_queued_value(queue, valname) + : get_node_response_time(valname) + ); if (typeof val == 'number' && val > stime) answered = true; frame.cycle(); bbs.node_sync();