UNPKG

jonbrain

Version:
87 lines 3.4 kB
const fs = require('fs'); let JonDB={}; if(fs.existsSync('./src/s.json')) try {JonDB=JSON.parse(fs.readFileSync('./src/s.json'));}catch(err){console.log(err);JonDB={};} let JonTimeout=null; if(!JonDB['convo']) JonDB['convo']={}; if(!JonDB['followups']) JonDB['followups']={}; async function net() { return console.log("https://JonTV.me"); } net.train = function(data, callback) { let result=""; if(!data) data = [null,null,"content"]; if(!data[2]) data[2]='content'; if(data[0]) { if(!JonDB[data[2]]) JonDB[data[2]]={}; JonDB[data[2]][data[0]] = data[1]; result = JonDB[data[2]][data[0]]; } if(callback) callback(result); net.saveAll(); return result; } net.search = function(data, cb) { if(!data) return null; if(typeof data != 'object') data=[data, 1, 'content', null, null, null, 0, null]; for(var i=2;i<7;i++){data[i]=null;} if(!data[2]) data[2]='content'; if(data[0]){ if(!JonDB[data[2]])JonDB[data[2]]={}; data[3] = data[0].split(' '); data[4]=[]; for(let i=0;i<data[3].length;i++){if(!data[4][i])data[4][i]=[data[3][i],0];data[4][i][1]++;} data[5]=[];data[6]=0;data[7]=[]; for(var key in JonDB[data[2]]){ data[5]=key.split(' ');data[6]=0; for(let i=0;i<data[5].length;i++){for(let b=0;b<data[4].length;b++){if(data[5][i]==data[4][b][0])data[6]+=data[4][b][1];if(data[5][i].toLowerCase()==data[4][b][0].toLowerCase())data[6]+=0.5;};} data[7][data[7].length]=[JonDB[data[2]][key],data[6]]; }; data[7].sort(function(a,b){a=a[1];b=b[1];return a<b?-1:(a>b?1:0);});data[7].reverse(); if(data[1])data[7]=data[7].slice(0,data[1]); if(cb)cb(data[7]); return data[7]; } return false; } net.run = function(data, callback, search) { let result=""; if(!data) data = [null,null,"content",null]; if(!data[2]) data[2]='content'; if(data[0]) { if(!JonDB[data[2]]) JonDB[data[2]]={}; data[1]=JonDB[data[2]][data[0]]; if(!data[1] && data[2] == 'content') { data[4] = data[0].split(' '); data[5] = []; for(let i=0;i<data[4].length;i++){let elem=data[4][i].trim().trim("."); if(JonDB['alte'])if(JonDB['alte'][elem]) elem = JonDB['alte'][elem]; if(elem)data[5][data[5].length]=elem; }; if(data[5]) { data[0]=data[5].join(' '); data[1]=JonDB[data[2]][data[0]]; } } if(data[3]) { if(JonDB['convo'][data[3]]){ JonDB['convo'][data[3]][JonDB['convo'][data[3]].length]=data[0]; if(JonDB['followups'][JonDB['convo'][data[3]][JonDB['convo'][data[3]].length-1]]){ if(JonDB['followups'][JonDB['convo'][data[3]][JonDB['convo'][data[3]].length-1]][data[0]]){ data[1]=JonDB['followups'][JonDB['convo'][data[3]][JonDB['convo'][data[3]].length-1]][data[0]]; } } /* else { JonDB['followups'][JonDB['convo'][data.id][JonDB['convo'][data.id].length -1]]={}; } [JonDB['convo'][data.id][JonDB['convo'][data.id].length]]*/ }else{ JonDB['convo'][data[3]] = [data[0]]; } } } result = data[1];if(!result&&search){let response=net.search(data);if(response)result=response[0][0];} if(callback) callback(result); return result; } net.saveAll=function(){if(!JonTimeout){JonTimeout=setTimeout(function(){if(!fs.existsSync('./src/'))fs.mkdirSync('./src/');fs.writeFile("./src/s.json",JSON.stringify(JonDB),(err)=>{if(err)throw err;});clearTimeout(JonTimeout);JonTimeout=null;},5000);}} module.exports=net;