@tiledesk/tiledesk-tybot-connector 0.2.153-rc1 → 0.2.153-rc3
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/CHANGELOG.md +3 -0
- package/Logger.js +74 -0
- package/TiledeskServices/AIService.js +43 -0
- package/TiledeskServices/utils.js +88 -0
- package/index.js +13 -7
- package/logs/app.log +4 -0
- package/models/TiledeskChatbotUtil.js +7 -0
- package/package.json +2 -1
- package/tiledeskChatbotPlugs/directives/DirReply.js +11 -0
package/CHANGELOG.md
CHANGED
package/Logger.js
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
let { Publisher } = require("@tiledesk/tiledesk-multi-worker");
|
|
2
|
+
|
|
3
|
+
const AMQP_MANAGER_URL = process.env.AMQP_MANAGER_URL;
|
|
4
|
+
let publisher = new Publisher(AMQP_MANAGER_URL, {
|
|
5
|
+
debug: false,
|
|
6
|
+
queueName: "logs_queue",
|
|
7
|
+
exchange: "tiledesk-multi",
|
|
8
|
+
topic: "logs",
|
|
9
|
+
})
|
|
10
|
+
|
|
11
|
+
class Logger {
|
|
12
|
+
|
|
13
|
+
constructor(config) {
|
|
14
|
+
|
|
15
|
+
if (!config) {
|
|
16
|
+
throw new Error('config is mandatory');
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
if (!config.request_id) {
|
|
20
|
+
console.error('config.request_id is mandatory');
|
|
21
|
+
//throw new Error('config.request_id is mandatory');
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
this.request_id = config.request_id;
|
|
25
|
+
this.dev = config.dev;
|
|
26
|
+
|
|
27
|
+
if (!AMQP_MANAGER_URL) {
|
|
28
|
+
console.error('AMQP_MANAGER_URL is undefined. Logger not available...');
|
|
29
|
+
return;
|
|
30
|
+
//throw new Error("Error starting logger: AMQP_MANAGER_URL is undefined.")
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
error(text) {
|
|
36
|
+
if (!this.request_id || !publisher) {
|
|
37
|
+
console.log("Return because request or publisher is undefined", this.request_id, publisher);
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
let data = {
|
|
42
|
+
request_id: this.request_id,
|
|
43
|
+
text: text,
|
|
44
|
+
level: "error",
|
|
45
|
+
timestamp: new Date()
|
|
46
|
+
}
|
|
47
|
+
publisher.publish(data, (err, ok) => {
|
|
48
|
+
if (err) console.warn("publish log fail: ", err);
|
|
49
|
+
return;
|
|
50
|
+
})
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
info(text) {
|
|
54
|
+
if (!this.request_id || !publisher) {
|
|
55
|
+
console.log("Return because request or publisher is undefined", this.request_id, publisher);
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
let data = {
|
|
60
|
+
request_id: this.request_id,
|
|
61
|
+
text: text,
|
|
62
|
+
level: "info",
|
|
63
|
+
timestamp: new Date()
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
publisher.publish(data, (err, ok) => {
|
|
67
|
+
if (err) console.warn("publish log fail: ", err);
|
|
68
|
+
return;
|
|
69
|
+
})
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
module.exports = { Logger }
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
const Utils = require('./utils')
|
|
2
|
+
class AiService {
|
|
3
|
+
|
|
4
|
+
constructor(options){
|
|
5
|
+
this.APIURL = options.API_ENDPOINT
|
|
6
|
+
this.JWT_TOKEN = options.JWT_TOKEN
|
|
7
|
+
this.PROJECT_ID = options.PROJECT_ID
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
async speechToText(url){
|
|
11
|
+
return new Promise((resolve, reject)=> {
|
|
12
|
+
const HTTPREQUEST = {
|
|
13
|
+
url: `${this.APIURL}/${this.PROJECT_ID}/llm/transcription`,
|
|
14
|
+
headers: {
|
|
15
|
+
'Content-Type' : 'application/json',
|
|
16
|
+
'Authorization': this.JWT_TOKEN
|
|
17
|
+
},
|
|
18
|
+
json: {
|
|
19
|
+
url: url
|
|
20
|
+
},
|
|
21
|
+
method: 'POST',
|
|
22
|
+
httpsOptions: this.httpsOptions
|
|
23
|
+
};
|
|
24
|
+
Utils.myrequest(
|
|
25
|
+
HTTPREQUEST,
|
|
26
|
+
function(err, resbody) {
|
|
27
|
+
if (err) {
|
|
28
|
+
reject(err)
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
resolve(resbody)
|
|
32
|
+
}
|
|
33
|
+
}, this.LOG
|
|
34
|
+
);
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
module.exports= AiService
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
let axios = require('axios');
|
|
2
|
+
let https = require("https");
|
|
3
|
+
|
|
4
|
+
class Utils {
|
|
5
|
+
constructor(){}
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
static myrequest(options, callback, log) {
|
|
9
|
+
if (log) {
|
|
10
|
+
console.log("** API URL:", options.url);
|
|
11
|
+
console.log("** Options:", JSON.stringify(options));
|
|
12
|
+
}
|
|
13
|
+
let axios_settings = {
|
|
14
|
+
url: options.url,
|
|
15
|
+
method: options.method,
|
|
16
|
+
data: options.json,
|
|
17
|
+
params: options.params,
|
|
18
|
+
headers: options.headers
|
|
19
|
+
}
|
|
20
|
+
// console.log("options.url.startsWith(https:)", options.url.startsWith("https:"))
|
|
21
|
+
// console.log("this.httpsOptions", this.httpsOptions)
|
|
22
|
+
|
|
23
|
+
if (options.url.startsWith("https:") && options.httpsOptions) {
|
|
24
|
+
// console.log("Tiledesk Client v 0.9.x: url.startsWith https: && httpsOptions");
|
|
25
|
+
const httpsAgent = new https.Agent(options.httpsOptions);
|
|
26
|
+
axios_settings.httpsAgent = httpsAgent;
|
|
27
|
+
}
|
|
28
|
+
else if (options.url.startsWith("https:") && !options.httpsOptions) {
|
|
29
|
+
// HTTPS default is rejectUnauthorized: false
|
|
30
|
+
// console.log("Tiledesk Client v 0.9.x: url.startsWith https: && NOT httpsOptions");
|
|
31
|
+
const httpsAgent = new https.Agent({
|
|
32
|
+
rejectUnauthorized: false,
|
|
33
|
+
});
|
|
34
|
+
axios_settings.httpsAgent = httpsAgent;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
// console.log("Using axios settings:", axios_settings)
|
|
40
|
+
// axios(
|
|
41
|
+
// {
|
|
42
|
+
// url: options.url,
|
|
43
|
+
// method: options.method,
|
|
44
|
+
// data: options.json,
|
|
45
|
+
// params: options.params,
|
|
46
|
+
// httpsAgent: httpsAgent,
|
|
47
|
+
// headers: options.headers
|
|
48
|
+
// })
|
|
49
|
+
axios(axios_settings)
|
|
50
|
+
.then(function (res) {
|
|
51
|
+
if (log) {
|
|
52
|
+
console.log("Response for url:", options.url);
|
|
53
|
+
console.log("Response headers:\n", JSON.stringify(res.headers));
|
|
54
|
+
// console.log("******** Response for url:", res);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
if (res && res.status == 200 && res.data) {
|
|
58
|
+
if (callback) {
|
|
59
|
+
callback(null, res.data);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
|
|
64
|
+
if (callback) {
|
|
65
|
+
callback(Utils.getErr({message: "Response status not 200"}, options, res), null, null);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
})
|
|
69
|
+
.catch(function (error) {
|
|
70
|
+
// console.error(error);
|
|
71
|
+
if (callback) {
|
|
72
|
+
callback(error, null, null);
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
static getErr(err, request, response) {
|
|
78
|
+
let res_err = {}
|
|
79
|
+
res_err.http_err = err;
|
|
80
|
+
res_err.http_request = request;
|
|
81
|
+
res_err.http_response = response;
|
|
82
|
+
return res_err;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
module.exports = Utils
|
package/index.js
CHANGED
|
@@ -32,6 +32,7 @@ const { DirectivesChatbotPlug } = require('./tiledeskChatbotPlugs/DirectivesChat
|
|
|
32
32
|
let mongoose = require('mongoose');
|
|
33
33
|
// const { Directives } = require('./tiledeskChatbotPlugs/directives/Directives.js');
|
|
34
34
|
const { TiledeskChatbotUtil } = require('./models/TiledeskChatbotUtil.js'); //require('@tiledesk/tiledesk-chatbot-util');
|
|
35
|
+
const AiService = require('./TiledeskServices/AIService.js');
|
|
35
36
|
let API_ENDPOINT = null;
|
|
36
37
|
let TILEBOT_ENDPOINT = null;
|
|
37
38
|
let staticBots;
|
|
@@ -63,13 +64,18 @@ router.post('/ext/:botid', async (req, res) => {
|
|
|
63
64
|
message.request.id_project = projectId;
|
|
64
65
|
}
|
|
65
66
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
67
|
+
/** MANAGE AUDIO FILE MESSAGE */
|
|
68
|
+
let aiService = new AiService({
|
|
69
|
+
API_ENDPOINT: API_ENDPOINT,
|
|
70
|
+
JWT_TOKEN: token,
|
|
71
|
+
PROJECT_ID: projectId
|
|
72
|
+
})
|
|
73
|
+
let isAudio = TiledeskChatbotUtil.isAudioMessage(message)
|
|
74
|
+
if(isAudio){
|
|
75
|
+
message.text = await aiService.speechToText(message.metadata.src).catch(err => {
|
|
76
|
+
res.send(400).send({"success": false, error: "Unable to translate audio message for request: " + requestId})
|
|
77
|
+
})
|
|
78
|
+
}
|
|
73
79
|
|
|
74
80
|
// validate reuqestId
|
|
75
81
|
let isValid = TiledeskChatbotUtil.validateRequestId(requestId, projectId);
|
package/logs/app.log
CHANGED
|
@@ -273,3 +273,7 @@ debug: (tybotRoute) POST /ext/:botid called: undefined
|
|
|
273
273
|
debug: (tybotRoute) POST /ext/:botid called: undefined
|
|
274
274
|
debug: (tybotRoute) POST /ext/:botid called: undefined
|
|
275
275
|
debug: (tybotRoute) POST /ext/:botid called: null
|
|
276
|
+
info: (multi-worker) Started succesfully
|
|
277
|
+
error: (multi-worker) Unable to connect with Mongoose DB The `uri` parameter to `openUri()` must be a string, got "undefined". Make sure the first parameter to `mongoose.connect()` or `mongoose.createConnection()` is a string. {"stack":"MongooseError: The `uri` parameter to `openUri()` must be a string, got \"undefined\". Make sure the first parameter to `mongoose.connect()` or `mongoose.createConnection()` is a string.\n at NativeConnection.createClient (/Users/gabriele95/Desktop/Tiledesk/tiledesk-chatbot/tybotRoute/node_modules/@tiledesk/tiledesk-multi-worker/node_modules/mongoose/lib/drivers/node-mongodb-native/connection.js:236:11)\n at NativeConnection.openUri (/Users/gabriele95/Desktop/Tiledesk/tiledesk-chatbot/tybotRoute/node_modules/@tiledesk/tiledesk-multi-worker/node_modules/mongoose/lib/connection.js:1069:34)\n at Mongoose.connect (/Users/gabriele95/Desktop/Tiledesk/tiledesk-chatbot/tybotRoute/node_modules/@tiledesk/tiledesk-multi-worker/node_modules/mongoose/lib/mongoose.js:446:15)\n at Object.<anonymous> (/Users/gabriele95/Desktop/Tiledesk/tiledesk-chatbot/tybotRoute/node_modules/@tiledesk/tiledesk-multi-worker/index.js:25:10)\n at Module._compile (node:internal/modules/cjs/loader:1165:14)\n at Object.Module._extensions..js (node:internal/modules/cjs/loader:1219:10)\n at Module.load (node:internal/modules/cjs/loader:1043:32)\n at Function.Module._load (node:internal/modules/cjs/loader:878:12)\n at Module.require (node:internal/modules/cjs/loader:1067:19)\n at require (node:internal/modules/cjs/helpers:103:18)\n at Object.<anonymous> (/Users/gabriele95/Desktop/Tiledesk/tiledesk-chatbot/tybotRoute/Logger.js:1:18)\n at Module._compile (node:internal/modules/cjs/loader:1165:14)\n at Object.Module._extensions..js (node:internal/modules/cjs/loader:1219:10)\n at Module.load (node:internal/modules/cjs/loader:1043:32)\n at Function.Module._load (node:internal/modules/cjs/loader:878:12)\n at Module.require (node:internal/modules/cjs/loader:1067:19)\n at require (node:internal/modules/cjs/helpers:103:18)\n at Object.<anonymous> (/Users/gabriele95/Desktop/Tiledesk/tiledesk-chatbot/tybotRoute/tiledeskChatbotPlugs/directives/DirReply.js:6:20)\n at Module._compile (node:internal/modules/cjs/loader:1165:14)\n at Object.Module._extensions..js (node:internal/modules/cjs/loader:1219:10)\n at Module.load (node:internal/modules/cjs/loader:1043:32)\n at Function.Module._load (node:internal/modules/cjs/loader:878:12)\n at Module.require (node:internal/modules/cjs/loader:1067:19)\n at require (node:internal/modules/cjs/helpers:103:18)\n at Object.<anonymous> (/Users/gabriele95/Desktop/Tiledesk/tiledesk-chatbot/tybotRoute/tiledeskChatbotPlugs/DirectivesChatbotPlug.js:37:22)\n at Module._compile (node:internal/modules/cjs/loader:1165:14)\n at Object.Module._extensions..js (node:internal/modules/cjs/loader:1219:10)\n at Module.load (node:internal/modules/cjs/loader:1043:32)\n at Function.Module._load (node:internal/modules/cjs/loader:878:12)\n at Module.require (node:internal/modules/cjs/loader:1067:19)\n at require (node:internal/modules/cjs/helpers:103:18)\n at Object.<anonymous> (/Users/gabriele95/Desktop/Tiledesk/tiledesk-chatbot/tybotRoute/ExtUtil.js:3:35)\n at Module._compile (node:internal/modules/cjs/loader:1165:14)\n at Object.Module._extensions..js (node:internal/modules/cjs/loader:1219:10)\n at Module.load (node:internal/modules/cjs/loader:1043:32)\n at Function.Module._load (node:internal/modules/cjs/loader:878:12)\n at Module.require (node:internal/modules/cjs/loader:1067:19)\n at require (node:internal/modules/cjs/helpers:103:18)\n at Object.<anonymous> (/Users/gabriele95/Desktop/Tiledesk/tiledesk-chatbot/tybotRoute/index.js:6:21)\n at Module._compile (node:internal/modules/cjs/loader:1165:14)\n at Object.Module._extensions..js (node:internal/modules/cjs/loader:1219:10)\n at Module.load (node:internal/modules/cjs/loader:1043:32)\n at Function.Module._load (node:internal/modules/cjs/loader:878:12)\n at Module.require (node:internal/modules/cjs/loader:1067:19)\n at require (node:internal/modules/cjs/helpers:103:18)\n at Object.<anonymous> (/Users/gabriele95/Desktop/Tiledesk/tiledesk-chatbot/tybotRoute/test/anomaly-detection-test.js:3:15)\n at Module._compile (node:internal/modules/cjs/loader:1165:14)\n at Object.Module._extensions..js (node:internal/modules/cjs/loader:1219:10)\n at Module.load (node:internal/modules/cjs/loader:1043:32)\n at Function.Module._load (node:internal/modules/cjs/loader:878:12)\n at Module.require (node:internal/modules/cjs/loader:1067:19)\n at require (node:internal/modules/cjs/helpers:103:18)\n at Object.exports.requireOrImport (/Users/gabriele95/Desktop/Tiledesk/tiledesk-chatbot/tybotRoute/node_modules/mocha/lib/esm-utils.js:42:12)\n at Object.exports.loadFilesAsync (/Users/gabriele95/Desktop/Tiledesk/tiledesk-chatbot/tybotRoute/node_modules/mocha/lib/esm-utils.js:55:34)\n at Mocha.loadFilesAsync (/Users/gabriele95/Desktop/Tiledesk/tiledesk-chatbot/tybotRoute/node_modules/mocha/lib/mocha.js:473:19)\n at singleRun (/Users/gabriele95/Desktop/Tiledesk/tiledesk-chatbot/tybotRoute/node_modules/mocha/lib/cli/run-helpers.js:125:15)\n at exports.runMocha (/Users/gabriele95/Desktop/Tiledesk/tiledesk-chatbot/tybotRoute/node_modules/mocha/lib/cli/run-helpers.js:190:10)\n at Object.exports.handler (/Users/gabriele95/Desktop/Tiledesk/tiledesk-chatbot/tybotRoute/node_modules/mocha/lib/cli/run.js:362:11)\n at /Users/gabriele95/Desktop/Tiledesk/tiledesk-chatbot/tybotRoute/node_modules/yargs/build/index.cjs:443:71"}
|
|
278
|
+
info: (multi-worker) Started succesfully
|
|
279
|
+
error: (multi-worker) Unable to connect with Mongoose DB The `uri` parameter to `openUri()` must be a string, got "undefined". Make sure the first parameter to `mongoose.connect()` or `mongoose.createConnection()` is a string. {"stack":"MongooseError: The `uri` parameter to `openUri()` must be a string, got \"undefined\". Make sure the first parameter to `mongoose.connect()` or `mongoose.createConnection()` is a string.\n at NativeConnection.createClient (/Users/gabriele95/Desktop/Tiledesk/tiledesk-chatbot/tybotRoute/node_modules/@tiledesk/tiledesk-multi-worker/node_modules/mongoose/lib/drivers/node-mongodb-native/connection.js:236:11)\n at NativeConnection.openUri (/Users/gabriele95/Desktop/Tiledesk/tiledesk-chatbot/tybotRoute/node_modules/@tiledesk/tiledesk-multi-worker/node_modules/mongoose/lib/connection.js:1069:34)\n at Mongoose.connect (/Users/gabriele95/Desktop/Tiledesk/tiledesk-chatbot/tybotRoute/node_modules/@tiledesk/tiledesk-multi-worker/node_modules/mongoose/lib/mongoose.js:446:15)\n at Object.<anonymous> (/Users/gabriele95/Desktop/Tiledesk/tiledesk-chatbot/tybotRoute/node_modules/@tiledesk/tiledesk-multi-worker/index.js:25:10)\n at Module._compile (node:internal/modules/cjs/loader:1165:14)\n at Object.Module._extensions..js (node:internal/modules/cjs/loader:1219:10)\n at Module.load (node:internal/modules/cjs/loader:1043:32)\n at Function.Module._load (node:internal/modules/cjs/loader:878:12)\n at Module.require (node:internal/modules/cjs/loader:1067:19)\n at require (node:internal/modules/cjs/helpers:103:18)\n at Object.<anonymous> (/Users/gabriele95/Desktop/Tiledesk/tiledesk-chatbot/tybotRoute/Logger.js:1:18)\n at Module._compile (node:internal/modules/cjs/loader:1165:14)\n at Object.Module._extensions..js (node:internal/modules/cjs/loader:1219:10)\n at Module.load (node:internal/modules/cjs/loader:1043:32)\n at Function.Module._load (node:internal/modules/cjs/loader:878:12)\n at Module.require (node:internal/modules/cjs/loader:1067:19)\n at require (node:internal/modules/cjs/helpers:103:18)\n at Object.<anonymous> (/Users/gabriele95/Desktop/Tiledesk/tiledesk-chatbot/tybotRoute/tiledeskChatbotPlugs/directives/DirReply.js:6:20)\n at Module._compile (node:internal/modules/cjs/loader:1165:14)\n at Object.Module._extensions..js (node:internal/modules/cjs/loader:1219:10)\n at Module.load (node:internal/modules/cjs/loader:1043:32)\n at Function.Module._load (node:internal/modules/cjs/loader:878:12)\n at Module.require (node:internal/modules/cjs/loader:1067:19)\n at require (node:internal/modules/cjs/helpers:103:18)\n at Object.<anonymous> (/Users/gabriele95/Desktop/Tiledesk/tiledesk-chatbot/tybotRoute/tiledeskChatbotPlugs/DirectivesChatbotPlug.js:37:22)\n at Module._compile (node:internal/modules/cjs/loader:1165:14)\n at Object.Module._extensions..js (node:internal/modules/cjs/loader:1219:10)\n at Module.load (node:internal/modules/cjs/loader:1043:32)\n at Function.Module._load (node:internal/modules/cjs/loader:878:12)\n at Module.require (node:internal/modules/cjs/loader:1067:19)\n at require (node:internal/modules/cjs/helpers:103:18)\n at Object.<anonymous> (/Users/gabriele95/Desktop/Tiledesk/tiledesk-chatbot/tybotRoute/ExtUtil.js:3:35)\n at Module._compile (node:internal/modules/cjs/loader:1165:14)\n at Object.Module._extensions..js (node:internal/modules/cjs/loader:1219:10)\n at Module.load (node:internal/modules/cjs/loader:1043:32)\n at Function.Module._load (node:internal/modules/cjs/loader:878:12)\n at Module.require (node:internal/modules/cjs/loader:1067:19)\n at require (node:internal/modules/cjs/helpers:103:18)\n at Object.<anonymous> (/Users/gabriele95/Desktop/Tiledesk/tiledesk-chatbot/tybotRoute/index.js:6:21)\n at Module._compile (node:internal/modules/cjs/loader:1165:14)\n at Object.Module._extensions..js (node:internal/modules/cjs/loader:1219:10)\n at Module.load (node:internal/modules/cjs/loader:1043:32)\n at Function.Module._load (node:internal/modules/cjs/loader:878:12)\n at Module.require (node:internal/modules/cjs/loader:1067:19)\n at require (node:internal/modules/cjs/helpers:103:18)\n at Object.<anonymous> (/Users/gabriele95/Desktop/Tiledesk/tiledesk-chatbot/tybotRoute/test/anomaly-detection-test.js:3:15)\n at Module._compile (node:internal/modules/cjs/loader:1165:14)\n at Object.Module._extensions..js (node:internal/modules/cjs/loader:1219:10)\n at Module.load (node:internal/modules/cjs/loader:1043:32)\n at Function.Module._load (node:internal/modules/cjs/loader:878:12)\n at Module.require (node:internal/modules/cjs/loader:1067:19)\n at require (node:internal/modules/cjs/helpers:103:18)\n at Object.exports.requireOrImport (/Users/gabriele95/Desktop/Tiledesk/tiledesk-chatbot/tybotRoute/node_modules/mocha/lib/esm-utils.js:42:12)\n at Object.exports.loadFilesAsync (/Users/gabriele95/Desktop/Tiledesk/tiledesk-chatbot/tybotRoute/node_modules/mocha/lib/esm-utils.js:55:34)\n at Mocha.loadFilesAsync (/Users/gabriele95/Desktop/Tiledesk/tiledesk-chatbot/tybotRoute/node_modules/mocha/lib/mocha.js:473:19)\n at singleRun (/Users/gabriele95/Desktop/Tiledesk/tiledesk-chatbot/tybotRoute/node_modules/mocha/lib/cli/run-helpers.js:125:15)\n at exports.runMocha (/Users/gabriele95/Desktop/Tiledesk/tiledesk-chatbot/tybotRoute/node_modules/mocha/lib/cli/run-helpers.js:190:10)\n at Object.exports.handler (/Users/gabriele95/Desktop/Tiledesk/tiledesk-chatbot/tybotRoute/node_modules/mocha/lib/cli/run.js:362:11)\n at /Users/gabriele95/Desktop/Tiledesk/tiledesk-chatbot/tybotRoute/node_modules/yargs/build/index.cjs:443:71"}
|
|
@@ -480,6 +480,13 @@ class TiledeskChatbotUtil {
|
|
|
480
480
|
return false;
|
|
481
481
|
}
|
|
482
482
|
|
|
483
|
+
static isAudioMessage(message){
|
|
484
|
+
if (message && message.type && message.type === 'file' && message.metadata && message.metadata.src && message.metadata.type.includes('audio') ) {
|
|
485
|
+
return true;
|
|
486
|
+
}
|
|
487
|
+
return false;
|
|
488
|
+
}
|
|
489
|
+
|
|
483
490
|
static lastUserMessageFrom(msg) {
|
|
484
491
|
let message = {};
|
|
485
492
|
message["senderFullname"] = msg["senderFullname"]; // ex. "Bot"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tiledesk/tiledesk-tybot-connector",
|
|
3
|
-
"version": "0.2.153-
|
|
3
|
+
"version": "0.2.153-rc3",
|
|
4
4
|
"description": "Tiledesk Tybot connector",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
"@tiledesk/tiledesk-chatbot-client": "^0.5.30",
|
|
16
16
|
"@tiledesk/tiledesk-chatbot-util": "^0.8.39",
|
|
17
17
|
"@tiledesk/tiledesk-client": "^0.10.13",
|
|
18
|
+
"@tiledesk/tiledesk-multi-worker": "^0.1.14",
|
|
18
19
|
"accept-language-parser": "^1.5.0",
|
|
19
20
|
"axios": "^1.7.7",
|
|
20
21
|
"body-parser": "^1.19.0",
|
|
@@ -3,6 +3,7 @@ const { TiledeskChatbot } = require('../../models/TiledeskChatbot');
|
|
|
3
3
|
const { TiledeskChatbotUtil } = require('../../models/TiledeskChatbotUtil');
|
|
4
4
|
let axios = require('axios');
|
|
5
5
|
const { TiledeskClient } = require('@tiledesk/tiledesk-client');
|
|
6
|
+
const { Logger } = require('../../Logger');
|
|
6
7
|
|
|
7
8
|
class DirReply {
|
|
8
9
|
|
|
@@ -16,6 +17,7 @@ class DirReply {
|
|
|
16
17
|
this.token = context.token;
|
|
17
18
|
this.tdcache = context.tdcache;
|
|
18
19
|
this.log = context.log;
|
|
20
|
+
this.logger = new Logger({ request_id: this.requestId, dev: this.context.supportRequest.draft });
|
|
19
21
|
|
|
20
22
|
this.API_ENDPOINT = context.API_ENDPOINT;
|
|
21
23
|
this.tdClient = new TiledeskClient({
|
|
@@ -41,7 +43,10 @@ class DirReply {
|
|
|
41
43
|
callback();
|
|
42
44
|
return;
|
|
43
45
|
}
|
|
46
|
+
this.logger.info("1 Execute action reply for " + directive.action.text)
|
|
47
|
+
|
|
44
48
|
this.go(action, () => {
|
|
49
|
+
this.logger.info("6 End of action reply " + directive.action.text + " -> callback")
|
|
45
50
|
callback();
|
|
46
51
|
});
|
|
47
52
|
}
|
|
@@ -64,6 +69,8 @@ class DirReply {
|
|
|
64
69
|
const filler = new Filler();
|
|
65
70
|
// fill text attribute
|
|
66
71
|
message.text = filler.fill(message.text, requestAttributes);
|
|
72
|
+
this.logger.info("2 Sending reply " + message.text);
|
|
73
|
+
|
|
67
74
|
if (message.metadata) {
|
|
68
75
|
if (this.log) {console.log("filling message 'metadata':", JSON.stringify(message.metadata));}
|
|
69
76
|
if (message.metadata.src) {
|
|
@@ -139,6 +146,8 @@ class DirReply {
|
|
|
139
146
|
}
|
|
140
147
|
// send!
|
|
141
148
|
let cleanMessage = message;
|
|
149
|
+
this.logger.info("3 Sending reply (text) " + cleanMessage.text);
|
|
150
|
+
this.logger.info("4 Sending reply with clean message " + JSON.stringify(cleanMessage));
|
|
142
151
|
// cleanMessage = TiledeskChatbotUtil.removeEmptyReplyCommands(message);
|
|
143
152
|
// if (!TiledeskChatbotUtil.isValidReply(cleanMessage)) {
|
|
144
153
|
// console.log("invalid message", cleanMessage);
|
|
@@ -156,8 +165,10 @@ class DirReply {
|
|
|
156
165
|
(err) => {
|
|
157
166
|
if (err) {
|
|
158
167
|
console.error("Error sending reply:", err);
|
|
168
|
+
this.logger.error("Error sending reply: " + err);
|
|
159
169
|
}
|
|
160
170
|
if (this.log) {console.log("Reply message sent:", JSON.stringify(cleanMessage));}
|
|
171
|
+
this.logger.info("5 Reply message sent");
|
|
161
172
|
const delay = TiledeskChatbotUtil.totalMessageWait(cleanMessage);
|
|
162
173
|
// console.log("got total delay:", delay)
|
|
163
174
|
if (delay > 0 && delay <= 30000) { // prevent long delays
|