diff --git a/exec/sbbslist.js b/exec/sbbslist.js index 83236afcaac59d9c6d6dacc4ea93ee8080e48ec6..cd71f2110fd3fefc93a20eae6c3bb725168844b8 100644 --- a/exec/sbbslist.js +++ b/exec/sbbslist.js @@ -19,6 +19,7 @@ load("portdefs.js"); var sbl_dir = "../xtrn/sbl/"; var list_format = 0; +var export_freq = 7; // minimum days between exports var color_cfg = { header: BLACK | BG_LIGHTGRAY, selection: BG_BLUE, @@ -37,6 +38,8 @@ if(!options.sub) options.sub="syncdata"; if(options && options.format > 0) list_format = options.format; +if(options && options.export_freq > 0) + export_freq = options.export_freq; var lib = load({}, "sbbslist_lib.js"); load("graphic.js"); @@ -57,7 +60,6 @@ function date_to_str(date) function date_from_str(datestrStr) { - var a = str.split("/"); var month = parseInt(a[0]); var day = parseInt(a[1]); @@ -138,39 +140,21 @@ function export_entry(bbs, msgbase) return msgbase.save_msg(hdr, body); } -function export_to_msgbase(list, msgbase, last_export, limit, all) +function export_to_msgbase(list, msgbase, limit, all) { var i; var count=0; var errors=0; - var ini = new File(msgbase.file + ".ini"); - if(last_export == undefined) { - print("Opening " + ini.name); - if(ini.open("r")) { - last_export=ini.iniGetValue("sbbslist","last_export", new Date(0)); - print("last export = " + last_export); - ini.close(); - } else if(debug) - print("Error " + ini.error + " opening " + ini.name); - /* Fallback to using old SBL export pointer (time_t) storage file/format */ - if(!last_export || !last_export.valueOf()) { - var f = new File(sbl_dir + "sbl2smb.dab"); - print("Opening " + f.name); - if(f.open("rb")) { - last_export = new Date(f.readBin(4)*1000); - f.close(); - } else - print("Error " + f.error + " opening " + f.name); - } - } - print("Exporting entries created/modified/verified since " + last_export.toString()); for(i in list) { if(js.terminated) break; if(all != true) { if(list[i].imported) continue; + var last_export = 0; + if(list[i].entry.exported) + last_export = new Date(list[i].entry.exported.on).valueOf(); var created = 0; if(list[i].entry.created) created = new Date(list[i].entry.created.on).valueOf(); @@ -184,6 +168,8 @@ function export_to_msgbase(list, msgbase, last_export, limit, all) && updated <= last_export && verified <= last_export) continue; + if((new Date().valueOf() - last_export) < export_freq * (24*60*60*1000)) + continue; } if(!export_entry(objcopy(list[i]), msgbase)) { alert("MsgBase error: " + msgbase.last_error); @@ -203,12 +189,6 @@ function export_to_msgbase(list, msgbase, last_export, limit, all) break; } print("Exported " + count + " entries (" + errors + " errors)"); - print("Opening " + ini.name); - if(ini.open(file_exists(ini.name) ? 'r+':'w+')) { - ini.iniSetValue("sbbslist","last_export",new Date()); - ini.close(); - } else - print("Error " + ini.error + " opening " + ini.name); if(count) lib.write_list(list); } @@ -989,7 +969,7 @@ function browse(list) } js.on_exit("console.ctrlkey_passthru = " + console.ctrlkey_passthru); - console.ctrlkey_passthru|=(1<<21); // Disable Ctrl-U handling in sbbs + console.ctrlkey_passthru|=(1<<16); // Disable Ctrl-P handling in sbbs if(user.number == 1 && !lib.system_exists(list, system.name) && !console.noyes(system.name + " is not listed. Add it")) { @@ -1247,7 +1227,7 @@ function browse(list) for(var j in list_formats[i]) sort_fields.push(list_formats[i][j]); for(var i in sort_fields) - console.uselect(Number(i), "Sort Field", sort_fields[i]); + console.uselect(Number(i), "Sort Field", sort_fields[i].replace('_', ' ').capitalize()); var sort_field = console.uselect(); if(sort_field == 0) list = orglist.slice(), sort = undefined; @@ -1258,12 +1238,17 @@ function browse(list) break; } case 'F': - for(var i in list_formats) - console.uselect(Number(i), "List Format", list_formats[i]); + { + var formats = objcopy(list_formats); + for(var i in formats) { + formats[i].forEach(function(v, i, a) { a[i] = v.replace('_', ' ').capitalize() }); + console.uselect(Number(i), "List Format", formats[i].join(", ")); + } var choice = console.uselect(); if(choice >= 0) list_format = choice; break; + } case 'H': case '?': help(); @@ -1994,7 +1979,7 @@ function main() if(cmd == "import") import_from_msgbase(list, msgbase, ptr, limit, all); else - export_to_msgbase(list, msgbase, ptr, limit, all); + export_to_msgbase(list, msgbase, limit, all); msgbase.close(); break; case "syncterm":