aide rawsentence
2 participants
Page 1 sur 1
aide rawsentence
bonsoir stephane, un aide pour spliter la rewsentence s'il te plait
voila j'ai un peu avancer , jai pris exemple sur tes plugins et plus precisement le fichier action j'ai fait copie coller du code pour la sentence mais AVATAR me repond aussi en anglais la phrase que j'ai dicter
tu peux me dire ce que je doit modifier stp, merci d'avance
fichier prop
"rules": {
"disbonjour": ["say hello"],
"disbonsoir": ["say good evening","say good night"]
}
fichier action
'use strict';
// Ce module vérifie prépare l'objet data envoyé au plugin
Object.defineProperty(exports, "__esModule", {
value: true
});
let _helpers = require('../../node_modules/ava-ia/lib/helpers');
// Ignor� une fois dans TERM
var TERM = ['à', 'a', 'mes', 'la', 'aux', 'ma', 'mon', 'aux', 'le', 'les'];
// Toujours ignor� dans NOTERM
var NOTERM = ['�', 'la'];
// Non ignor� si un term est d�j� pris, ex: la d�fintion de la revue du cin�ma
var IGNORETERM = ['aux','a', 'à', 'mes', 'mon', 'ma'];
exports.default = function (state) {
return new Promise(function (resolve, reject) {
for (var rule in Config.modules.DisBonjourBonsoir.rules) {
var match = (0, _helpers.syntax)(state.sentence, Config.modules.DisBonjourBonsoir.rules[rule]);
if (match) break;
}
var TAKEN = [];
for (var i in TERM) {
TAKEN.push(0);
}
var sentence = '';
var indexDisBonjourBonsoir, pos, take;
var terms = state.rawSentence.split(' ');
terms.map(function (term, index) {
if (!indexDisBonjourBonsoir && term.toLowerCase() === 'DisBonjourBonsoir') indexDisBonjourBonsoir = true;
if (indexDisBonjourBonsoir) {
take = false;
pos = _.indexOf(TERM, term.toLowerCase());
if (pos != -1) {
if (TAKEN[pos] == 0) {
if (sentence && sentence.length > 0 && _.indexOf(IGNORETERM, term.toLowerCase()) != -1) {
take = true;
} else {
TAKEN[pos] = 1;
}
} else {
if (_.indexOf(NOTERM, term.toLowerCase()) == -1)
take = true;
}
} else {
take = true;
}
if (take) {
sentence += term;
if (terms[index + 1]) sentence += ' ';
}
}
});
// test si on a r�cup�r� quelque chose
if (sentence) {
sentence = sentence.replace('l\'', '');
sentence = sentence.sansAccent();
sentence = sentence.replace(sentence[0], sentence[0].toUpperCase());
// Renvoie le client qui a exécuté la règle ou une pièce dans la règle ou une pièce mappée ou par défaut...
}
else{
let room = Avatar.ia.clientFromRule (state.rawSentence, state.client);
setTimeout(function(){
if (state.debug) info('Action DisBonjourBonsoir');
state.action = {
module: 'DisBonjourBonsoir',
command: rule,
room: room,
sentence: sentence,
sentence: state.sentence,
rawSentence: state.rawSentence
};
resolve(state);
},
((Config.waitAction && Config.waitAction.time) ? Config.waitAction.time : 100));
}
});
};
String.prototype.sansAccent = function () {
var accent = [
/[\300-\306]/g, /[\340-\346]/g, // A, a
/[\310-\313]/g, /[\350-\353]/g, // E, e
/[\314-\317]/g, /[\354-\357]/g, // I, i
/[\322-\330]/g, /[\362-\370]/g, // O, o
/[\331-\334]/g, /[\371-\374]/g, // U, u
/[\321]/g, /[\361]/g, // N, n
/[\307]/g, /[\347]/g, // C, c
];
var noaccent = ['A', 'a', 'E', 'e', 'I', 'i', 'O', 'o', 'U', 'u', 'N', 'n', 'C', 'c'];
var str = this;
for (var i = 0; i < accent.length; i++) {
str = str.replace(accent[i], noaccent[i]);
}
return str;
};
fichier js
exports.action = function(data, callback){
var tblCommand = {
disbonjour : function() {
answer = data.action.sentence;
Avatar.speak(`bonjour ${answer}`, data.client, function(){
Avatar.Speech.end(data.client);
});
},
disbonsoir : function() {
answer = data.action.sentence;
Avatar.speak(`bonsoir ${answer}`, data.client, function(){
Avatar.Speech.end(data.client);
});
}
};
let client = setClient(data);
info("DisBonjourBonsoir:", data.action.command, "From:", data.client, "To:", client);
tblCommand[data.action.command]();
callback();
}
function setClient (data) {
let client = data.client;
if (data.action.room)
client = (data.action.room != 'current') ? data.action.room : (Avatar.currentRoom) ? Avatar.currentRoom : Config.default.client;
if (data.action.setRoom)
client = data.action.setRoom;
return client;
}
voila j'ai un peu avancer , jai pris exemple sur tes plugins et plus precisement le fichier action j'ai fait copie coller du code pour la sentence mais AVATAR me repond aussi en anglais la phrase que j'ai dicter
tu peux me dire ce que je doit modifier stp, merci d'avance
fichier prop
"rules": {
"disbonjour": ["say hello"],
"disbonsoir": ["say good evening","say good night"]
}
fichier action
'use strict';
// Ce module vérifie prépare l'objet data envoyé au plugin
Object.defineProperty(exports, "__esModule", {
value: true
});
let _helpers = require('../../node_modules/ava-ia/lib/helpers');
// Ignor� une fois dans TERM
var TERM = ['à', 'a', 'mes', 'la', 'aux', 'ma', 'mon', 'aux', 'le', 'les'];
// Toujours ignor� dans NOTERM
var NOTERM = ['�', 'la'];
// Non ignor� si un term est d�j� pris, ex: la d�fintion de la revue du cin�ma
var IGNORETERM = ['aux','a', 'à', 'mes', 'mon', 'ma'];
exports.default = function (state) {
return new Promise(function (resolve, reject) {
for (var rule in Config.modules.DisBonjourBonsoir.rules) {
var match = (0, _helpers.syntax)(state.sentence, Config.modules.DisBonjourBonsoir.rules[rule]);
if (match) break;
}
var TAKEN = [];
for (var i in TERM) {
TAKEN.push(0);
}
var sentence = '';
var indexDisBonjourBonsoir, pos, take;
var terms = state.rawSentence.split(' ');
terms.map(function (term, index) {
if (!indexDisBonjourBonsoir && term.toLowerCase() === 'DisBonjourBonsoir') indexDisBonjourBonsoir = true;
if (indexDisBonjourBonsoir) {
take = false;
pos = _.indexOf(TERM, term.toLowerCase());
if (pos != -1) {
if (TAKEN[pos] == 0) {
if (sentence && sentence.length > 0 && _.indexOf(IGNORETERM, term.toLowerCase()) != -1) {
take = true;
} else {
TAKEN[pos] = 1;
}
} else {
if (_.indexOf(NOTERM, term.toLowerCase()) == -1)
take = true;
}
} else {
take = true;
}
if (take) {
sentence += term;
if (terms[index + 1]) sentence += ' ';
}
}
});
// test si on a r�cup�r� quelque chose
if (sentence) {
sentence = sentence.replace('l\'', '');
sentence = sentence.sansAccent();
sentence = sentence.replace(sentence[0], sentence[0].toUpperCase());
// Renvoie le client qui a exécuté la règle ou une pièce dans la règle ou une pièce mappée ou par défaut...
}
else{
let room = Avatar.ia.clientFromRule (state.rawSentence, state.client);
setTimeout(function(){
if (state.debug) info('Action DisBonjourBonsoir');
state.action = {
module: 'DisBonjourBonsoir',
command: rule,
room: room,
sentence: sentence,
sentence: state.sentence,
rawSentence: state.rawSentence
};
resolve(state);
},
((Config.waitAction && Config.waitAction.time) ? Config.waitAction.time : 100));
}
});
};
String.prototype.sansAccent = function () {
var accent = [
/[\300-\306]/g, /[\340-\346]/g, // A, a
/[\310-\313]/g, /[\350-\353]/g, // E, e
/[\314-\317]/g, /[\354-\357]/g, // I, i
/[\322-\330]/g, /[\362-\370]/g, // O, o
/[\331-\334]/g, /[\371-\374]/g, // U, u
/[\321]/g, /[\361]/g, // N, n
/[\307]/g, /[\347]/g, // C, c
];
var noaccent = ['A', 'a', 'E', 'e', 'I', 'i', 'O', 'o', 'U', 'u', 'N', 'n', 'C', 'c'];
var str = this;
for (var i = 0; i < accent.length; i++) {
str = str.replace(accent[i], noaccent[i]);
}
return str;
};
fichier js
exports.action = function(data, callback){
var tblCommand = {
disbonjour : function() {
answer = data.action.sentence;
Avatar.speak(`bonjour ${answer}`, data.client, function(){
Avatar.Speech.end(data.client);
});
},
disbonsoir : function() {
answer = data.action.sentence;
Avatar.speak(`bonsoir ${answer}`, data.client, function(){
Avatar.Speech.end(data.client);
});
}
};
let client = setClient(data);
info("DisBonjourBonsoir:", data.action.command, "From:", data.client, "To:", client);
tblCommand[data.action.command]();
callback();
}
function setClient (data) {
let client = data.client;
if (data.action.room)
client = (data.action.room != 'current') ? data.action.room : (Avatar.currentRoom) ? Avatar.currentRoom : Config.default.client;
if (data.action.setRoom)
client = data.action.setRoom;
return client;
}
halim- Messages : 89
Date d'inscription : 19/11/2022
Re: aide rawsentence
Slt,
De ce que je vois:
if (!indexDisBonjourBonsoir && term.toLowerCase() === 'DisBonjourBonsoir') indexDisBonjourBonsoir = true;
le test [ term.toLowerCase() === 'DisBonjourBonsoir' ] me parait pas bon.
déjà le toLowerCase change en minuscules donc tu ne peux pas avoir de majuscules dans ton test.
Ensuite, tester 'DisBonjourBonsoir' est bizarre; A moins que tu dises ce mot dans la phrase... non, ca me parait impossible de dire ca ou alors avec des espaces genre "dis bonjour bonsoir".
Donc par conséquent, la variable "indexDisBonjourBonsoir" n'est jamais true et le if (indexDisBonjourBonsoir) n'est jamais exécuté.
Mai bon, si tu fais un console.log pour voir si tu passes dans le test ou la valeur de cette variable, tu vas vite le voir.
autre chose, tu as 2 objets state.action.sentence dans l'action. Pas bon.
A moins que j'ai survolé un peu vite ce que tu as fait... possible aussi
A+
De ce que je vois:
if (!indexDisBonjourBonsoir && term.toLowerCase() === 'DisBonjourBonsoir') indexDisBonjourBonsoir = true;
le test [ term.toLowerCase() === 'DisBonjourBonsoir' ] me parait pas bon.
déjà le toLowerCase change en minuscules donc tu ne peux pas avoir de majuscules dans ton test.
Ensuite, tester 'DisBonjourBonsoir' est bizarre; A moins que tu dises ce mot dans la phrase... non, ca me parait impossible de dire ca ou alors avec des espaces genre "dis bonjour bonsoir".
Donc par conséquent, la variable "indexDisBonjourBonsoir" n'est jamais true et le if (indexDisBonjourBonsoir) n'est jamais exécuté.
Mai bon, si tu fais un console.log pour voir si tu passes dans le test ou la valeur de cette variable, tu vas vite le voir.
autre chose, tu as 2 objets state.action.sentence dans l'action. Pas bon.
A moins que j'ai survolé un peu vite ce que tu as fait... possible aussi
A+
Avatar- Messages : 79
Date d'inscription : 01/09/2020
Age : 58
Localisation : Toulouse
Re: aide rawsentence
rebonjour stephane;
j'ai certain plugins avec rawSentence, l'assistant vocal AVATAR ne reconnais pas la phrase à dicter aprés spliter;
toujour le nom du film en dernier dans la régle: les horaires du film le seigneur des anneaux
ici dans cette exemple plugin allociné pour avoir les horaires du film
const movieName = data.action.rawSentence.toLowerCase().replace(/les|des|heures|horaires|du film/g, "").trim();
if (!movieName) {
Avatar.speak("Le nom du film n'a pas été trouvé. Veuillez réessayer.", data.client, () => {
Avatar.Speech.end(data.client);
});
return;
}
if (movieName.length > 0) {
Avatar.speak("Voici les horaires du film " + movieName, data.client, () => {
Avatar.Speech.end(data.client);
});
return;
}
une solution? merci d'avance
avec la fonction askme ca fonctionne mieux reconnais toute dans la phrase // en sortie le nom du film : le seigneur des anneaux
Avatar.askme("Tu veux les horaires de quel film ?", data.client, {
"*": "generic",
"terminer": "done"
}, 0,
function (answer, end) {
if (answer.toLowerCase().indexOf('generic') !== -1) {
end(client)
answer = answer.split(':')[1].toLowerCase();
if (answer.indexOf(answer) !== -1) {
answer = answer.replace("les", "").replace("horaires", "").replace("heures", "").replace("du", "").replace("de", "").replace("film", "").trim();
Avatar.speak("Voici les horaires du film " + answer, data.client, function () {
Avatar.Speech.end(data.client);
});
return;
} else {
Avatar.speak("Le nom du film n'a pas été trouvé. Veuillez réessayer.", data.client, () => {
Avatar.Speech.end(data.client);
});
}
}
});
j'ai certain plugins avec rawSentence, l'assistant vocal AVATAR ne reconnais pas la phrase à dicter aprés spliter;
toujour le nom du film en dernier dans la régle: les horaires du film le seigneur des anneaux
ici dans cette exemple plugin allociné pour avoir les horaires du film
const movieName = data.action.rawSentence.toLowerCase().replace(/les|des|heures|horaires|du film/g, "").trim();
if (!movieName) {
Avatar.speak("Le nom du film n'a pas été trouvé. Veuillez réessayer.", data.client, () => {
Avatar.Speech.end(data.client);
});
return;
}
if (movieName.length > 0) {
Avatar.speak("Voici les horaires du film " + movieName, data.client, () => {
Avatar.Speech.end(data.client);
});
return;
}
une solution? merci d'avance
avec la fonction askme ca fonctionne mieux reconnais toute dans la phrase // en sortie le nom du film : le seigneur des anneaux
Avatar.askme("Tu veux les horaires de quel film ?", data.client, {
"*": "generic",
"terminer": "done"
}, 0,
function (answer, end) {
if (answer.toLowerCase().indexOf('generic') !== -1) {
end(client)
answer = answer.split(':')[1].toLowerCase();
if (answer.indexOf(answer) !== -1) {
answer = answer.replace("les", "").replace("horaires", "").replace("heures", "").replace("du", "").replace("de", "").replace("film", "").trim();
Avatar.speak("Voici les horaires du film " + answer, data.client, function () {
Avatar.Speech.end(data.client);
});
return;
} else {
Avatar.speak("Le nom du film n'a pas été trouvé. Veuillez réessayer.", data.client, () => {
Avatar.Speech.end(data.client);
});
}
}
});
halim- Messages : 89
Date d'inscription : 19/11/2022
Re: aide rawsentence
Je suis désolé mais le copier/coller de ce que tu as fait est insuffisant.
J'aurais préféré au minimum un copier/coller de la console. Au moins on aurait vu ce que tu as dis comme règle et le résultat. Ton code n'apporte rien.
On ne sait même pas ce que ton replace donne comme résultat.
Pour info, tu as la sentence en anglais dejà spliter dans les objets state.tokens et state.tags que tu peux passer dans l'objet state envoyé au module du plugin (dans le module.action.js) c'est dans la doc de dev.
Il faut généralement que ces 2 objets est la même longueur.
Dans ton cas, tu as:
state.tokens = ["the", "schedule", "of", "the", "film", "the", "lord", "of", "the, "ring"]
state.tags = ["Determiner", "noun", "Preposition", "Determiner", "Verb", "Determiner", "Noun", "Preposition", "Determiner", "noun"]
Perso, je ferais quelque chose de plus élégant qui te permettrait de ne pas utiliser de replace vraiment pas beau. comme par exemple:
- Donne moi les horaires de film
- Quel film ?
- Le seigneur des anneaux
- voici les horaires pour le film....
- tu veux autre choses ?
- répète
- voici les horaires pour le film....
- tu veux autre choses ?
- Envoie le moi sur mon tél
- envoyé
- merci terminé
Pas de replace, pas de split. Propre. Fonctionnel.
J'aurais préféré au minimum un copier/coller de la console. Au moins on aurait vu ce que tu as dis comme règle et le résultat. Ton code n'apporte rien.
On ne sait même pas ce que ton replace donne comme résultat.
Pour info, tu as la sentence en anglais dejà spliter dans les objets state.tokens et state.tags que tu peux passer dans l'objet state envoyé au module du plugin (dans le module.action.js) c'est dans la doc de dev.
Il faut généralement que ces 2 objets est la même longueur.
Dans ton cas, tu as:
state.tokens = ["the", "schedule", "of", "the", "film", "the", "lord", "of", "the, "ring"]
state.tags = ["Determiner", "noun", "Preposition", "Determiner", "Verb", "Determiner", "Noun", "Preposition", "Determiner", "noun"]
Perso, je ferais quelque chose de plus élégant qui te permettrait de ne pas utiliser de replace vraiment pas beau. comme par exemple:
- Donne moi les horaires de film
- Quel film ?
- Le seigneur des anneaux
- voici les horaires pour le film....
- tu veux autre choses ?
- répète
- voici les horaires pour le film....
- tu veux autre choses ?
- Envoie le moi sur mon tél
- envoyé
- merci terminé
Pas de replace, pas de split. Propre. Fonctionnel.
Avatar- Messages : 79
Date d'inscription : 01/09/2020
Age : 58
Localisation : Toulouse
Re: aide rawsentence
excuse moi stephane, j'ai pas met tout le code du plugin allocine, en faite je veux developper le plugin sans les askme pour la fonction pour les horaires du film,
que la regle soit: exemple: les horaires du film le seigneur des anneaux
pour la fonction les film a l'affiche le plugin c'est bon donne tout les film en salle
ici j'utilise l'api en json pour les film a l'affiche, j'ai déja developper le plugin on scrapant le site allociné , les film à l'affiche et les sortie de la semaine, je pense c'est mieux que l'api allociné en json
"rules": {
"allocine": ["allociné","movy in the cinema","cinema","film * display"],
"filmHoraires": ["movie schedule","film schedule","hours * film","movie * hour"]
}
exports.action = function(data, callback){
let tblCommand = {
allocine : function() {alloCine (data, client);
},
filmHoraires : function() {filmHoraires (data, client);
}
};
let client = setClient(data);
info("AlloCine:", data.action.command, "From:", data.client, "To:", client);
tblCommand[data.action.command]();
callback();
}
function alloCine(data, client) {
const numSalle = Config.modules.AlloCine.numSalle;
if (!numSalle) {
Avatar.speak("L'ID de la salle de cinéma n'est pas renseigné. Veuillez le renseigner sur le fichier propriétés.", data.client, () => {
Avatar.Speech.end(data.client);
});
return;
}
async function main(data, client) {
try {
const locationResponse = await fetch('http://ip-api.com/json/');
const locationResult = await locationResponse.json();
const ville = locationResult.city;
const url = `https://www.allocine.fr/_/showtimes/theater-${numSalle}/`; // B0114
const response = await fetch(url);
if (response.status !== 200) {
throw new Error(`Code erreur: ${response.status}`);
}
const response2 = await response.json();
const movies = response2.results.map(result => result.movie.title).join('. ');
const showtimes = response2.results[0].showtimes.local;
const formattedShowtimes = showtimes.map(showtime => ` - ${showtime.startsAt}`).join('\n');
if(movies) {
Avatar.speak(`Voici les films à ${ville}: ${movies}.`, data.client, () => {
Avatar.Speech.end(data.client);
});
return;
}
} catch (error) {
Avatar.speak(`Je n'arrive pas à accéder au site allociné. Erreur: ${error.message}`, data.client, () => {
Avatar.Speech.end(data.client);
});
}
}
main(data, client);
}
(j'ai pas encore créér une variable pour les horaires du film pour le moment je veux déja avoir en sortie le titre du film)
ici avec les askme j'ai toujour en sortie le nom du film reconnais tout le titre du film
function filmHoraires(data, client) {
Avatar.askme("De quel film souhaitez-vous connaître les horaires ?", data.client, {
"*": "generic",
"terminer": "done"
}, 0, function (answer, end) {
if (!answer) {
end(client);
return Avatar.speak("Je n'ai pas compris. Veuillez réessayer.", data.client, () => {
filmHoraires (data, client);
});
}
if (answer.toLowerCase().indexOf('generic') != -1) {
end(client);
answer = answer.split(':')[1].toLowerCase();
if (answer.toLowerCase().indexOf(answer) !== -1) {
answer = answer.replace("les", "").replace("horaires", "").replace("heures", "").replace("du", "").replace("le", "").replace("film", "").trim();
Avatar.speak("Voici les horaires du film " + answer, data.client, () => {
/*
// if(movieName in movies) {}
http://Avatar.speak(`à ${time.join(', ').toLocaleString()} heures.`, data.client, () => {
// main(data, client, formattedShowtimes)
*/
Avatar.Speech.end(data.client);
return;
});
//});
}
}
switch(answer) {
case "done":
default:
Avatar.speak("Terminé, à bientot sur allociné", data.client, () => {
end(data.client, true);
});
}
});
}
je vais le refaire comme tu me la conseiller on scrapant le site allociné c'est mieux que l'api en json
merci stephane ; à +
que la regle soit: exemple: les horaires du film le seigneur des anneaux
pour la fonction les film a l'affiche le plugin c'est bon donne tout les film en salle
ici j'utilise l'api en json pour les film a l'affiche, j'ai déja developper le plugin on scrapant le site allociné , les film à l'affiche et les sortie de la semaine, je pense c'est mieux que l'api allociné en json
"rules": {
"allocine": ["allociné","movy in the cinema","cinema","film * display"],
"filmHoraires": ["movie schedule","film schedule","hours * film","movie * hour"]
}
exports.action = function(data, callback){
let tblCommand = {
allocine : function() {alloCine (data, client);
},
filmHoraires : function() {filmHoraires (data, client);
}
};
let client = setClient(data);
info("AlloCine:", data.action.command, "From:", data.client, "To:", client);
tblCommand[data.action.command]();
callback();
}
function alloCine(data, client) {
const numSalle = Config.modules.AlloCine.numSalle;
if (!numSalle) {
Avatar.speak("L'ID de la salle de cinéma n'est pas renseigné. Veuillez le renseigner sur le fichier propriétés.", data.client, () => {
Avatar.Speech.end(data.client);
});
return;
}
async function main(data, client) {
try {
const locationResponse = await fetch('http://ip-api.com/json/');
const locationResult = await locationResponse.json();
const ville = locationResult.city;
const url = `https://www.allocine.fr/_/showtimes/theater-${numSalle}/`; // B0114
const response = await fetch(url);
if (response.status !== 200) {
throw new Error(`Code erreur: ${response.status}`);
}
const response2 = await response.json();
const movies = response2.results.map(result => result.movie.title).join('. ');
const showtimes = response2.results[0].showtimes.local;
const formattedShowtimes = showtimes.map(showtime => ` - ${showtime.startsAt}`).join('\n');
if(movies) {
Avatar.speak(`Voici les films à ${ville}: ${movies}.`, data.client, () => {
Avatar.Speech.end(data.client);
});
return;
}
} catch (error) {
Avatar.speak(`Je n'arrive pas à accéder au site allociné. Erreur: ${error.message}`, data.client, () => {
Avatar.Speech.end(data.client);
});
}
}
main(data, client);
}
(j'ai pas encore créér une variable pour les horaires du film pour le moment je veux déja avoir en sortie le titre du film)
ici avec les askme j'ai toujour en sortie le nom du film reconnais tout le titre du film
function filmHoraires(data, client) {
Avatar.askme("De quel film souhaitez-vous connaître les horaires ?", data.client, {
"*": "generic",
"terminer": "done"
}, 0, function (answer, end) {
if (!answer) {
end(client);
return Avatar.speak("Je n'ai pas compris. Veuillez réessayer.", data.client, () => {
filmHoraires (data, client);
});
}
if (answer.toLowerCase().indexOf('generic') != -1) {
end(client);
answer = answer.split(':')[1].toLowerCase();
if (answer.toLowerCase().indexOf(answer) !== -1) {
answer = answer.replace("les", "").replace("horaires", "").replace("heures", "").replace("du", "").replace("le", "").replace("film", "").trim();
Avatar.speak("Voici les horaires du film " + answer, data.client, () => {
/*
// if(movieName in movies) {}
http://Avatar.speak(`à ${time.join(', ').toLocaleString()} heures.`, data.client, () => {
// main(data, client, formattedShowtimes)
*/
Avatar.Speech.end(data.client);
return;
});
//});
}
}
switch(answer) {
case "done":
default:
Avatar.speak("Terminé, à bientot sur allociné", data.client, () => {
end(data.client, true);
});
}
});
}
je vais le refaire comme tu me la conseiller on scrapant le site allociné c'est mieux que l'api en json
merci stephane ; à +
halim- Messages : 89
Date d'inscription : 19/11/2022
Sujets similaires
» aide a la sentence
» aide a une propriété
» aide methode fetch
» aide plugin volume du pc
» aide plugin horoscope
» aide a une propriété
» aide methode fetch
» aide plugin volume du pc
» aide plugin horoscope
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|