summaryrefslogtreecommitdiff
path: root/modules/abbrgen/abbrgen.js
diff options
context:
space:
mode:
authortomsmeding <tom.smeding@gmail.com>2016-09-13 11:43:06 +0200
committertomsmeding <tom.smeding@gmail.com>2016-09-13 11:44:11 +0200
commitf00ba92ed2cc1a9c24ad783e83525d1b5a85b857 (patch)
tree4d1c00a47c7f3842bcf3dece83d3c00ed3ae459f /modules/abbrgen/abbrgen.js
Initial
Diffstat (limited to 'modules/abbrgen/abbrgen.js')
-rw-r--r--modules/abbrgen/abbrgen.js49
1 files changed, 49 insertions, 0 deletions
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"));
+ });
+ });
+};