From 32a736c4421aebcbc23343c00c6413c8b76a4ce8 Mon Sep 17 00:00:00 2001 From: rswindell <> Date: Mon, 9 Jun 2003 23:49:32 +0000 Subject: [PATCH] Example module for displaying Obv/2-formated text/ANSI files, expanding its "standard MCI codes" into text. --- exec/obv2show.js | 120 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 exec/obv2show.js diff --git a/exec/obv2show.js b/exec/obv2show.js new file mode 100644 index 0000000000..84498a53ea --- /dev/null +++ b/exec/obv2show.js @@ -0,0 +1,120 @@ +// obv2show.js + +// Displays an Oblivion/2 text/ANSI menu file, expanding MCI codes + +// usage (from Baja): +// set str <filename> +// exec ?obv2show %s + +f = new File(argv[0]); +if(!f.open("r")) { + print("Error " + f.error + " opening " + f.name); + exit(); +} +text=f.readAll(); +f.close(); + +for(i in text) { + t=text[i]; + + if(t.indexOf('%')>=0) { + + /* search and replace "standard codes" */ + + /* User properties */ + t=t.replace(/%UN/g,user.alias); + t=t.replace(/%RN/g,user.name); + t=t.replace(/%PN/g,user.phone); + t=t.replace(/%AD/g,user.address); + t=t.replace(/%LO/g,user.location); + t=t.replace(/%UC/g,user.note); + t=t.replace(/%UL/g,user.security.level); + t=t.replace(/%FL/g,user.security.level); // File Level + t=t.replace(/%FP/g,user.security.credits); // File Points + t=t.replace(/%UK/g,Math.floor(user.stats.bytes_uploaded/1024)); // Uploaded K + t=t.replace(/%DK/g,Math.floor(user.stats.bytes_downloaded/1024)); // Downloaded K + t=t.replace(/%UP/g,user.stats.files_uploaded); // Uploads + t=t.replace(/%DN/g,user.stats.files_downloaded); // Downloads + t=t.replace(/%PS/g,user.stats.total_posts); // Posts + t=t.replace(/%CS/g,user.stats.total_logons); // Calls + + t=t.replace(/%TL/g,system.secondstr(bbs.time_left).slice(1)); // Time Left + + t=t.replace(/%NF/g,system.stats.files_uploaded_today); // New Files + t=t.replace(/%NP/g,system.stats.messages_posted_today); // New Posts + + t=t.replace(/%CR/g,user.connection); // Connect Rate + + + t=t.replace(/%TT/g,"@TPERD@"); // Daily Time Limit + + t=t.replace(/%LC/g,system.lastuseron); // Last Caller + + t=t.replace(/%TC/g,system.stats.total_logons); // Total Calls + t=t.replace(/%CT/g,system.stats.logons_today); // Calls Today + t=t.replace(/%FT/g,system.stats.files_uploaded_today); + t=t.replace(/%PT/g,system.stats.messages_posted_today); + t=t.replace(/%NT/g,system.stats.new_users_today); + t=t.replace(/%UU/g,user.number); + + t=t.replace(/%BN/g,system.name); // Board Name + t=t.replace(/%SN/g,system.operator); // Sysop Name + t=t.replace(/%DT/g,system.datestr); // Date + t=t.replace(/%TM/g,system.timestr); // Time + + // SS Current Status Screen Library Name + // MS Current Menu Library Name + + t=t.replace(/%PC/g,Math.floor(user.stats.total_logons/user.stats.total_posts)); // Post/Call Ratio + + t=t.replace(/%NR/g,Math.floor(user.stats.files_downloaded/user.stats.files_uploaded)); // U/D Ratio + t=t.replace(/%KR/g,Math.floor(user.stats.bytes_downloaded/user.stats.bytes_uploaded)); // U/D K Ratio + + t=t.replace(/%LD/g,user.stats.laston_date); // Last On Date + + + t=t.replace(/%CA/g,bbs.curgrp); // Current Area + t=t.replace(/%CB/g,bbs.cursub); // Current Base + + // DU Days until expiration + + t=t.replace(/%NN/g,bbs.node_num); // Node Number + + t=t.replace(/%VN/g,system.version); // Version Number + t=t.replace(/%VD/g,system.compiled_when); // Version Date + + t=t.replace(/%TF/g,system.stats.total_files); // Total Files + t=t.replace(/%TP/g,system.stats.total_messsages); // Total Posts + + t=t.replace(/%CF/g,bbs.curlib); // Current File Conference + t=t.replace(/%CM/g,bbs.curgrp); // Current Message Conference + + // CE Message # (Only activated when used with the Nx message newscanning commands) + + + /*******************/ + /* Console control */ + /*******************/ + + if(t.indexOf("%PA")>0) { + t=t.replace(/%PA/g,""); // Pauses the screen + console.pause(); + } + if(t.indexOf("%PF")>0) { + t=t.replace(/%PF/g,""); // Turns Screen Pausing Off + bbs.sys_status|=SS_PAUSEOFF; + } + if(t.indexOf("%PO")>0) { + t=t.replace(/%PO/g,""); // Turns Screen Pausing Back On + bbs.sys_status&=~SS_PAUSEOFF; + } + if(t.indexOf("%UA")>0) { + t=t.replace(/%UA/g,""); // Makes anything below it unabortable + bbs.sys_status&=~SS_ABORT; + } + + } + + /* print line */ + console.putmsg(t + "\r\n"); +} -- GitLab