fix(core.gbapp): MSFT translator fixes and auto-start twice fixed.

This commit is contained in:
Rodrigo Rodriguez 2020-12-22 13:27:50 -03:00
parent bd965913fe
commit 81a0fdd5d0
2 changed files with 30 additions and 27 deletions

View file

@ -676,11 +676,13 @@ export class GBConversationalService {
if (!key) { if (!key) {
return process.env.DEFAULT_USER_LANGUAGE; return process.env.DEFAULT_USER_LANGUAGE;
} }
return await AzureText.getLocale( let language = await AzureText.getLocale(
key, key,
min.core.getParam<string>(min.instance, 'textAnalyticsEndpoint', null), min.core.getParam<string>(min.instance, 'textAnalyticsEndpoint', null),
text text
); );
return language === '(Unknown)' ? 'en' : language;
} }
public async spellCheck(min: GBMinInstance, text: string): Promise<string> { public async spellCheck(min: GBMinInstance, text: string): Promise<string> {

View file

@ -197,6 +197,7 @@ export class GBMinService {
await (activeMin as any).whatsAppDirectLine.resetConversationId(id); await (activeMin as any).whatsAppDirectLine.resetConversationId(id);
let startDialog = activeMin.core.getParam(activeMin.instance, 'Start Dialog', null); let startDialog = activeMin.core.getParam(activeMin.instance, 'Start Dialog', null);
GBLog.info(`Auto start dialog is now being called: ${startDialog}...`); GBLog.info(`Auto start dialog is now being called: ${startDialog}...`);
if (startDialog) { if (startDialog) {
@ -634,6 +635,7 @@ export class GBMinService {
user.loaded = true; user.loaded = true;
user.subjects = []; user.subjects = [];
user.cb = undefined; user.cb = undefined;
user.welcomed = false;
if (context.activity.from.id !== min.botId) { if (context.activity.from.id !== min.botId) {
const member = context.activity.from; const member = context.activity.from;
@ -671,13 +673,13 @@ export class GBMinService {
await CollectionUtil.asyncForEach(appPackages, async e => { await CollectionUtil.asyncForEach(appPackages, async e => {
await e.onNewSession(min, step); await e.onNewSession(min, step);
}); });
await step.beginDialog('/'); await step.beginDialog('/');
} else { } else {
const startDialog = min.core.getParam(min.instance, 'Start Dialog', null); const startDialog = min.core.getParam(min.instance, 'Start Dialog', null);
if (startDialog) if (startDialog && !user.welcomed) {
{ user.welcomed = true;
GBLog.info(`Auto start dialog is now being called: ${startDialog}...`); GBLog.info(`Auto start dialog is now being called: ${startDialog}...`);
await GBVMService.callVM(startDialog.toLowerCase(), min, step, this.deployer); await GBVMService.callVM(startDialog.toLowerCase(), min, step, this.deployer);
} }
@ -741,7 +743,7 @@ export class GBMinService {
private async processMessageActivity(context, min: GBMinInstance, step: GBDialogStep) { private async processMessageActivity(context, min: GBMinInstance, step: GBDialogStep) {
const user = await min.userProfile.get(context, {}); const user = await min.userProfile.get(context, {});
// Removes <at>Bot Id</at> from MS Teams. // Removes <at>Bot Id</at> from MS Teams.
context.activity.text = context.activity.text.trim(); context.activity.text = context.activity.text.trim();
@ -754,7 +756,7 @@ export class GBMinService {
if (user) { if (user) {
if (!user.conversation){ if (!user.conversation) {
user.conversation = await analytics.createConversation(user.systemUser); user.conversation = await analytics.createConversation(user.systemUser);
} }
@ -774,7 +776,7 @@ export class GBMinService {
}; };
const isVMCall = Object.keys(min.scriptMap).find(key => min.scriptMap[key] === context.activity.text) !== undefined; const isVMCall = Object.keys(min.scriptMap).find(key => min.scriptMap[key] === context.activity.text) !== undefined;
if (isVMCall) { if (isVMCall) {
await GBVMService.callVM(context.activity.text, min, step, this.deployer); await GBVMService.callVM(context.activity.text, min, step, this.deployer);
@ -839,7 +841,7 @@ export class GBMinService {
keepTextList = keepTextList.concat(result); keepTextList = keepTextList.concat(result);
} }
}); });
if (keepTextList) { if (keepTextList) {
keepTextList = keepTextList.filter(p => p.trim() !== ''); keepTextList = keepTextList.filter(p => p.trim() !== '');
let i = 0; let i = 0;
@ -917,31 +919,30 @@ export class GBMinService {
await step.continueDialog(); await step.continueDialog();
} else { } else {
// Checks if any .gbapp will handle this answer, if not goes to standard kb.gbapp. // Checks if any .gbapp will handle this answer, if not goes to standard kb.gbapp.
let handled = false; let nextDialog = null;
await CollectionUtil.asyncForEach(min.appPackages, async (e: IGBPackage) => { await CollectionUtil.asyncForEach(min.appPackages, async (e: IGBPackage) => {
if (
await e.onExchangeData(min, 'handleAnswer', { nextDialog = await e.onExchangeData(min, 'handleAnswer', {
query: text,
step: step,
notTranslatedQuery: originalText,
message: message ? message['dataValues'] : null,
user: user ? user['dataValues'] : null
})
) {
handled = true;
}
});
if (!handled) {
await step.beginDialog('/answer', {
query: text, query: text,
user: user ? user['dataValues'] : null, step: step,
message: message notTranslatedQuery: originalText,
message: message ? message['dataValues'] : null,
user: user ? user['dataValues'] : null
}); });
}
});
await step.beginDialog(nextDialog ? nextDialog : '/answer', {
query: text,
user: user ? user['dataValues'] : null,
message: message
});
} }
} }
} }