new(customer-satisfaction.gbapp): basic bad word handler added

This commit is contained in:
Rodrigo Rodriguez 2020-01-26 15:27:17 -03:00
parent 0842ee923e
commit 94993f1c56
5 changed files with 31 additions and 37 deletions

38
package-lock.json generated
View file

@ -5015,27 +5015,6 @@
}
}
},
"coveralls": {
"version": "3.0.9",
"resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.0.9.tgz",
"integrity": "sha512-nNBg3B1+4iDox5A5zqHKzUTiwl2ey4k2o0NEcVZYvl+GOSJdKBj4AJGKLv6h3SvWch7tABHePAQOSZWM9E2hMg==",
"dev": true,
"requires": {
"js-yaml": "^3.13.1",
"lcov-parse": "^1.0.0",
"log-driver": "^1.2.7",
"minimist": "^1.2.0",
"request": "^2.88.0"
},
"dependencies": {
"minimist": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
"dev": true
}
}
},
"cpass": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/cpass/-/cpass-2.2.0.tgz",
@ -8613,12 +8592,6 @@
"invert-kv": "^2.0.0"
}
},
"lcov-parse": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-1.0.0.tgz",
"integrity": "sha1-6w1GtUER68VhrLTECO+TY73I9+A=",
"dev": true
},
"le-table": {
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/le-table/-/le-table-4.2.2.tgz",
@ -9209,12 +9182,6 @@
"integrity": "sha1-2ZwHpmnp5tJOE2Lf4mbGdhavEwI=",
"dev": true
},
"log-driver": {
"version": "1.2.7",
"resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz",
"integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==",
"dev": true
},
"log-symbols": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
@ -19003,6 +18970,11 @@
"lodash": "^4.5.0"
}
},
"washyourmouthoutwithsoap": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/washyourmouthoutwithsoap/-/washyourmouthoutwithsoap-1.0.2.tgz",
"integrity": "sha512-N008S6j3VoPgjUwvW1Q2roTYg9Xuy1LfR/R4BdjddhzM8YBNgIR4FpSQ9zVmNkvpi/fS9cfAQLSjWKXE3wQ1zA=="
},
"weak-map": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/weak-map/-/weak-map-1.0.5.tgz",

View file

@ -97,7 +97,8 @@
"url-join": "4.0.1",
"vbscript-to-typescript": "1.0.8",
"wait-until": "0.0.2",
"walk-promise": "0.2.0"
"walk-promise": "0.2.0",
"washyourmouthoutwithsoap": "^1.0.2"
},
"devDependencies": {
"@types/chai": "^4.2.7",

View file

@ -42,6 +42,7 @@ const express = require('express');
const request = require('request-promise-native');
const removeRoute = require('express-remove-route');
const AuthenticationContext = require('adal-node').AuthenticationContext;
const wash = require('washyourmouthoutwithsoap');
import { AutoSaveStateMiddleware, BotFrameworkAdapter, ConversationState, MemoryStorage, UserState } from 'botbuilder';
import { ConfirmPrompt, WaterfallDialog } from 'botbuilder-dialogs';
import {
@ -540,7 +541,12 @@ export class GBMinService {
const isVMCall = Object.keys(min.scriptMap).find(key => min.scriptMap[key] === context.activity.text) !== undefined;
if (isVMCall) {
const simpleLocale = context.activity.locale.substring(0, 2);
const hasBadWord = wash.check(simpleLocale, context.activity.text);
if (hasBadWord) {
await step.beginDialog('/pleaseNoBadWords');
}else if (isVMCall) {
await GBMinService.callVM(context.activity.text, min, step);
} else if (context.activity.text.charAt(0) === '/') {
await step.beginDialog(context.activity.text);

View file

@ -56,6 +56,19 @@ export class FeedbackDialog extends IGBDialog {
public static setup(bot: BotAdapter, min: GBMinInstance) {
const service = new CSService();
min.dialogs.add(
new WaterfallDialog('/pleaseNoBadWords', [
async step => {
const locale = step.context.activity.locale;
await step.context.sendActivity(Messages[locale].please_no_bad_words);
return await step.next();
}
])
);
min.dialogs.add(
new WaterfallDialog('/feedbackNumber', [
async step => {

View file

@ -7,7 +7,8 @@ export const Messages = {
what_about_me: 'What about the service, please rate between 1 and 5.',
thanks: 'Thanks!',
im_sorry_lets_try: 'I\'m sorry. Let\'s try again...',
great_thanks: 'Great, thanks for sharing your thoughts.'
great_thanks: 'Great, thanks for sharing your thoughts.',
please_no_bad_words: 'Please, no bad words.'
},
'pt-BR': {
about_suggestions: 'Sugestões melhoram muito minha qualidade...',
@ -17,6 +18,7 @@ export const Messages = {
what_about_me: 'O que achou do meu atendimento, de 1 a 5?',
thanks: 'Obrigado!',
im_sorry_lets_try: 'Desculpe-me, vamos tentar novamente.',
great_thanks: 'Ótimo, obrigado por contribuir com sua resposta.'
great_thanks: 'Ótimo, obrigado por contribuir com sua resposta.',
please_no_bad_words: 'Por favor, sem palavrões!'
}
};