var fs = require("fs"),
path = require("path");
var HISTORY_FILE = path.join(__dirname, "../server-data/history.txt");
function htmlspecialchars (str) {
//Hum, hum... Could do better
if (typeof str !== "string") return "";
return str.replace(/&/g, "&")
.replace(//g, ">")
.replace(/"/g, """)
.replace(/'/g, "'");
}
var Tools = {
"Text" : function(el) {
return ''+htmlspecialchars(el.txt||"")+'';
},
"Pencil" : function(el) {
if (!el._children) return "";
switch (el._children.length) {
case 0: return "";
case 1:
var pathstring = "M" + el._children[0].x + " " + el._children[0].y +
"L" + el._children[0].x + " " + el._children[0].y;
break;
default:
var pathstring = "M"+el._children[0].x+" "+ el._children[0].y + "L";
for(var i=1;i';
}
};
function toSVG(obj) {
var margin=500, maxelems = 1e4;
var elements = "", i=0, w=0, h=0;
var t=Date.now();
for (var id in obj) {
if (++i > maxelems) break;
var elem = obj[id];
if (elem.x && elem.x + margin > w ) w = elem.x + margin;
if (elem.y && elem.y + margin > h) h = elem.y + margin;
elements += Tools[elem.tool](elem);
}
console.error(i+" elements treated in "+(Date.now()-t)+"ms.");
var svg = '';
console.log(svg);
return svg;
}
fs.readFile(HISTORY_FILE, function (err, data) {
if (err) throw err;
var t=Date.now();
var board = JSON.parse(data);
console.error("JSON parsed in "+(Date.now()-t)+"ms.");
toSVG(board);
});