@tiledesk/tiledesk-server 2.5.3 → 2.7.1

Sign up to get free protection for your applications and to get access to all the features.
package/event/botEvent.js CHANGED
@@ -33,9 +33,30 @@ class BotEvent extends EventEmitter {
33
33
  winston.debug("message", message);
34
34
 
35
35
  // TODO usa meglio se attributes.reply_always=true
36
- if (message.sender === "system" && message.text && message.text!="\\start") {
37
- winston.debug("it s a message sent from system, exit");
38
- return null;
36
+
37
+ // if (message.sender === "system" && message.text && message.text!="\\start") {
38
+ // winston.debug("it s a message sent from system, exit");
39
+ // return null;
40
+ // }
41
+
42
+
43
+ //sbagliato
44
+ // if (message.sender === "system" && message.text && (message.text=="\\start" || message.text=="/start") ) {
45
+ // winston.debug("it s a start message");
46
+ // } else {
47
+ // winston.debug("it s a message sent from system, exit");
48
+ // return null;
49
+ // }
50
+
51
+ if (message.sender === "system") {
52
+ if (message.text && (message.text=="\\start" || message.text=="/start") ) {
53
+ winston.debug("it s a start message");
54
+ } else {
55
+ winston.debug("it s a message sent from system, exit");
56
+ return null;
57
+ }
58
+ } else {
59
+ winston.debug("it s a message sent from other let s go");
39
60
  }
40
61
 
41
62
  if (message.text && ( message.text.indexOf("\\agent") > -1 || message.text.indexOf("\\close") > -1)) { //not reply to a message containing \\agent
package/jobs.js CHANGED
@@ -28,6 +28,9 @@ var botSubscriptionNotifier = require('./services/BotSubscriptionNotifier');
28
28
  const botEvent = require('./event/botEvent');
29
29
  var channelManager = require('./channels/channelManager');
30
30
 
31
+ var updateLeadQueued = require('./services/updateLeadQueued');
32
+
33
+
31
34
  require('./services/mongoose-cache-fn')(mongoose);
32
35
 
33
36
 
@@ -80,7 +83,7 @@ async function main()
80
83
 
81
84
 
82
85
 
83
- let jobsManager = new JobsManager(undefined, geoService, botEvent, subscriptionNotifierQueued, botSubscriptionNotifier);
86
+ let jobsManager = new JobsManager(undefined, geoService, botEvent, subscriptionNotifierQueued, botSubscriptionNotifier, updateLeadQueued);
84
87
 
85
88
  jobsManager.listen();
86
89
 
@@ -101,6 +104,11 @@ async function main()
101
104
  winston.info("whatsappQueue");
102
105
  jobsManager.listenWhatsappQueue(whatsappQueue);
103
106
 
107
+ let trainingQueue = require('@tiledesk/tiledesk-train-jobworker');
108
+ winston.info("trainingQueue");
109
+ jobsManager.listenTrainingQueue(trainingQueue);
110
+
111
+
104
112
  let scheduler = require('./pubmodules/scheduler');
105
113
  jobsManager.listenScheduler(scheduler);
106
114
 
package/jobsManager.js CHANGED
@@ -2,7 +2,7 @@
2
2
  var winston = require('./config/winston');
3
3
 
4
4
  class JobsManager {
5
- constructor(jobWorkerEnabled, geoService, botEvent, subscriptionNotifierQueued, botSubscriptionNotifier) {
5
+ constructor(jobWorkerEnabled, geoService, botEvent, subscriptionNotifierQueued, botSubscriptionNotifier, updateLeadQueued) {
6
6
  this.geoService = geoService;
7
7
  this.botEvent = botEvent;
8
8
  // this.subscriptionNotifier = subscriptionNotifier;
@@ -19,6 +19,8 @@ class JobsManager {
19
19
  // this.jobWorkerEnabled = true;
20
20
  // }
21
21
  // winston.info("JobsManager jobWorkerEnabled: "+ this.jobWorkerEnabled);
22
+
23
+ this.updateLeadQueued = updateLeadQueued;
22
24
  }
23
25
 
24
26
 
@@ -34,6 +36,8 @@ class JobsManager {
34
36
  // this.subscriptionNotifier.start();
35
37
  this.subscriptionNotifierQueued.start();
36
38
 
39
+ this.updateLeadQueued.listen();
40
+
37
41
  // this.botSubscriptionNotifier.start(); // disabled
38
42
  }
39
43
 
@@ -82,6 +86,14 @@ class JobsManager {
82
86
  // this.whatsappWorker = whatsappQueue;
83
87
  // this.whatsappQueue.listen(); // oppure codice
84
88
  }
89
+
90
+ listenTrainingQueue(trainingQueue) {
91
+ console.log("JobsManager listenTrainingQueue started");
92
+ console.log("trainingQueue is: ", trainingQueue)
93
+ if (this.jobWorkerEnabled == true) {
94
+ return winston.info("JobsManager jobWorkerEnabled is enabled. Skipping listener for Training Queue");
95
+ }
96
+ }
85
97
  }
86
98
 
87
99
 
@@ -4,20 +4,30 @@ var path = require('path');
4
4
  var winston = require('../config/winston');
5
5
 
6
6
 
7
- var labelsDir = __dirname+"/../config/labels/";
7
+ var labelsDir = __dirname + "/../config/labels/";
8
8
  winston.debug('labelsDir: ' + labelsDir);
9
9
 
10
10
 
11
- module.exports = function(req, res, next) {
12
- var filePath = path.join(labelsDir, 'widget.json');
13
-
14
- fs.readFile(filePath, {encoding: 'utf-8'}, function(err,data){
15
- if (err) {
16
- winston.error('Error getting labels', err);
17
- return res.status(500).send({ success: false, msg: 'Error reading object.' });
18
- }
19
- winston.debug('label fetched', data);
20
- req.labels = JSON.parse(data);
21
- next();
22
- });
11
+ module.exports = function (req, res, next) {
12
+ var filePath = path.join(labelsDir, 'widget.json');
13
+
14
+ fs.readFile(filePath, { encoding: 'utf-8' }, function (err, data) {
15
+ if (err) {
16
+ winston.error('Error getting labels', err);
17
+ return res.status(500).send({ success: false, msg: 'Error reading object.' });
18
+ }
19
+ winston.debug('label fetched', data);
20
+
21
+ // Replace {{ BRAND_NAME }} with process.env.BRAND_NAME value (default value "Tiledesk")
22
+ let brand_name = process.env.BRAND_NAME;
23
+
24
+ if (brand_name) {
25
+ data = data.replaceAll("Tiledesk", brand_name);
26
+ data = data.replaceAll("tiledesk", brand_name.toLowerCase());
27
+
28
+ }
29
+
30
+ req.labels = JSON.parse(data);
31
+ next();
32
+ });
23
33
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tiledesk/tiledesk-server",
3
3
  "description": "The Tiledesk server module",
4
- "version": "2.5.3",
4
+ "version": "2.7.1",
5
5
  "scripts": {
6
6
  "start": "node ./bin/www",
7
7
  "pretest": "mongodb-runner start",
@@ -38,18 +38,19 @@
38
38
  "dependencies": {
39
39
  "@tiledesk/tiledesk-apps": "^1.0.17",
40
40
  "@tiledesk/tiledesk-chat21-app": "^1.1.8",
41
+ "@tiledesk/tiledesk-chatbot-templates": "^0.1.2",
41
42
  "@tiledesk/tiledesk-chatbot-util": "^0.8.33",
43
+ "@tiledesk/tiledesk-client": "^0.10.10",
42
44
  "@tiledesk/tiledesk-dialogflow-connector": "^1.8.4",
43
45
  "@tiledesk/tiledesk-json-rules-engine": "^4.0.3",
44
46
  "@tiledesk/tiledesk-kaleyra-proxy": "^0.1.7",
45
47
  "@tiledesk/tiledesk-messenger-connector": "^0.1.18",
46
48
  "@tiledesk/tiledesk-rasa-connector": "^1.0.10",
47
49
  "@tiledesk/tiledesk-telegram-connector": "^0.1.10",
48
- "@tiledesk/tiledesk-tybot-connector": "^0.2.56",
50
+ "@tiledesk/tiledesk-train-jobworker": "^0.0.7",
51
+ "@tiledesk/tiledesk-tybot-connector": "^0.2.57",
49
52
  "@tiledesk/tiledesk-whatsapp-connector": "^0.1.64",
50
53
  "@tiledesk/tiledesk-whatsapp-jobworker": "^0.0.7",
51
- "@tiledesk/tiledesk-chatbot-templates": "^0.1.2",
52
- "@tiledesk/tiledesk-client": "^0.10.10",
53
54
  "amqplib": "^0.5.5",
54
55
  "app-root-path": "^3.0.0",
55
56
  "bcrypt-nodejs": "0.0.3",
@@ -105,6 +106,7 @@
105
106
  "retry-request": "^4.2.2",
106
107
  "serve-favicon": "~2.5.0",
107
108
  "sharp": "^0.27.2",
109
+ "sitemapper": "^3.2.8",
108
110
  "stripe": "^7.2.0",
109
111
  "uniqid": "^5.4.0",
110
112
  "uuid": "^3.3.3",
@@ -194,6 +194,19 @@ function startWorker() {
194
194
  winston.info("Data queue", oka)
195
195
  });
196
196
 
197
+ ch.bindQueue(_ok.queue, exchange, "lead_update", {}, function(err3, oka) {
198
+ winston.info("Queue bind: "+_ok.queue+ " err: "+err3+ " key: lead_update");
199
+ winston.info("Data queue", oka)
200
+ });
201
+
202
+ ch.bindQueue(_ok.queue, exchange, "lead_fullname_email_update", {}, function(err3, oka) {
203
+ winston.info("Queue bind: "+_ok.queue+ " err: "+err3+ " key: lead_fullname_email_update");
204
+ winston.info("Data queue", oka)
205
+ });
206
+
207
+
208
+
209
+
197
210
 
198
211
 
199
212
  ch.consume(queueName, processMsg, { noAck: false });
@@ -295,6 +308,19 @@ function work(msg, cb) {
295
308
  leadEvent.emit('lead.create.queue', JSON.parse(message_string));
296
309
  }
297
310
 
311
+ if (topic === 'lead_update') {
312
+ winston.debug("reconnect here topic lead_update:" + topic);
313
+ // requestEvent.emit('request.update.queue', msg.content);
314
+ leadEvent.emit('lead.update.queue', JSON.parse(message_string));
315
+ }
316
+
317
+ if (topic === 'lead_fullname_email_update') {
318
+ winston.debug("reconnect here topic lead_fullname_email_update:" + topic);
319
+ // requestEvent.emit('request.update.queue', msg.content);
320
+ leadEvent.emit('lead.fullname.email.update.queue', JSON.parse(message_string));
321
+ }
322
+
323
+
298
324
 
299
325
  cb(true);
300
326
  // WebSocket.cb(true);
@@ -422,6 +448,27 @@ function listen() {
422
448
  });
423
449
  });
424
450
 
451
+
452
+ leadEvent.on('lead.update', function(lead) {
453
+ setImmediate(() => {
454
+ winston.debug("reconnect lead.update")
455
+ publish(exchange, "lead_update", Buffer.from(JSON.stringify(lead)));
456
+ winston.debug("reconnect: "+ Buffer.from(JSON.stringify(lead)))
457
+ });
458
+ });
459
+
460
+
461
+ leadEvent.on('lead.fullname.email.update', function(lead) {
462
+ setImmediate(() => {
463
+ winston.debug("reconnect lead.fullname.email.update")
464
+ publish(exchange, "lead_fullname_email_update", Buffer.from(JSON.stringify(lead)));
465
+ winston.debug("reconnect: "+ Buffer.from(JSON.stringify(lead)))
466
+ });
467
+ });
468
+
469
+
470
+
471
+
425
472
  }
426
473
 
427
474
  if (process.env.QUEUE_ENABLED === "true") {
@@ -121,7 +121,7 @@ var tInviteBotObj = {
121
121
  {key:'request.departmentHasBot',fact: 'json',path: 'department.hasBot', operator:'equal', value: true},
122
122
  {key:'request.first_text',fact: 'json',path: 'first_text', operator:'equal', value: 'welcome'}
123
123
  ]},
124
- actions: [{key:'request.department.bot.launch'}],
124
+ actions: [{key:'request.department.bot.launch', parameters: {text:"/start"}}],
125
125
  enabled:true,
126
126
  code: 's_invite_bot_01',
127
127
  type: 'internal',
@@ -196,7 +196,7 @@ var tInviteProactiveGreetingBotObj = {
196
196
  {key:'request.departmentHasBot',fact: 'json',path: 'department.hasBot', operator:'equal', value: true},
197
197
  {key:'request.first_text',fact: 'json',path: 'first_text', operator:'equal', value: 'callout'}
198
198
  ]},
199
- actions: [{key:'request.department.bot.launch'}],
199
+ actions: [{key:'request.department.bot.launch', parameters: {text:"/start"}}],
200
200
  enabled:true,
201
201
  code: 's_invite_proactive_greeting_bot_01',
202
202
  type: 'internal',
@@ -686,6 +686,9 @@ class RulesTrigger {
686
686
 
687
687
  try {
688
688
 
689
+ winston.debug('triggerEventEmitter eventTrigger:', eventTrigger);
690
+
691
+
689
692
  winston.debug('runAction eventTrigger.eventSuccess:', eventTrigger.eventSuccess);
690
693
  var trigger = eventTrigger.trigger;
691
694
  winston.debug('runAction trigger', trigger.toObject());
@@ -706,6 +709,15 @@ class RulesTrigger {
706
709
  var id_project = eventTrigger.event.id_project;
707
710
  winston.debug('runAction action id_project: ' + id_project);
708
711
 
712
+
713
+
714
+ var startText = "\\start";
715
+ if (action.parameters && action.parameters.text) {
716
+ startText = action.parameters.text;
717
+ }
718
+ winston.debug('runAction action startText: ' + startText);
719
+
720
+
709
721
  // reroute(request_id, id_project, nobot) {
710
722
  requestService.reroute(request_id, id_project).then(function(request) {
711
723
 
@@ -716,7 +728,7 @@ class RulesTrigger {
716
728
  'system',
717
729
  'Bot',
718
730
  request_id,
719
- '\\start',
731
+ startText, // /start controlla se chatbot nuovo manda /start altrimenti per i vecchi \start
720
732
  id_project,
721
733
  null,
722
734
  {subtype:'info', updateconversation : false}
@@ -775,7 +787,7 @@ class RulesTrigger {
775
787
  'system',
776
788
  'Bot',
777
789
  request_id,
778
- '\\start',
790
+ '\\start', // / start
779
791
  id_project,
780
792
  null,
781
793
  {subtype:'info', updateconversation : false}