plugin AlloCine
3 participants
Page 1 sur 1
plugin AlloCine
tout dabord je tiens a remercier 2 personnes de la communautes jarvis pour leur aide (solutions et idees)
le plugin allocine donne les films dans les salles de cinéma de votre ville
le plugin est developper avec la methode fetch qui recupere le contenu de la page html en format json, c'est fini des plugins avec le scrap(l'ancien javascript comme les plugins sarah[revolue])
pour le moment le plugin donne seulement les films en salle je rajouterai d'autre syntax ou une fonction(surement avec l'aide de stephane bascher)pour donner les horaires du film et le résumé du film
tout mes plugins seront officiellement dispo sur mon github apres validation de stephane bascher
exports.action = function(data, callback){
let tblCommand = {
alloCine : function() {alloCine (data, client);
},
command2 : function() {command2 (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) {
// B0114
// pour trouver la numero ou l'identifiant de la salle de cinema pour votre ville: https://www.allocine.fr/
let numSalle = Config.modules.AlloCine.numSalle;
if (!Config.modules.AlloCine.numSalle){
Avatar.speak("le numéro de salle de cinéma non renseigner, renseigne le sur le fichier propriété.", data.client, () => {
Avatar.Speech.end(data.client);
});
return;
}
fetch('https://www.allocine.fr/_/showtimes/theater-' + numSalle)
.then(function(response) {
if (response.ok) {
return response.json();
}
throw new Error('Erreur de réseau.');
})
.then(function(response2) {
info(response2);
Avatar.speak(response2.results[0].movie.title + "." + " " +
response2.results[1].movie.title + "." + " " +
response2.results[2].movie.title + "." + " " +
response2.results[3].movie.title + "." + " " +
response2.results[4].movie.title + "." + " " +
response2.results[5].movie.title + "." + " " +
response2.results[6].movie.title + "." + " " +
response2.results[7].movie.title + "." + " " +
response2.results[8].movie.title + "." + " " +
response2.results[9].movie.title + "." + " " +
response2.results[10].movie.title + "." + " " +
response2.results[11].movie.title + "." + " " +
response2.results[12].movie.title + "." + " " +
response2.results[13].movie.title, data.client, () => {
Avatar.Speech.end(data.client);
});
})
.catch(function(error) {
info(error);
Avatar.speak("Je n'arrive pas a accédé au site." + error, data.client, () => {
Avatar.Speech.end(data.client);
});
});
}
function command2 (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;
}
le plugin allocine donne les films dans les salles de cinéma de votre ville
le plugin est developper avec la methode fetch qui recupere le contenu de la page html en format json, c'est fini des plugins avec le scrap(l'ancien javascript comme les plugins sarah[revolue])
pour le moment le plugin donne seulement les films en salle je rajouterai d'autre syntax ou une fonction(surement avec l'aide de stephane bascher)pour donner les horaires du film et le résumé du film
tout mes plugins seront officiellement dispo sur mon github apres validation de stephane bascher
exports.action = function(data, callback){
let tblCommand = {
alloCine : function() {alloCine (data, client);
},
command2 : function() {command2 (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) {
// B0114
// pour trouver la numero ou l'identifiant de la salle de cinema pour votre ville: https://www.allocine.fr/
let numSalle = Config.modules.AlloCine.numSalle;
if (!Config.modules.AlloCine.numSalle){
Avatar.speak("le numéro de salle de cinéma non renseigner, renseigne le sur le fichier propriété.", data.client, () => {
Avatar.Speech.end(data.client);
});
return;
}
fetch('https://www.allocine.fr/_/showtimes/theater-' + numSalle)
.then(function(response) {
if (response.ok) {
return response.json();
}
throw new Error('Erreur de réseau.');
})
.then(function(response2) {
info(response2);
Avatar.speak(response2.results[0].movie.title + "." + " " +
response2.results[1].movie.title + "." + " " +
response2.results[2].movie.title + "." + " " +
response2.results[3].movie.title + "." + " " +
response2.results[4].movie.title + "." + " " +
response2.results[5].movie.title + "." + " " +
response2.results[6].movie.title + "." + " " +
response2.results[7].movie.title + "." + " " +
response2.results[8].movie.title + "." + " " +
response2.results[9].movie.title + "." + " " +
response2.results[10].movie.title + "." + " " +
response2.results[11].movie.title + "." + " " +
response2.results[12].movie.title + "." + " " +
response2.results[13].movie.title, data.client, () => {
Avatar.Speech.end(data.client);
});
})
.catch(function(error) {
info(error);
Avatar.speak("Je n'arrive pas a accédé au site." + error, data.client, () => {
Avatar.Speech.end(data.client);
});
});
}
function command2 (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
Sophie aime ce message
Re: plugin AlloCine
j'ai rajouter une petite fonction au plugin AlloCine pour trouver ou localiser automatiquement votre ville ou departement avec l'api du site: http://ip-api.com/json/
// Avatar.speak("Voici les films à" + ville, data.client, () => {}),
function alloCine (data, client) {
// B0114
// La numero ou l'identifiant de la salle de cinema pour votre ville: https://www.allocine.fr/
let numSalle = Config.modules.AlloCine.numSalle;
if (!Config.modules.AlloCine.numSalle){
Avatar.speak("le numéro de salle de cinéma non renseigner, renseigne le sur le fichier propriété.", data.client, () => {
Avatar.Speech.end(data.client);
});
return;
}
async function appel () {
let ville = await fetch('http://ip-api.com/json/')
.then(response => response.json())
.then(result => result.city);
fetch('https://www.allocine.fr/_/showtimes/theater-' + numSalle)
.then(function(response) {
if (response.ok) {
return response.json();
}
throw new Error('Erreur de réseau.');
})
.then(function(response2) {
info(response2);
Avatar.speak("Voici les films à" + ville, data.client, () => {
Avatar.speak(response2.results[0].movie.title + "." + " " +
response2.results[1].movie.title + "." + " " +
response2.results[2].movie.title + "." + " " +
response2.results[3].movie.title + "." + " " +
response2.results[4].movie.title + "." + " " +
response2.results[5].movie.title + "." + " " +
response2.results[6].movie.title + "." + " " +
response2.results[7].movie.title + "." + " " +
response2.results[8].movie.title + "." + " " +
response2.results[9].movie.title + "." + " " +
response2.results[10].movie.title + "." + " " +
response2.results[11].movie.title + "." + " " +
response2.results[12].movie.title + "." + " " +
response2.results[13].movie.title, data.client, () => {
Avatar.Speech.end(data.client);
});
});
})
.catch(function(error) {
info(error);
Avatar.speak("Je n'arrive pas a accédé au site." + error, data.client, () => {
Avatar.Speech.end(data.client);
});
});
}
appel ();
}
// Avatar.speak("Voici les films à" + ville, data.client, () => {}),
function alloCine (data, client) {
// B0114
// La numero ou l'identifiant de la salle de cinema pour votre ville: https://www.allocine.fr/
let numSalle = Config.modules.AlloCine.numSalle;
if (!Config.modules.AlloCine.numSalle){
Avatar.speak("le numéro de salle de cinéma non renseigner, renseigne le sur le fichier propriété.", data.client, () => {
Avatar.Speech.end(data.client);
});
return;
}
async function appel () {
let ville = await fetch('http://ip-api.com/json/')
.then(response => response.json())
.then(result => result.city);
fetch('https://www.allocine.fr/_/showtimes/theater-' + numSalle)
.then(function(response) {
if (response.ok) {
return response.json();
}
throw new Error('Erreur de réseau.');
})
.then(function(response2) {
info(response2);
Avatar.speak("Voici les films à" + ville, data.client, () => {
Avatar.speak(response2.results[0].movie.title + "." + " " +
response2.results[1].movie.title + "." + " " +
response2.results[2].movie.title + "." + " " +
response2.results[3].movie.title + "." + " " +
response2.results[4].movie.title + "." + " " +
response2.results[5].movie.title + "." + " " +
response2.results[6].movie.title + "." + " " +
response2.results[7].movie.title + "." + " " +
response2.results[8].movie.title + "." + " " +
response2.results[9].movie.title + "." + " " +
response2.results[10].movie.title + "." + " " +
response2.results[11].movie.title + "." + " " +
response2.results[12].movie.title + "." + " " +
response2.results[13].movie.title, data.client, () => {
Avatar.Speech.end(data.client);
});
});
})
.catch(function(error) {
info(error);
Avatar.speak("Je n'arrive pas a accédé au site." + error, data.client, () => {
Avatar.Speech.end(data.client);
});
});
}
appel ();
}
halim- Messages : 93
Date d'inscription : 19/11/2022
Re: plugin AlloCine
Halim l'api du site: http://ip-api.com/json/ ne te sera d'aucune utilité si tu l'associe avec celui d'Allociné car les zipcode d'Allociné sont propres à leurs site. Pour avoir quelque chose de propre il faudrait que tu trouves le moyen de récupérer le noms des villes + zipcode comme ça quand tu demanderas une villes précises tu auras le bon zipcode et donc les bonnes informations. Et pour ça il y a plusieurs techniques.
Bonne courage
Bonne courage
Sophie- Messages : 11
Date d'inscription : 06/12/2020
Age : 23
Localisation : Chartres
Re: plugin AlloCine
bonjour
je sais l'api ip.api n'est pas utile pour localiser une salle de cinema d'une ville, avec cette url " https://www.allocine.fr/_/showtimes/theater-B0114 ", je ne vois pas comment localiser le site allocine avec le zipcode d'une salle de cinema d'une ville,
avec le zipcode d'une salle de cinema qui est en chiffre : B0114, c'est difficille pour moi , en plus pour le moment je ne peux creer un plugin avec la sentence(mot clé comme sur des plugin de jarvis.ia), je peux creer un plugin avec des askme mais c'est pas fiable, j'ai deja regarder la documentation developpement du projet avatar mais je n'ai pas compris comment fonctionne la fonction action/l'ntention
sur avatar la regle est en anglais ensuite je pense elle est traduite par google traduction
si la regle sur le fichier proprieté est comme ca (en francais) : il y'a quoi au cinema, apres si je rajoute la sentence = nom de la ville
je dicte la regle il y'a quoi au cinema a paris , le systeme AVATAR ne comprend pas la regle
je sais l'api ip.api n'est pas utile pour localiser une salle de cinema d'une ville, avec cette url " https://www.allocine.fr/_/showtimes/theater-B0114 ", je ne vois pas comment localiser le site allocine avec le zipcode d'une salle de cinema d'une ville,
avec le zipcode d'une salle de cinema qui est en chiffre : B0114, c'est difficille pour moi , en plus pour le moment je ne peux creer un plugin avec la sentence(mot clé comme sur des plugin de jarvis.ia), je peux creer un plugin avec des askme mais c'est pas fiable, j'ai deja regarder la documentation developpement du projet avatar mais je n'ai pas compris comment fonctionne la fonction action/l'ntention
sur avatar la regle est en anglais ensuite je pense elle est traduite par google traduction
si la regle sur le fichier proprieté est comme ca (en francais) : il y'a quoi au cinema, apres si je rajoute la sentence = nom de la ville
je dicte la regle il y'a quoi au cinema a paris , le systeme AVATAR ne comprend pas la regle
halim- Messages : 93
Date d'inscription : 19/11/2022
Re: plugin AlloCine
Je t'ai déjà donner la solution Halim malheureusement je peux pas en dire plus et tu sais pourquoi.
Pour ce qui est de "la sentence" vois avec le créateur pour qu'il t'explique ou regarde la notice.
Pour ce qui est de "la sentence" vois avec le créateur pour qu'il t'explique ou regarde la notice.
Sophie- Messages : 11
Date d'inscription : 06/12/2020
Age : 23
Localisation : Chartres
Re: plugin AlloCine
Il y a une api allociné que tu peux tester (voir https://wiki.gromez.fr/dev/api/allocine_v3)
j'ai vu vite fait que tu pouvais directement passer une ville mais bon, l'idée de rentrer l'ID du cinéma me semble plus intéressante parce que sinon tu ne cibles pas un cinéma en particulier et ca c'est très ennuyeux.
Il y a aussi des modules Github que tu pourrais utiliser, j'en ai trouvé quelques-uns, voir celui de gromez.
Perso je vois pas mal de contraintes à s'essayer à ce genre de plugin.
Ca me semble assez difficile en regard des exceptions et choses à penser pour une réalisation qui tient debout.
Mais bon, après tu peux bidouiller un truc pour te faire plaisir, why not.
Pour une ville dans la règle, il y a plein de plugins que j'ai fait qui sont de très bon exemples. Tu devrais les examiner.
Le plus simple, vite fait, est aussi de passer la rawsentence pour ensuite spliter la ville.
j'ai vu vite fait que tu pouvais directement passer une ville mais bon, l'idée de rentrer l'ID du cinéma me semble plus intéressante parce que sinon tu ne cibles pas un cinéma en particulier et ca c'est très ennuyeux.
Il y a aussi des modules Github que tu pourrais utiliser, j'en ai trouvé quelques-uns, voir celui de gromez.
Perso je vois pas mal de contraintes à s'essayer à ce genre de plugin.
Ca me semble assez difficile en regard des exceptions et choses à penser pour une réalisation qui tient debout.
Mais bon, après tu peux bidouiller un truc pour te faire plaisir, why not.
Pour une ville dans la règle, il y a plein de plugins que j'ai fait qui sont de très bon exemples. Tu devrais les examiner.
Le plus simple, vite fait, est aussi de passer la rawsentence pour ensuite spliter la ville.
Avatar- Messages : 81
Date d'inscription : 01/09/2020
Age : 58
Localisation : Toulouse
Sophie aime ce message
Re: plugin AlloCine
Avatar merci pour ton aide mais l'api Allociné de Gromez ne fonctionne plus depuis fort longtemps malheureusement, le problème a été plusieurs fois signaler sur différents forum mais aucunes solutions n'a jamais été trouvée.
Sauf ce lien : https://www.allocine.fr/_/showtimes/theater-B0114 qui renvoie du Json lui fonctionne encore pour le moment. Et si il est associer à une petite base info qui retourne le zipcode peut être vraiment pas mal, c'est un peu de la bidouille mais ça fonctionne. Et oui c'est un peu chiant car il faut créer cette petite base info.
Sauf ce lien : https://www.allocine.fr/_/showtimes/theater-B0114 qui renvoie du Json lui fonctionne encore pour le moment. Et si il est associer à une petite base info qui retourne le zipcode peut être vraiment pas mal, c'est un peu de la bidouille mais ça fonctionne. Et oui c'est un peu chiant car il faut créer cette petite base info.
Sophie- Messages : 11
Date d'inscription : 06/12/2020
Age : 23
Localisation : Chartres
Re: plugin AlloCine
Bah de toute façon Halim l'aurait bien vu tout seul.
Mais effectivement, j'ai plutôt survolé le truc en regardant de plus près.
Sinon le plus rationnel est de laisser chacun ajouter l'ID qu'il veut dans le properties.
Mais effectivement, j'ai plutôt survolé le truc en regardant de plus près.
Sinon le plus rationnel est de laisser chacun ajouter l'ID qu'il veut dans le properties.
Avatar- Messages : 81
Date d'inscription : 01/09/2020
Age : 58
Localisation : Toulouse
Re: plugin AlloCine
bonjour
merci beaucoup pour vos reponses et de contribuer(stephane bascher, sophie)
comme a expliquer stephane bascher :
- l'idée de rentrer l'ID du cinéma me semble plus intéressante parce que sinon tu ne cibles pas un cinéma en particulier et ca c'est très ennuyeux.
- le plus rationnel est de laisser chacun ajouter l'ID qu'il veut dans le properties.
apres il reste a developper le plugin , qu'il soit correctement coder, qu'il donne les horaires du film , le resumer du film, ect...
merci
merci beaucoup pour vos reponses et de contribuer(stephane bascher, sophie)
comme a expliquer stephane bascher :
- l'idée de rentrer l'ID du cinéma me semble plus intéressante parce que sinon tu ne cibles pas un cinéma en particulier et ca c'est très ennuyeux.
- le plus rationnel est de laisser chacun ajouter l'ID qu'il veut dans le properties.
apres il reste a developper le plugin , qu'il soit correctement coder, qu'il donne les horaires du film , le resumer du film, ect...
merci
halim- Messages : 93
Date d'inscription : 19/11/2022
Sujets similaires
» Jarvis.ia plugin allociné
» Video Avatar-Plugin Allociné
» Plugin JoyeuxAnniverssaire
» Plugin AVATAR
» plugin Radio
» Video Avatar-Plugin Allociné
» Plugin JoyeuxAnniverssaire
» Plugin AVATAR
» plugin Radio
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|