Advertisement
Guest User

Untitled

a guest
Jan 20th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. module.exports = (async function (subject, message, socket, socketUsed) {
  2.     //const handler = require('../server')
  3.     // We now need to create sub modules... so then we can
  4.     // create a natural language response... So then we dont
  5.     // need to have a specific module for each single common
  6.     // response.
  7.     const mod_helper = require(`${process.cwd()}/core/functions/helper`)
  8.     const findFilesAndFolders = mod_helper.findFilesAndFolders
  9.     const memeory = require(`${process.cwd()}/server`).memeory
  10.     const remember = require(`${process.cwd()}/server`).remember
  11.     const core = require(`${process.cwd()}/server`)
  12.     const allSubMods = {};
  13.     //Find every module folder... go into it... check for the mod.js file,
  14.     //load the words.txt file... check if any of those match the `message` input...
  15.     const subMods = [];
  16.     findFilesAndFolders(`./mods/casual/`, subMods, true, true, false);
  17.  
  18.     if (socketUsed) {
  19.       holder = message.split("$$")
  20.       message = holder[0]
  21.       socketID = holder[1]
  22.       result = memeory(socketID)
  23.       if (result === 'false') {
  24.         return await working(allSubMods, subject, message, socket, subMods, core);
  25.       } else {
  26.         // We are just going to assume that there should be a '/' as
  27.         // all submodules need to remember their master module in the memeory
  28.         // eg. `casual/goodDay`
  29.         let holder = result.split('/');
  30.         // The submodule to run should be the last item in the split...
  31.         var name = holder[1]
  32.         let toRun = allSubMods[name];
  33.         return await continueModule(toRun, subject, message, socket, core)
  34.       }
  35.     } else {
  36.       return await working(allSubMods, subject, message, socket, subMods, core);
  37.     }
  38.  
  39. });
  40. async function continueModule(toRun, subject, message, socket, core){
  41.   return new Promise((resolve) => {
  42.     let result = toRun(subject, message, socket, core);
  43.     resolve(result);
  44.   })
  45. }
  46. async function working(allSubMods, subject, message, socket, subMods, core) {
  47.     const findFilesAndFolders = require(`${process.cwd()}/core/functions/helper`).findFilesAndFolders
  48.     const fileToArray = require(`${process.cwd()}/core/functions/helper`).fileToArray
  49.     return new Promise((resolve) => {
  50.         subMods.forEach((item) => {
  51.             const holder = [];
  52.             findFilesAndFolders(`./mods/casual/${item}/`, holder, false, false, true);
  53.             holder.forEach((file) => {
  54.                 if (file === `./mods/casual/${item}/mod.js`){
  55.                   allSubMods[item] = require(`./` + item + `/mod.js`);
  56.                 } else if (file === `./mods/casual/${item}/words.txt`) {
  57.                     //We are just going to assume there is a responses.txt file...
  58.                     const wordsHolder = [];
  59.                     fileToArray(`./mods/casual/${item}/words.txt`, wordsHolder);
  60.                     wordsHolder.forEach((sentence) => {
  61.                         if (nlp(message).match(sentence).found) {
  62.                             console.log("Going to run the sub-module: " + item);
  63.                             const res = [];
  64.                             var toRun = allSubMods[item];
  65.                             let result = toRun(subject, message, socket, core);
  66.                             resolve(result);
  67.                         }
  68.                     });
  69.                 }
  70.             });
  71.         });
  72.     });
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement