Numerous minor fixes needed for echomail control, register control. Revert our page object, if the requested page doesnt exist. Rework default pages.

This commit is contained in:
2024-01-01 17:03:25 +11:00
parent de04ec11ee
commit a1bcc1f5cb
68 changed files with 350 additions and 336 deletions

View File

@@ -6,20 +6,9 @@
* + Out of sync content
*/
// Load many SBBS definitions
require('sbbsdefs.js','SS_USERON');
// Load text.dat definitions
require('text.js','TOTAL_TEXT');
// Key definitions
require('key_defs.js','KEY_ESC');
ansi = load({},'ansiterm_lib.js');
load('ansitex/load/funcs.js');
// ANSItex specific includes
require('ansitex/load/defs.js','ACTION_EXIT');
require('ansitex/load/frame-ansi.js','FRAME_ANSI');
require('ansitex/load/frame-viewdata.js','FRAME_VIEWDATA');
// Our page handler
load('ansitex/load/page.js');
/* parse command arguments */
if (argv.length !== 1) {
@@ -29,11 +18,11 @@ if (argv.length !== 1) {
//const vtx_ext = 'tex';
const vtx_src = 'bin';
const ans_src = 'ans';
const tex_src = 'ans';
const page = argv.shift();
const vtx_srcname = page+'.'+vtx_src;
const ans_srcname = page+'.'+ans_src;
const tex_srcname = page+'.'+tex_src;
var errors = false;
PAGE_FILE_PREFX = /^[0-9]+[a-z]$/;
@@ -46,15 +35,16 @@ if (! PAGE_FILE_PREFX.test(page)) {
writeln('Comparing Frame: '+page);
// Load frame
vtx = new FrameViewdata();
vtx.load(page,'bin');
if (! vtx.content) {
require(ANSITEX_HOME+'/load/session/viewdata.js','SESSION_VIEWDATA');
vtx = new Page();
if (! vtx.import(FRAMES_HOME+SESSION_EXT+'/'+page)) {
writeln('- ! ERROR: VTX File doesnt exist? :'+page);
errors = true;
} else {
// Check content between TEX/ANS & VTX/BIN
vtx_srcfile = new File(system.mods_dir+'ansitex/text/'+vtx_srcname);
vtx_srcfile = new File(FRAMES_HOME+SESSION_EXT+'/'+vtx_srcname);
if (! vtx_srcfile.exists || ! vtx_srcfile.open('r')) {
writeln('- ! ERROR: VTX SRC File doesnt exist? :'+vtx_srcname);
errors = true;
@@ -62,59 +52,92 @@ if (! vtx.content) {
} else {
writeln('- LOADING: VTX Source :'+vtx_srcname);
var x = base64_decode(vtx.content);
var y = vtx_srcfile.read();
var x = md5_calc(vtx.raw);
var y = md5_calc(vtx_srcfile.read());
// Check Content
if (x !== y) {
writeln(' - Page Content :'+md5_calc(x));
writeln(' - Source Content :'+md5_calc(y));
writeln('- ! WARNING: Content Differs.'+base64_decode(vtx.content));
writeln(' - Page Content :'+x);
writeln(' - Source Content :'+y);
writeln('- ! WARNING: Content Differs.');
errors = true;
} else {
writeln('= Source matches.');
}
}
}
ans = new FrameAnsi();
ans.load(page,'ans');
if (! ans.content) {
writeln('- ! ERROR: ANS File doesnt exist? :'+page);
require(ANSITEX_HOME+'/load/session/ansitex.js','SESSION_ANSITEX');
tex = new Page();
if (! tex.import(FRAMES_HOME+SESSION_EXT+'/'+page)) {
writeln('- ! ERROR: TEX File doesnt exist? :'+page);
errors = true;
} else {
// Check content between TEX/ANS & VTX/BIN
ans_srcfile = new File(system.mods_dir+'ansitex/text/'+ans_srcname);
if (! ans_srcfile.exists || ! ans_srcfile.open('r')) {
writeln('- ! ERROR: VTX SRC File doesnt exist? :'+ans_srcname);
tex_srcfile = new File(FRAMES_HOME+SESSION_EXT+'/'+tex_srcname);
if (! tex_srcfile.exists || ! tex_srcfile.open('r')) {
writeln('- ! ERROR: TEX SRC File doesnt exist? :'+tex_srcname);
errors = true;
} else {
writeln('- LOADING: ANS Source :'+ans_srcname);
writeln('- LOADING: TEX Source :'+tex_srcname);
var x = base64_decode(ans.content);
var y = ans_srcfile.read();
var x = md5_calc(tex.raw);
var y = md5_calc(tex_srcfile.read());
if (x !== y) {
// Check Content
writeln(' - Page Content :'+md5_calc(x,true));
writeln(' - Source Content :'+md5_calc(y,true));
writeln('- ! WARNING: Content Differs.'+base64_decode(vtx.content));
writeln(' - Page Content :'+x);
writeln(' - Source Content :'+y);
writeln('- ! WARNING: Content Differs.');
errors = true;
} else {
writeln('= Source matches.');
}
}
}
// Checking keys
if (vtx.content && ans.content)
for each (var k in ['frame','index','key','cost','owner','type','isPublic','isAccessible']) {
if (JSON.stringify(vtx[k]) !== JSON.stringify(ans[k])) {
writeln('- Checking KEY: '+k);
if (vtx.raw && tex.raw) {
writeln('- Checking Page: ');
if (vtx.name.toString() !== tex.name.toString()) {
writeln(' - ! VTX: '+vtx.name.toString());
writeln(' - ! TEX: '+tex.name.toString());
} else {
writeln(' = PAGE: '+vtx.name.toString());
}
for each (var k in ['key','cost','type']) {
writeln('- Checking KEY: '+k);
if (JSON.stringify(vtx[k]) !== JSON.stringify(tex[k])) {
writeln(' - ! VTX: '+vtx[k]);
writeln(' - ! ANS: '+ans[k]);
writeln(' - ! TEX: '+tex[k]);
errors = true;
} else {
writeln(' = KEY: '+vtx[k]);
}
}
for each (var k in ['isAccessible','isPublic']) {
writeln('- Checking Property: '+k);
if (JSON.stringify(vtx.__properties__[k]) !== JSON.stringify(tex.__properties__[k])) {
writeln(' - ! VTX: '+vtx.__properties__[k]);
writeln(' - ! TEX: '+tex.__properties__[k]);
errors = true;
} else {
writeln(' = KEY: '+vtx.__properties__[k]);
}
}
}
if (errors)
exit(1);
else