Skip to content
Snippets Groups Projects
Commit 6a2e5bba authored by rswindell's avatar rswindell
Browse files

Use log() instead of print()

Include sort comparison function (compare) and sort_property as part of lib.
Added remove_dupes() function.
When reading JSON file, support lines up to 8Kbytes in length.
parent 52a2697d
No related branches found
No related tags found
No related merge requests found
......@@ -6,21 +6,30 @@ load("synchronet-json.js"); // For compatibility with older verisons of Synchron
var list_fname = system.data_dir + 'sbbslist.json';
var sort_property = 'name';
function compare(a, b)
{
if(a[sort_property].toLowerCase()>b[sort_property].toLowerCase()) return 1;
if(a[sort_property].toLowerCase()<b[sort_property].toLowerCase()) return -1;
return 0;
}
function read_list()
{
var f = new File(list_fname);
print("Opening list file: " + f.name);
log(LOG_INFO, "Opening list file: " + f.name);
if(!f.open("r")) {
alert("Error " + f.error + " opening " + f.name);
log(LOG_ERR, "SBBSLIST: Error " + f.error + " opening " + f.name);
return null;
}
var buf = f.readAll().join(' ');
var buf = f.readAll(8192).join(' ');
var list = [];
try {
list=JSON.parse(buf);
} catch(e) {
print("JSON.parse exception: " + e);
log(LOG_ERR, "SBBSLIST: JSON.parse exception: " + e);
}
f.close();
......@@ -31,15 +40,34 @@ function read_list()
function write_list(list)
{
var out = new File(list_fname);
print("Opening / creating list file: " + list_fname);
log(LOG_INFO, "SBBSLIST: Opening / creating list file: " + list_fname);
if(!out.open("w+")) {
alert("Error " + out.error + " creating " + out.name);
log(LOG_ERR, "SBBSLIST: Error " + out.error + " creating " + out.name);
return false;
}
print("Writing list file: " + out.name + " (" + list.length + " BBS entries)");
log(LOG_INFO, "SBBSLIST: Writing list file: " + out.name + " (" + list.length + " BBS entries)");
out.write(JSON.stringify(list, null, 4));
out.close();
return true;
}
function remove_dupes(list)
{
var new_list=[];
var names=[];
var address=[];
var i;
for(i in list)
if(names.indexOf(list[i].name.toLowerCase()) < 0 && address.indexOf(list[i].service[0].address.toLowerCase()) < 0) {
names.push(list[i].name.toLowerCase());
address.push(list[i].service[0].address.toLowerCase());
new_list.push(list[i]);
}
return new_list;
}
/* Leave as last line for convenient load() usage: */
this;
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment