diff --git a/exec/load/sbbslist_lib.js b/exec/load/sbbslist_lib.js index 7789987c197116620dbeb41fb31d0944c8490310..e4390adce2232fc2b363d56acc8fbcee4cd9eef0 100644 --- a/exec/load/sbbslist_lib.js +++ b/exec/load/sbbslist_lib.js @@ -581,17 +581,17 @@ function syncterm_list(list, dir) const base64_max_line_len = 72; -function compress_preview(preview) +function compress_preview(bin) { - var compressed = LZString.compressToBase64(base64_decode(preview.join(""))); - return ["!LZ"].concat(compressed.match(new RegExp('([\x00-\xff]{0,' + base64_max_line_len + '})', 'g'))); + var compressed = LZString.compressToBase64(bin); + return ["!LZ"].concat(compressed.match(new RegExp('([\x00-\xff]{1,' + base64_max_line_len + '})', 'g'))); } function encode_preview(ansi_capture) { var graphic = new Graphic(); graphic.ANSI = ansi_capture.join("\r\n"); - return compress_preview(graphic.base64_encode()); + return compress_preview(graphic.BIN); } function decode_preview(preview) @@ -604,9 +604,14 @@ function decode_preview(preview) function draw_preview(bbs) { + if(!bbs.preview) + return false; var graphic = new Graphic(); - graphic.BIN = decode_preview(bbs.preview); - graphic.draw(); + var bin = decode_preview(bbs.preview); + if(!bin || !bin.length) + return false; + graphic.BIN = bin; + return graphic.draw(); } /* Leave as last line for convenient load() usage: */