@tiledesk/tiledesk-server 2.5.3 → 2.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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}