Compare commits
No commits in common. "bf47e44186808c818e07c1350abaf10c524ceef0" and "1ccd02575638bc7fd6eef8e295fcc0d78b0765f2" have entirely different histories.
bf47e44186
...
1ccd025756
@ -1,8 +1,7 @@
|
|||||||
'use strict';
|
|
||||||
require('ansitex/load/defs.js','ANSITEX_HOME'); // ANSITEX definitions
|
require('ansitex/load/defs.js','ANSITEX_HOME'); // ANSITEX definitions
|
||||||
|
|
||||||
// Array of page owners
|
// Array of page owners
|
||||||
var pageowners = [];
|
pageowners = [];
|
||||||
|
|
||||||
// String repeat.
|
// String repeat.
|
||||||
if (!String.prototype.repeat) {
|
if (!String.prototype.repeat) {
|
||||||
@ -82,8 +81,10 @@ function ans2bin(ansi,frame) {
|
|||||||
* @note bbs.atcodes() cannot process modifiers, so this function is a replacement.
|
* @note bbs.atcodes() cannot process modifiers, so this function is a replacement.
|
||||||
*/
|
*/
|
||||||
function atcode(field,length,pad,context) {
|
function atcode(field,length,pad,context) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
pad = pad ? pad : ' ';
|
pad = pad ? pad : ' ';
|
||||||
var result = {};
|
var result = '';
|
||||||
var args = [];
|
var args = [];
|
||||||
|
|
||||||
if (field.search(/:/)) {
|
if (field.search(/:/)) {
|
||||||
@ -91,44 +92,27 @@ function atcode(field,length,pad,context) {
|
|||||||
field = args.shift();
|
field = args.shift();
|
||||||
}
|
}
|
||||||
|
|
||||||
log(LOG_DEBUG,'Field:'+field,'Args:'+JSON.stringify(args));
|
//log(LOG_DEBUG,'Field:'+field,'Args:'+JSON.stringify(args));
|
||||||
|
|
||||||
switch(field) {
|
switch(field) {
|
||||||
// Work out the key for the message area
|
// Get the ECHOAREA FTN AREA_TAG
|
||||||
case 'msg_area_key':
|
case 'msg_area_areatag':
|
||||||
var index = args.shift();
|
if (typeof context !== 'object') {
|
||||||
|
log(LOG_ERROR,'Unable to render ['+field+'], no context provided');
|
||||||
log(LOG_DEBUG,'Context:'+context+', Index:'+index);
|
break;
|
||||||
|
|
||||||
// If the message area exists, we'll return a key and a index
|
|
||||||
if (new MsgAreas().getArea(context+index.padStart(2,'0'))) {
|
|
||||||
result.value = index;
|
|
||||||
result.key = '1'+context+index.padStart(2,'0');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
result = context.msgbase.cfg.area_tag;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// Get the ECHOAREA Internal Code
|
// Get the ECHOAREA Description
|
||||||
case 'msg_area_tag':
|
case 'msg_area_desc':
|
||||||
var index = args.shift();
|
if (typeof context !== 'object') {
|
||||||
var area = new MsgAreas().getArea(context+index.padStart(2,'0'));
|
log(LOG_ERROR,'Unable to render ['+field+'], no context provided');
|
||||||
|
break;
|
||||||
log(LOG_DEBUG,'Context:'+context+', Index:'+index+', Area:'+JSON.stringify(area));
|
}
|
||||||
|
|
||||||
// If the message area exists
|
|
||||||
if (area)
|
|
||||||
result.value = area.code.toUpperCase();
|
|
||||||
|
|
||||||
break;
|
|
||||||
|
|
||||||
// Get the ECHOAREA Name
|
|
||||||
case 'msg_area_name':
|
|
||||||
var index = args.shift();
|
|
||||||
var area = new MsgAreas().getArea(context+index.padStart(2,'0'));
|
|
||||||
|
|
||||||
if (area)
|
|
||||||
result.value = area.area_name;
|
|
||||||
|
|
||||||
|
result = context.msgbase.cfg.description;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// Oldest message in msgarea
|
// Oldest message in msgarea
|
||||||
@ -141,7 +125,7 @@ function atcode(field,length,pad,context) {
|
|||||||
|
|
||||||
var x = context.list_tagged[0];
|
var x = context.list_tagged[0];
|
||||||
|
|
||||||
result.value = x ? x.date : '';
|
result = x ? x.date : '';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'msg_area_msgoldest_page':
|
case 'msg_area_msgoldest_page':
|
||||||
@ -164,7 +148,7 @@ function atcode(field,length,pad,context) {
|
|||||||
|
|
||||||
var x = context.list_tagged[context.list_tagged.length-1];
|
var x = context.list_tagged[context.list_tagged.length-1];
|
||||||
|
|
||||||
result.value = x ? x.date : '';
|
result = x ? x.date : '';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'msg_area_msgnewest_page':
|
case 'msg_area_msgnewest_page':
|
||||||
@ -186,7 +170,7 @@ function atcode(field,length,pad,context) {
|
|||||||
|
|
||||||
var x = context.newMsgs();
|
var x = context.newMsgs();
|
||||||
|
|
||||||
result.value = x.length ? x.shift().date : '';
|
result = x.length ? x.shift().date : '';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'msg_area_msgunread_page':
|
case 'msg_area_msgunread_page':
|
||||||
@ -207,7 +191,7 @@ function atcode(field,length,pad,context) {
|
|||||||
|
|
||||||
var x = context.newMsgsToMe();
|
var x = context.newMsgsToMe();
|
||||||
|
|
||||||
result.value = x.length > 1 ? x[1].date : '';
|
result = x.length > 1 ? x[1].date : '';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'msg_area_msgtome_page':
|
case 'msg_area_msgtome_page':
|
||||||
@ -231,7 +215,7 @@ function atcode(field,length,pad,context) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
result.value = ''+context.newMsgs().length;
|
result = ''+context.newMsgs().length;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// Count of unread messages to me
|
// Count of unread messages to me
|
||||||
@ -241,7 +225,7 @@ function atcode(field,length,pad,context) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
result.value = ''+(context.newMsgsToMe().length > 1 ? context.newMsgsToMe().length-1 : 0);
|
result = ''+(context.newMsgsToMe().length > 1 ? context.newMsgsToMe().length-1 : 0);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// Is this message area in my new scan list
|
// Is this message area in my new scan list
|
||||||
@ -251,7 +235,7 @@ function atcode(field,length,pad,context) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
result.value = (context.getUserStats().scan_ptr & SCAN_CFG_TOYOU) ? 'YES' : 'NO';
|
result = (context.getUserStats().scan_ptr & SCAN_CFG_TOYOU) ? 'YES' : 'NO';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// Is this message area in my new scan list
|
// Is this message area in my new scan list
|
||||||
@ -261,7 +245,7 @@ function atcode(field,length,pad,context) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
result.value = ''+context.list_untagged.length;
|
result = ''+context.list_untagged.length;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// Get the ECHOAREA Total Number of Messages
|
// Get the ECHOAREA Total Number of Messages
|
||||||
@ -271,7 +255,7 @@ function atcode(field,length,pad,context) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
result.value = ''+context.msgbase.total_msgs;
|
result = ''+context.msgbase.total_msgs;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// Get the ECHOAREA Group Name
|
// Get the ECHOAREA Group Name
|
||||||
@ -281,29 +265,29 @@ function atcode(field,length,pad,context) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
result.value = context.zone_name;
|
result = context.zone_name;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'nodeid':
|
case 'nodeid':
|
||||||
result.value = getNodeID();
|
result = getNodeID();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
result.value = (typeof bbs === 'undefined') ? '*'.repeat(Math.abs(length)) : bbs.atcode(field+(args.length ? ':'+args : ''));
|
result = (typeof bbs === 'undefined') ? '*'.repeat(Math.abs(length)) : bbs.atcode(field+(args.length ? ':'+args : ''));
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((result.value === null) || (result.value === undefined))
|
if ((result === null) || (typeof result === 'undefined'))
|
||||||
result.value = '';
|
result = '';
|
||||||
|
|
||||||
length = length ? length : result.value.length;
|
length = length ? length : result.length;
|
||||||
|
|
||||||
//log(LOG_DEBUG,' - result length ['+result.length+'] desired ('+length+')');
|
//log(LOG_DEBUG,' - result length ['+result.length+'] desired ('+length+')');
|
||||||
if (result.value.length < Math.abs(length))
|
if (result.length < Math.abs(length))
|
||||||
result.value = (length < 0) ? padright(result.value,Math.abs(length),pad) : padleft(result.value,length,pad);
|
result = (length < 0) ? padright(result,Math.abs(length),pad) : padleft(result,length,pad);
|
||||||
else if (result.value.length > Math.abs(length))
|
else if (result.length > Math.abs(length))
|
||||||
result.value = result.value.substr(0,Math.abs(length));
|
result = result.substr(0,Math.abs(length));
|
||||||
|
|
||||||
log(LOG_DEBUG,'* ATCODE ['+field+'] ('+length+'|"'+pad+'") returns ['+result.value+'] key ['+result.key+']');
|
log(LOG_DEBUG,'* ATCODE ['+field+'] ('+length+'|"'+pad+'") returns ['+result+']');
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
137
load/msgbases.js
137
load/msgbases.js
@ -12,7 +12,6 @@ function MsgAreas() {
|
|||||||
var zone_id;
|
var zone_id;
|
||||||
var zone_name;
|
var zone_name;
|
||||||
var ma;
|
var ma;
|
||||||
var cfg = [];
|
|
||||||
|
|
||||||
// Load the message areas
|
// Load the message areas
|
||||||
for (var g in msg_area.grp_list) {
|
for (var g in msg_area.grp_list) {
|
||||||
@ -23,7 +22,6 @@ function MsgAreas() {
|
|||||||
ma.group_id = g;
|
ma.group_id = g;
|
||||||
ma.sub_id = a;
|
ma.sub_id = a;
|
||||||
|
|
||||||
// Work out the zone by the FTN address of the area
|
|
||||||
if (msg_area.grp_list[g].name.indexOf(':') === -1) {
|
if (msg_area.grp_list[g].name.indexOf(':') === -1) {
|
||||||
// If the sub is enabled for FTN, and the zone < 9999, then we'll us that if zone_id is undefined
|
// If the sub is enabled for FTN, and the zone < 9999, then we'll us that if zone_id is undefined
|
||||||
if ((msg_area.grp_list[g].sub_list[a].settings & SUB_FIDO) && msg_area.grp_list[g].sub_list[a].fidonet_addr) {
|
if ((msg_area.grp_list[g].sub_list[a].settings & SUB_FIDO) && msg_area.grp_list[g].sub_list[a].fidonet_addr) {
|
||||||
@ -31,49 +29,22 @@ function MsgAreas() {
|
|||||||
if ((x > 0) && (x < 9999)) {
|
if ((x > 0) && (x < 9999)) {
|
||||||
zone_id = x.padStart(4,'0');
|
zone_id = x.padStart(4,'0');
|
||||||
zone_name = msg_area.grp_list[g].name;
|
zone_name = msg_area.grp_list[g].name;
|
||||||
|
|
||||||
} else {
|
|
||||||
zone_id = undefined;
|
|
||||||
zone_name = undefined;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
|
||||||
zone_id = undefined;
|
|
||||||
zone_name = undefined;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Work out the zone by the name, where name is zone_id:name
|
|
||||||
} else {
|
} else {
|
||||||
zone_id = msg_area.grp_list[g].name.split(':')[0];
|
zone_id = msg_area.grp_list[g].name.split(':')[0];
|
||||||
zone_name = msg_area.grp_list[g].name.split(':')[1];
|
zone_name = msg_area.grp_list[g].name.split(':')[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (zone_id) {
|
if (zone_id) {
|
||||||
if (cfg[zone_id] === undefined) {
|
|
||||||
log(LOG_DEBUG,'Opening internal:'+FRAMES_MSG_BASE+' to work out subs for zone: '+zone_id);
|
|
||||||
var internal = new MsgArea();
|
|
||||||
internal.code = FRAMES_MSG_BASE;
|
|
||||||
|
|
||||||
var conf = internal.get('1'+zone_id+'99999a');
|
|
||||||
|
|
||||||
// @todo Quick hack for scripts
|
|
||||||
if (SESSION_EXT === undefined)
|
|
||||||
var SESSION_EXT = 'tex';
|
|
||||||
|
|
||||||
if (conf !== undefined)
|
|
||||||
cfg[zone_id] = conf.content[SESSION_EXT].content.map(function(item) { return item.toLowerCase(); });
|
|
||||||
else
|
|
||||||
cfg[zone_id] = [];
|
|
||||||
}
|
|
||||||
|
|
||||||
ma.zone_id = zone_id;
|
ma.zone_id = zone_id;
|
||||||
ma.zone_name = zone_name;
|
ma.zone_name = zone_name;
|
||||||
ma.code = msg_area.grp_list[g].sub_list[a].code;
|
|
||||||
|
|
||||||
// Our area_id can be embedded in the name of the area
|
|
||||||
if (msg_area.grp_list[g].sub_list[a].name.indexOf(':') !== -1) {
|
if (msg_area.grp_list[g].sub_list[a].name.indexOf(':') !== -1) {
|
||||||
var sublist = msg_area.grp_list[g].sub_list[a].name.split(':');
|
var sublist = msg_area.grp_list[g].sub_list[a].name.split(':');
|
||||||
ma.area_id = sublist[0];
|
ma.area_id = sublist[0];
|
||||||
|
ma.area_name = sublist[1];
|
||||||
|
|
||||||
/*
|
/*
|
||||||
writeln(' code:'+ma.code);
|
writeln(' code:'+ma.code);
|
||||||
@ -81,28 +52,10 @@ function MsgAreas() {
|
|||||||
writeln(' pageprefix:'+ma.page_prefix)
|
writeln(' pageprefix:'+ma.page_prefix)
|
||||||
writeln();
|
writeln();
|
||||||
*/
|
*/
|
||||||
log(LOG_DEBUG,'Hard set index to ['+ma.area_id+'] for: '+ma.code);
|
|
||||||
|
|
||||||
// Otherwise we get our area_id from the configuration - page 999 of the zone
|
|
||||||
} else {
|
|
||||||
var index = (cfg[zone_id].indexOf(msg_area.grp_list[g].sub_list[a].code)+1).toString().padStart(2,'0');
|
|
||||||
|
|
||||||
// Make sure that index isnt already defined
|
|
||||||
if (this.areas.filter(function(item) { return (item.zone_id === zone_id) && (item.area_id === index); }).length) {
|
|
||||||
log(LOG_ERROR,'! ERROR: Prefix ['+index+'] already defined in ['+zone_id+'], ignoring ['+ma.code+']');
|
|
||||||
|
|
||||||
} else if ((cfg[zone_id] !== undefined) && cfg[zone_id].length) {
|
|
||||||
if (index === '00')
|
|
||||||
ma.area_id = undefined;
|
|
||||||
else
|
|
||||||
ma.area_id = index;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ma.area_name = msg_area.grp_list[g].sub_list[a].description;
|
|
||||||
|
|
||||||
this.areas.push(ma);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.areas.push(ma);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -145,14 +98,14 @@ function MsgAreas() {
|
|||||||
if (area === undefined)
|
if (area === undefined)
|
||||||
return undefined;
|
return undefined;
|
||||||
|
|
||||||
return (((area.length === 6) && (NUMERIC_REGEX.test(area)))
|
return this.areas.filter(function(x) {
|
||||||
? this.areas.filter(function(x) {
|
// If the area is a 6 digits, then its a page prefix, otherwise its an area code name
|
||||||
return x.page_prefix === area;
|
if ((area.length === 6) && (NUMERIC_REGEX.test(area)))
|
||||||
})
|
return x.page_prefix === area;
|
||||||
|
|
||||||
: this.areas.filter(function(x) {
|
else
|
||||||
return x.code === area;
|
return x.code === area;
|
||||||
})).pop();
|
}).pop();
|
||||||
}
|
}
|
||||||
|
|
||||||
// @todo review
|
// @todo review
|
||||||
@ -177,18 +130,13 @@ function MsgArea() {
|
|||||||
this.area_id = undefined; // Sub Area ID for this message area, eg: 01
|
this.area_id = undefined; // Sub Area ID for this message area, eg: 01
|
||||||
this.area_name = undefined; // Sub Area Name for this message area, eg: CHAT
|
this.area_name = undefined; // Sub Area Name for this message area, eg: CHAT
|
||||||
this.group_id = undefined; // SBBS Message Group ID
|
this.group_id = undefined; // SBBS Message Group ID
|
||||||
this.__properties__ = {
|
this.sub_id = undefined; // SBBS Message Sub ID
|
||||||
code: undefined, // SBBS Message Sub Internal Code
|
|
||||||
};
|
|
||||||
|
|
||||||
// MSG Base Code
|
// MSG Base Code
|
||||||
Object.defineProperty(this,'code',{
|
Object.defineProperty(this,'code',{
|
||||||
get: function() {
|
get: function() {
|
||||||
return this.__properties__.code;
|
//writeln('group_id:'+this.group_id+' sub_id:'+this.sub_id);
|
||||||
},
|
return msg_area.grp_list[this.group_id].sub_list[this.sub_id].code;
|
||||||
|
|
||||||
set: function(code) {
|
|
||||||
this.__properties__.code = code;
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -202,7 +150,7 @@ function MsgArea() {
|
|||||||
msgbase = this.msgbase;
|
msgbase = this.msgbase;
|
||||||
|
|
||||||
} else if (this.managed) {
|
} else if (this.managed) {
|
||||||
msgbase = new MsgBase(FRAMES_MSG_BASE);
|
msgbase = new MsgAreas().getArea(FRAMES_MSG_BASE).msgbase;
|
||||||
regex = this.page_prefix_regex;
|
regex = this.page_prefix_regex;
|
||||||
|
|
||||||
} else
|
} else
|
||||||
@ -272,15 +220,16 @@ function MsgArea() {
|
|||||||
Object.defineProperty(this,'last_tagged_message',{
|
Object.defineProperty(this,'last_tagged_message',{
|
||||||
get: function() {
|
get: function() {
|
||||||
var last_tag = this.frames.sort(function(a,b) {
|
var last_tag = this.frames.sort(function(a,b) {
|
||||||
return (a.when_imported_time !== b.when_imported_time)
|
if (a.when_imported_time === b.when_imported_time)
|
||||||
? a.when_imported_time > b.when_imported_time
|
return a.number > b.number
|
||||||
: a.number > b.number;
|
else
|
||||||
|
return (a.when_imported_time > b.when_imported_time);
|
||||||
}).pop();
|
}).pop();
|
||||||
|
|
||||||
if (last_tag === undefined)
|
if (last_tag === undefined)
|
||||||
return undefined;
|
return undefined;
|
||||||
|
|
||||||
var msgbase = new MsgBase(FRAMES_MSG_BASE);
|
var msgbase = new MsgAreas().getArea(FRAMES_MSG_BASE).msgbase;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (msgbase.open()) {
|
if (msgbase.open()) {
|
||||||
@ -464,48 +413,6 @@ function MsgArea() {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// Get message header for page
|
|
||||||
MsgArea.prototype.get = function(page) {
|
|
||||||
if (this.code !== FRAMES_MSG_BASE)
|
|
||||||
return undefined;
|
|
||||||
|
|
||||||
var msgbase = this.msgbase;
|
|
||||||
var msgs = [];
|
|
||||||
|
|
||||||
try {
|
|
||||||
if (msgbase.open()) {
|
|
||||||
log(LOG_DEBUG,'Looking for ['+page+'] in ['+this.code+']');
|
|
||||||
|
|
||||||
var index = msgbase
|
|
||||||
.get_all_msg_headers();
|
|
||||||
|
|
||||||
for (var x in index)
|
|
||||||
if ((index[x].from === 'SYSTEM') && (index[x].to === page))
|
|
||||||
msgs.push(index[x]);
|
|
||||||
|
|
||||||
if (msgs.length) {
|
|
||||||
var msg = msgs.sort(function(a,b) {
|
|
||||||
return (a.when_imported_time !== b.when_imported_time)
|
|
||||||
? a.when_imported_time > b.when_imported_time
|
|
||||||
: a.number > b.number;
|
|
||||||
}).pop();
|
|
||||||
|
|
||||||
return this.getContent(msg.number);
|
|
||||||
|
|
||||||
} else {
|
|
||||||
return undefined;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
} catch (e) {
|
|
||||||
log(LOG_ERROR,this.code+' cannot be opened (frames):'+e.message);
|
|
||||||
|
|
||||||
return undefined;
|
|
||||||
}
|
|
||||||
|
|
||||||
return content;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get frame content
|
// Get frame content
|
||||||
MsgArea.prototype.getContent = function(id) {
|
MsgArea.prototype.getContent = function(id) {
|
||||||
// @todo If this is for a echomail/netmail content, then we need to switch message bases
|
// @todo If this is for a echomail/netmail content, then we need to switch message bases
|
||||||
@ -522,10 +429,8 @@ function MsgArea() {
|
|||||||
// Our messages are terminated with FRAMES_EOF_MARKER
|
// Our messages are terminated with FRAMES_EOF_MARKER
|
||||||
var regex = new RegExp('^(.*)'+FRAMES_EOF_MARKER);
|
var regex = new RegExp('^(.*)'+FRAMES_EOF_MARKER);
|
||||||
//log(LOG_DEBUG,'MARKER:'+regex.test(raw));
|
//log(LOG_DEBUG,'MARKER:'+regex.test(raw));
|
||||||
if (! regex.test(raw)) {
|
if (! regex.test(raw))
|
||||||
msgbase.close();
|
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
|
||||||
|
|
||||||
var regex = new RegExp(FRAMES_EOF_MARKER+'[.\\s\\S]*$');
|
var regex = new RegExp(FRAMES_EOF_MARKER+'[.\\s\\S]*$');
|
||||||
|
|
||||||
@ -735,7 +640,7 @@ function MsgArea() {
|
|||||||
*/
|
*/
|
||||||
MsgArea.prototype.tag_msgs = function() {
|
MsgArea.prototype.tag_msgs = function() {
|
||||||
var msgs = this.untagged;
|
var msgs = this.untagged;
|
||||||
var msgbase = new MsgBase(FRAMES_MSG_BASE);
|
var msgbase = new MsgAreas().getArea(FRAMES_MSG_BASE).msgbase;
|
||||||
var page_next = this.page_next;
|
var page_next = this.page_next;
|
||||||
|
|
||||||
writeln('* We have '+msgs.length+' messages to tag, starting at '+page_next);
|
writeln('* We have '+msgs.length+' messages to tag, starting at '+page_next);
|
||||||
|
38
load/page.js
38
load/page.js
@ -145,7 +145,6 @@ function Page(debug) {
|
|||||||
|
|
||||||
key: [], // Key actions
|
key: [], // Key actions
|
||||||
raw: {}, // Page raw content for each session type
|
raw: {}, // Page raw content for each session type
|
||||||
date: undefined, // Date of frame
|
|
||||||
};
|
};
|
||||||
|
|
||||||
this.__defaults__ = {
|
this.__defaults__ = {
|
||||||
@ -285,20 +284,6 @@ function Page(debug) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
Object.defineProperty(this,'date',{
|
|
||||||
get: function() {
|
|
||||||
if (this.__properties__.date !== undefined)
|
|
||||||
return strftime("%a, %d %b %Y %H:%M:%S %z",this.__properties__.date);
|
|
||||||
},
|
|
||||||
|
|
||||||
set: function(int) {
|
|
||||||
if (typeof int !== 'number')
|
|
||||||
throw new Error('DATE must be a epoch');
|
|
||||||
|
|
||||||
return this.__properties__.date = int;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
Page.prototype.__defineGetter__('dimensions',function() {
|
Page.prototype.__defineGetter__('dimensions',function() {
|
||||||
return this.__properties__.width+' X '+this.__properties__.height;
|
return this.__properties__.width+' X '+this.__properties__.height;
|
||||||
});
|
});
|
||||||
@ -375,7 +360,7 @@ function Page(debug) {
|
|||||||
this.__properties__.name = object;
|
this.__properties__.name = object;
|
||||||
|
|
||||||
if ((''+this.__properties__.name.frame).length > FRAME_PAGE_LENGTH-1-FRAME_ATTR_LENGTH)
|
if ((''+this.__properties__.name.frame).length > FRAME_PAGE_LENGTH-1-FRAME_ATTR_LENGTH)
|
||||||
throw new Error('Pagenum too large - '+(''+this.__properties__.name.frame).length+'|'+(FRAME_PAGE_LENGTH-1-FRAME_ATTR_LENGTH));
|
throw new Error('Pagenum too large');
|
||||||
|
|
||||||
switch (SESSION_EXT) {
|
switch (SESSION_EXT) {
|
||||||
case 'tex':
|
case 'tex':
|
||||||
@ -507,7 +492,7 @@ function Page(debug) {
|
|||||||
// Insert our *_field data (if it is set)
|
// Insert our *_field data (if it is set)
|
||||||
function insert_fields(fields,build) {
|
function insert_fields(fields,build) {
|
||||||
for (var i in fields) {
|
for (var i in fields) {
|
||||||
log(LOG_DEBUG,'|-- Adding:'+fields[i].name+', with value:'+fields[i].value);
|
//log(LOG_DEBUG,'|-- Adding:'+fields[i].name+', with value:'+fields[i].value);
|
||||||
|
|
||||||
var content = fields[i].value.split('');
|
var content = fields[i].value.split('');
|
||||||
|
|
||||||
@ -545,20 +530,12 @@ function Page(debug) {
|
|||||||
* Build in our dynamic_fields that can be populated automatically
|
* Build in our dynamic_fields that can be populated automatically
|
||||||
*/
|
*/
|
||||||
this.build_system_fields = function(context) {
|
this.build_system_fields = function(context) {
|
||||||
log(LOG_DEBUG,'Building system fields with context:'+context);
|
|
||||||
var that = this;
|
var that = this;
|
||||||
|
|
||||||
var f = this.dynamic_fields.filter(function(item) { return item.value === undefined; });
|
var f = this.dynamic_fields.filter(function(item) { return item.value === undefined; });
|
||||||
if (f.length) {
|
if (f.length) {
|
||||||
f.forEach(function(field,key) {
|
f.forEach(function(field) {
|
||||||
log(LOG_DEBUG,'Key is:'+key);
|
that.dynamic_field(field.name,atcode(field.name,field.length,field.pad,context));
|
||||||
var ac = atcode(field.name,field.length,field.pad,context);
|
|
||||||
that.dynamic_field(field.name,ac.value);
|
|
||||||
|
|
||||||
if (ac.key) {
|
|
||||||
log(LOG_DEBUG,'ATCODE sets key for ['+field.name+'] using ['+ac.key+']');
|
|
||||||
that.__properties__.key[ac.value] = ac.key;
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1327,7 +1304,7 @@ function Page(debug) {
|
|||||||
* Save the frame to the message base
|
* Save the frame to the message base
|
||||||
*/
|
*/
|
||||||
this.save = function() {
|
this.save = function() {
|
||||||
var msgbase = new MsgBase(FRAMES_MSG_BASE);
|
var msgbase = new MsgAreas().getArea(FRAMES_MSG_BASE).msgbase;
|
||||||
|
|
||||||
if (! msgbase.open()) {
|
if (! msgbase.open()) {
|
||||||
log(LOG_ERROR,'! Message Base cannot be opened (save): ['+msgbase.error+']');
|
log(LOG_ERROR,'! Message Base cannot be opened (save): ['+msgbase.error+']');
|
||||||
@ -1338,7 +1315,7 @@ function Page(debug) {
|
|||||||
to: this.name,
|
to: this.name,
|
||||||
from: 'SYSTEM',
|
from: 'SYSTEM',
|
||||||
tags: this.name,
|
tags: this.name,
|
||||||
date: this.date,
|
date: strftime("%a, %d %b %Y, %I:%M:%S %Z",this.date),
|
||||||
subject: 'Content',
|
subject: 'Content',
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1352,8 +1329,9 @@ function Page(debug) {
|
|||||||
|
|
||||||
var body = LZString.compressToBase64(JSON.stringify(page))+FRAMES_EOF_MARKER;
|
var body = LZString.compressToBase64(JSON.stringify(page))+FRAMES_EOF_MARKER;
|
||||||
|
|
||||||
if (! msgbase.save_msg(hdr,body))
|
if (! msgbase.save_msg(hdr,body)) {
|
||||||
log(LOG_ERROR,' ! Error saving frame: ['+this.name.toString()+']');
|
log(LOG_ERROR,' ! Error saving frame: ['+this.name.toString()+']');
|
||||||
|
}
|
||||||
|
|
||||||
msgbase.close();
|
msgbase.close();
|
||||||
return true;
|
return true;
|
||||||
|
23
main.js
23
main.js
@ -488,10 +488,6 @@ while (bbs.online) {
|
|||||||
if (read === '*') {
|
if (read === '*') {
|
||||||
log(LOG_DEBUG,'- MODE_BL: Abort ['+cmd+'])');
|
log(LOG_DEBUG,'- MODE_BL: Abort ['+cmd+'])');
|
||||||
|
|
||||||
// 695 = NodeActionMain
|
|
||||||
bbs.replace_text(695,'\1h%s \1nViewing \1h*'+so.page.name.toString()+'#\1n');
|
|
||||||
bbs.node_action=NODE_MAIN;
|
|
||||||
|
|
||||||
action = mode = null;
|
action = mode = null;
|
||||||
cmd = '';
|
cmd = '';
|
||||||
so.cursorOff();
|
so.cursorOff();
|
||||||
@ -1019,22 +1015,7 @@ while (bbs.online) {
|
|||||||
// @todo consider how we do mail security.
|
// @todo consider how we do mail security.
|
||||||
|
|
||||||
// Echoarea mail summary
|
// Echoarea mail summary
|
||||||
if (/^1[0-9]{4}1$/.test(next_page.frame)) {
|
if (/^1[0-9]{6}1$/.test(next_page.frame)) {
|
||||||
log(LOG_DEBUG,'- ACTION_GOTO - load echoarea list: ['+next_page.frame.toString().slice(1,5)+']');
|
|
||||||
|
|
||||||
if (! so.get(new PageObject({frame: next_page.frame, index: next_page.index}))) {
|
|
||||||
so.baselineSend('ERR_ROUTE',false);
|
|
||||||
action = mode = null;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
// @todo trigger page load, it isnt loaded yet so build_system_fields does nothing
|
|
||||||
so.page.build_system_fields(next_page.frame.toString().slice(1,5));
|
|
||||||
|
|
||||||
next_page = null;
|
|
||||||
|
|
||||||
// Echoarea list
|
|
||||||
} else if (/^1[0-9]{6}1$/.test(next_page.frame)) {
|
|
||||||
log(LOG_DEBUG,'- ACTION_GOTO - load echoarea summary: ['+next_page.frame+']');
|
log(LOG_DEBUG,'- ACTION_GOTO - load echoarea summary: ['+next_page.frame+']');
|
||||||
|
|
||||||
var ma = new MsgAreas();
|
var ma = new MsgAreas();
|
||||||
@ -1157,8 +1138,6 @@ while (bbs.online) {
|
|||||||
cf = null;
|
cf = null;
|
||||||
|
|
||||||
log(LOG_DEBUG,'- ACTION_RELOAD: ['+(next_page ? pageStr(next_page) : '')+']');
|
log(LOG_DEBUG,'- ACTION_RELOAD: ['+(next_page ? pageStr(next_page) : '')+']');
|
||||||
|
|
||||||
// If we have configured debug_mode auto login, jump to the debug_mode page
|
|
||||||
if (debug_mode && so.page.name.toString() === '98b')
|
if (debug_mode && so.page.name.toString() === '98b')
|
||||||
so.page.key[1] = debug_mode.split('/')[2];
|
so.page.key[1] = debug_mode.split('/')[2];
|
||||||
|
|
||||||
|
2
text/1a
2
text/1a
@ -1 +1 @@
|
|||||||
{"version":2,"cost":0,"key":[null,11,2,null,null,null,null,97,5162,516],"dynamic_fields":[{"name":"DATE:%Y-%b-%d","length":11,"pad":" ","x":30,"y":6},{"name":"nodeid","length":8,"pad":" ","x":33,"y":7}]}
|
{"version":2,"cost":0,"key":[null,11,2,null,null,null,null,null,5162,516],"dynamic_fields":[{"name":"DATE:%Y-%b-%d","length":11,"pad":" ","x":30,"y":6},{"name":"nodeid","length":8,"pad":" ","x":33,"y":7}]}
|
||||||
|
BIN
text/tex/1a.ans
BIN
text/tex/1a.ans
Binary file not shown.
@ -1 +1 @@
|
|||||||
7ccks3w{#35 ,l|l|,,7k#37k#55jjj 45j 55 kj/|5ho <=$,5uzzzpquzpu5 /./*,//upzpquzp5 Videotex *0_To get back here DATE........... NODE ........$0$0$0$0$0$0$0$0$0$0$0$0$0$0$0$0$0$0$0$ 1Fido Message Networks 8Navigating AnsiTEX 9About AnsiTEX *95_ Help *99_ Log off
|
7ccks3w{#35 ,l|l|,,7k#37k#55jjj 45j 55 kj/|5ho <=$,5uzzzpquzpu5 /./*,//upzpquzp5 Videotex *0_To get back here DATE........... NODE ........$0$0$0$0$0$0$0$0$0$0$0$0$0$0$0$0$0$0$0$ 1Fido Message Networks 8Navigating AnsiTEX 9About AnsiTEX *95_ Help *99_ Log off
|
||||||
|
@ -32,7 +32,6 @@ var po = new PageObject(argv[0]);
|
|||||||
|
|
||||||
if (p.get(po)) {
|
if (p.get(po)) {
|
||||||
writeln('Page : '+p.name);
|
writeln('Page : '+p.name);
|
||||||
writeln('- Date : '+p.date);
|
|
||||||
writeln('- Cost : '+p.cost);
|
writeln('- Cost : '+p.cost);
|
||||||
writeln('- Owner : '+p.owner);
|
writeln('- Owner : '+p.owner);
|
||||||
writeln('- Key : '+p.key);
|
writeln('- Key : '+p.key);
|
||||||
|
@ -12,9 +12,6 @@ if (argv.length !== 1) {
|
|||||||
var ma = new MsgAreas();
|
var ma = new MsgAreas();
|
||||||
var area = ma.getArea(argv[0]);
|
var area = ma.getArea(argv[0]);
|
||||||
|
|
||||||
if (area === undefined)
|
|
||||||
throw Error('Area:'+argv[0]+' is not defined.');
|
|
||||||
|
|
||||||
writeln('Opening ['+argv[0]+'] - ('+area.code+')');
|
writeln('Opening ['+argv[0]+'] - ('+area.code+')');
|
||||||
|
|
||||||
var msgbase = area.msgbase;
|
var msgbase = area.msgbase;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user