diff --git a/exec/automsg.js b/exec/automsg.js index b7d6688ed6ba37fa6fbcf54b1d48efcecccb0325..9f6f9743cc8e6673f9143a886a16e5e3662d4600 100644 --- a/exec/automsg.js +++ b/exec/automsg.js @@ -1,5 +1,13 @@ -// $Id: automsg.js,v 1.3 2020/04/19 03:15:35 rswindell Exp $ -// vi: tabstop=4 +// Auto-message (ala WWIV) + +// modopts.ini [automsg] options: +// prompt +// sysop_prompt +// intro +// header_fmt +// user_fmt +// line_fmt +// max_line_len "use strict"; @@ -7,13 +15,23 @@ require("text.js", 'AutoMsg'); require("userdefs.js", 'UFLAG_W'); require("sbbsdefs.js", 'P_NOABORT'); +var options = load('modopts.js', "automsg"); +if(!options) + options = {}; +if(!options.max_line_len) + options.max_line_len = 76; + function automsg() { - const quote_fmt=" > %.*s\r\n"; + const fmt = options.line_fmt || " > %.79s\r\n"; var automsg = system.data_dir + "msgs/auto.msg"; while(bbs.online && !js.termiated && !console.aborted) { bbs.nodesync(); - console.mnemonics(bbs.text(AutoMsg)); + if(user.is_sysop) + console.mnemonics(options.sysop_prompt + || "\r\nAuto Message - ~Read, ~Write, ~Delete or ~Quit: "); + else + console.mnemonics(options.prompt || bbs.text(AutoMsg)); switch(console.getkeys("RWQD",0)) { case 'R': console.printfile(automsg,P_NOABORT|P_NOATCODES|P_WORDWRAP|P_NOERROR); @@ -25,17 +43,17 @@ function automsg() } bbs.action=NODE_AMSG; bbs.nodesync(); - console.print("\r\nMaximum of 3 lines:\r\n"); - var str = console.getstr(str, 76, K_WRAP|K_MSG); + console.print(options.intro || "\r\nMaximum of 3 lines:\r\n"); + var str = console.getstr(str, options.max_line_len, K_WRAP|K_MSG); if(!str) break; - var buf = format(quote_fmt, 79, str); - str = console.getstr(str, 76, K_WRAP|K_MSG); + var buf = format(fmt, str); + str = console.getstr(str, options.max_line_len, K_WRAP|K_MSG); if(str) { - buf += format(quote_fmt, 79, str); - str = console.getstr(str, 76, K_MSG); + buf += format(fmt, str); + str = console.getstr(str, options.max_line_len, K_MSG); if(str) { - buf += format(quote_fmt, 79, str); + buf += format(fmt, str); } } if(console.yesno(bbs.text(OK))) { @@ -49,17 +67,17 @@ function automsg() alert("Error " + file.error + " opening " + file.name); return; } - var tmp = format("%s #%d", user.alias, user.number); + var tmp = format(options.user_fmt || "%s #%d", user.alias, user.number); if(anon) tmp = bbs.text(Anonymous); - str = format(bbs.text(AutoMsgBy), tmp, system.timestr()); + str = format(options.header_fmt || bbs.text(AutoMsgBy), tmp, system.timestr()); file.write(str); file.write(buf); file.close(); } break; case 'D': - if(user.is_sysop) + if(user.is_sysop && !console.noyes(format(bbs.text(DeleteTextFileQ), automsg))) file_remove(automsg); break; case 'Q':