From f00ba92ed2cc1a9c24ad783e83525d1b5a85b857 Mon Sep 17 00:00:00 2001 From: tomsmeding Date: Tue, 13 Sep 2016 11:43:06 +0200 Subject: Initial --- modules/abbrgen/abbrgen.js | 49 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 modules/abbrgen/abbrgen.js (limited to 'modules/abbrgen/abbrgen.js') diff --git a/modules/abbrgen/abbrgen.js b/modules/abbrgen/abbrgen.js new file mode 100644 index 0000000..64a29b1 --- /dev/null +++ b/modules/abbrgen/abbrgen.js @@ -0,0 +1,49 @@ +var cmn=require("../$common.js"), + process=require("child_process"); + +var moddir,uname; +uname=String(process.execSync("uname")).trim(); + +//PERFORMS NO VALIDATION! +function get_abbreviations(abbr,num,cb){ + var fname=moddir+"/abbreviation_gen_"+uname; + process.execFile(fname,[abbr,num],{},function(err,stdout,stderr){ + //if(err)throw err; + if(err){ + console.log(err.toString()); + console.log(err.stack); + cb([]); + } + cb(stdout.split("\n")); + }); +} + +module.exports=function(app,io,_moddir){ + moddir=_moddir; + app.get("/abbrgen/:abbr",function(req,res){ + var abbr=req.params.abbr; + res.set("Content-Type","text/plain"); + if(!abbr.match(/^[a-z]+$/i)){ + res.send("ERROR: Invalid input value."); + return; + } + get_abbreviations(abbr,"1",function(answers){ + res.send(answers.join("\n")); + }); + }); + app.get("/abbrgen/:abbr/:num",function(req,res){ + var abbr=req.params.abbr,num=req.params.num; + res.set("Content-Type","text/plain"); + if(num>5000){ + res.send("ERROR: Number of abbreviations too large."); + return; + } + if(!abbr.match(/^[a-z]+$/i)||isNaN(+num)){ + res.send("ERROR: Invalid input values."); + return; + } + get_abbreviations(abbr,num,function(answers){ + res.send(answers.join("\n")); + }); + }); +}; -- cgit v1.2.3-54-g00ecf