var cmn=require("../$common.js"), fs=require("fs"), persist=require("node-persist"), Naampje=require("naampje").name; persist=persist.create({ dir:"persist/lijst", continuous:false, interval:false }); persist.initSync(); var lijst=persist.getItemSync("lijst"); if(!lijst||Array.isArray(lijst)){ lijst={lijst:[],nextid:0}; persist.setItemSync("lijst",lijst); } var moddir; function repeatstring(n,s){ return Array(n+1).join(s); } function renderFragment(){ var s=""; for(var i=0;i"; s+=""; s+=""; s+="x"; s+=""+(votes>0?repeatstring(votes,"↑"):repeatstring(-votes,"↓"))+""; s+="\n"; } return s; } function render(res){ var html=fs.readFileSync(moddir+"/lijst.html")+""; html=html.replace("",renderFragment()); res.send(html); } module.exports=function(app,io,_moddir){ moddir=_moddir; app.get("/lijst",function(req,res){ render(res); }); app.post("/lijst/add",function(req,res){ lijst.lijst.push({text:req.body.trim(),id:lijst.nextid++,votes:0}); persist.setItemSync("lijst",lijst); res.status(200).end(renderFragment()); }); app.post("/lijst/remove/:id",function(req,res){ var idx=lijst.lijst.findIndex(function(o){return o.id==+req.params.id;}); if(idx!=-1){ lijst.lijst.splice(idx,1); persist.setItemSync("lijst",lijst); res.status(200).end(renderFragment()); } else { res.status(404).end("ID not found"); } }); app.post("/lijst/vote/:id/:num",function(req,res){ var delta=req.params.num>0?1:req.params.num<0?-1:0; var idx=lijst.lijst.findIndex(function(o){return o.id==+req.params.id;}); if(idx!=-1){ lijst.lijst[idx].votes+=delta; persist.setItemSync("lijst",lijst); res.status(200).end(renderFragment()); } else { res.status(404).end("ID not found"); } }); };