aide plugin horoscope
2 participants
Page 1 sur 1
aide plugin horoscope
bonjour, stephane un petit aide pour le plugin horoscope,le plugin fonctionne bien avec tout les signes astrologique , en faite c'est seulement avec un seul signe: le signe de la balance, la regle passe un peux mal
quand je dicte dans la phrase sans le mot "la" la regle passe mais si je dicte dans la phrase, exemple: donne moi l'horoscope de la balance , soit il ne reconnais pas la regle sois il prend le mot "la" dans la phrase , donc ne passe pas la regle
{
"modules": {
"Horoscope": {
"version": "1.0",
"name": "horoscope",
"rules": ["horoscope"]
}
}
}
exports.action = function(data, callback){
let client = setClient(data);
info("Horoscope from:", data.client, "To:", client);
horoscope (data, client);
callback();
}
function horoscope (data, client) {
const rule = data.action.rawSentence;
const signe = rule.replace(/donne-moi|quel|est|l'|horoscope|pour|le|de|du|des|signe/gi, "").replace("s", "").replace("la"," ").replace("corpion", "scorpion").replace("poison", "poissons").replace("balance", "balance").trim();
const cheerio = require("cheerio");
fetch(`https://www.horoscope.fr/horoscopes/aujourdhui/${signe.toLowerCase().replace("é", "e")}`)
.then(response => {
if (response.status !== 200) {
throw new Error(`La connexion à échoué, code erreur:${response.status}`);
}
return response.text();
})
.then((html) => {
const $ = cheerio.load(html);
const signeHoro = $('#__next > div > div.MainLayout_children__BSrlk > div.DailyHoroscopeContent_dailyHoroscopeContent__QrsY9.DailyHoroscopeContent_horoscopeContent__jI_SZ > div.DailyHoroscopeContent_contentWrapper__wemp0 > div.DailyHoroscopeContent_rightSide__Rme6b > section:nth-child(10) > div > p').text();
Avatar.speak(`Horoscope pour le signe ${signe}, ${signeHoro}`, data.client, () => {
Avatar.Speech.end(data.client);
});
})
.catch (error => {
Avatar.speak(`Je n'arrive pas a accédé au site, ${error}`, data.client, () => {
Avatar.Speech.end(data.client);
})
});
}
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;
}
quand je dicte dans la phrase sans le mot "la" la regle passe mais si je dicte dans la phrase, exemple: donne moi l'horoscope de la balance , soit il ne reconnais pas la regle sois il prend le mot "la" dans la phrase , donc ne passe pas la regle
{
"modules": {
"Horoscope": {
"version": "1.0",
"name": "horoscope",
"rules": ["horoscope"]
}
}
}
exports.action = function(data, callback){
let client = setClient(data);
info("Horoscope from:", data.client, "To:", client);
horoscope (data, client);
callback();
}
function horoscope (data, client) {
const rule = data.action.rawSentence;
const signe = rule.replace(/donne-moi|quel|est|l'|horoscope|pour|le|de|du|des|signe/gi, "").replace("s", "").replace("la"," ").replace("corpion", "scorpion").replace("poison", "poissons").replace("balance", "balance").trim();
const cheerio = require("cheerio");
fetch(`https://www.horoscope.fr/horoscopes/aujourdhui/${signe.toLowerCase().replace("é", "e")}`)
.then(response => {
if (response.status !== 200) {
throw new Error(`La connexion à échoué, code erreur:${response.status}`);
}
return response.text();
})
.then((html) => {
const $ = cheerio.load(html);
const signeHoro = $('#__next > div > div.MainLayout_children__BSrlk > div.DailyHoroscopeContent_dailyHoroscopeContent__QrsY9.DailyHoroscopeContent_horoscopeContent__jI_SZ > div.DailyHoroscopeContent_contentWrapper__wemp0 > div.DailyHoroscopeContent_rightSide__Rme6b > section:nth-child(10) > div > p').text();
Avatar.speak(`Horoscope pour le signe ${signe}, ${signeHoro}`, data.client, () => {
Avatar.Speech.end(data.client);
});
})
.catch (error => {
Avatar.speak(`Je n'arrive pas a accédé au site, ${error}`, data.client, () => {
Avatar.Speech.end(data.client);
})
});
}
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 : 93
Date d'inscription : 19/11/2022
Re: aide plugin horoscope
A mon avis le signe est toujours le dernier mot de la phrase.
Donc il suffit juste de spliter la phrase et de le prendre plutôt que de remplacer tous les mots par une chaine vide.
Ensuite tu dervais créer un tableau avec les signes, faire une comparaison et prendre la bonne syntaxe.
Ca devrait pas excéder 10 lignes de dev maxi
A+
Donc il suffit juste de spliter la phrase et de le prendre plutôt que de remplacer tous les mots par une chaine vide.
Ensuite tu dervais créer un tableau avec les signes, faire une comparaison et prendre la bonne syntaxe.
Ca devrait pas excéder 10 lignes de dev maxi
A+
Avatar- Messages : 81
Date d'inscription : 01/09/2020
Age : 58
Localisation : Toulouse
Re: aide plugin horoscope
merci pour ta réponse stephane , j'ai déja penser a créer un tableaux avec les signes et aussi rajouter une condition if , else, ou cas il ne trouve pas le signe dans la regle
merci encore pour ton aide
merci encore pour ton aide
halim- Messages : 93
Date d'inscription : 19/11/2022
Re: aide plugin horoscope
rebonjour stephane,
j'ai un tout petit peux tricher, j'ai était aider par google bard sur une syntaxe :
le plugin est fonctionnel, j'ai aussi rajouter dans le fichier propriété une petit régle un seul mot "le signe"; "rules": ["horoscope","sign"]
const rule = data.action.rawSentence;
const signeRegex = /(bélier|taureau|gémeaux|cancer|lion|vierge|balance|scorpion|sagittaire|capricorne|verseau|poissons)/i;
const match = rule.match(signeRegex);
const signe = match ? match[0] : null; // ici aider
if(!signe) {
Avatar.speak(`je n'ai pas compris le signe que tu recherche!`, data.client, () => {
Avatar.Speech.end(data.client);
});
return;
} else {
fetch(`https://www.horoscope.fr/horoscopes/aujourdhui/${signe.toLowerCase().replace("é", "e")}`)
// do stuf .......
}
merci,
j'ai un tout petit peux tricher, j'ai était aider par google bard sur une syntaxe :
le plugin est fonctionnel, j'ai aussi rajouter dans le fichier propriété une petit régle un seul mot "le signe"; "rules": ["horoscope","sign"]
const rule = data.action.rawSentence;
const signeRegex = /(bélier|taureau|gémeaux|cancer|lion|vierge|balance|scorpion|sagittaire|capricorne|verseau|poissons)/i;
const match = rule.match(signeRegex);
const signe = match ? match[0] : null; // ici aider
if(!signe) {
Avatar.speak(`je n'ai pas compris le signe que tu recherche!`, data.client, () => {
Avatar.Speech.end(data.client);
});
return;
} else {
fetch(`https://www.horoscope.fr/horoscopes/aujourdhui/${signe.toLowerCase().replace("é", "e")}`)
// do stuf .......
}
merci,
halim- Messages : 93
Date d'inscription : 19/11/2022
Sujets similaires
» aide plugin wikipédia
» aide creation plugin
» aide plugin volume du pc
» aide plugin Calculatrice
» aide rawsentence
» aide creation plugin
» aide plugin volume du pc
» aide plugin Calculatrice
» aide rawsentence
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum