From c57e57f5ba31db9b8d57f58ce98aab6eac9e48d7 Mon Sep 17 00:00:00 2001 From: tomsmeding Date: Thu, 5 Jan 2017 23:43:39 +0100 Subject: changes: Diffing! --- modules/changes/changes.js | 72 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) (limited to 'modules/changes/changes.js') diff --git a/modules/changes/changes.js b/modules/changes/changes.js index 7cbe7ee..8a0b3d9 100644 --- a/modules/changes/changes.js +++ b/modules/changes/changes.js @@ -5,6 +5,7 @@ var cmn=require("../$common.js"), crypto=require("crypto"), http=require("http"), https=require("https"), + fs=require("fs"), URL=require("url"), child_process=require("child_process"); @@ -376,4 +377,75 @@ module.exports=function(app,io,_moddir){ refreshURLs(); res.send(); }); + app.post("/changes/diff",function(req,res){ + var param; + try {param=JSON.parse(req.body);} + catch(e){ + res.status(400); + res.send("Invalid JSON sent"); + return; + } + var url=param.url; + var newdate=new Date(param.newdate); + var olddate=new Date(param.olddate); + if(!urls[url]){ + res.status(404); + res.send("URL not found in watch list"); + return; + } + if(newdate.getTime()==NaN||olddate.getTime()==NaN){ + res.status(400); + res.send("Invalid time(s) sent"); + return; + } + if(newdate.getTime()==olddate.getTime()){ + res.status(400); + res.send("Please select different records to diff"); + return; + } + var tl=urls[url].timeline; + var newi=-1,oldi=-1,i; + for(i=0;i