AVATAR Forum
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
-28%
Le deal à ne pas rater :
Précommande : Smartphone Google Pixel 8a 5G Double Sim 128Go ...
389 € 539 €
Voir le deal

plugin AlloCine

3 participants

Aller en bas

plugin AlloCine Empty plugin AlloCine

Message par halim Mer 5 Juil - 11:16

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;
}
halim
halim

Messages : 93
Date d'inscription : 19/11/2022

Sophie aime ce message

Revenir en haut Aller en bas

plugin AlloCine Empty Re: plugin AlloCine

Message par halim Jeu 6 Juil - 12:08

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 ();
}
halim
halim

Messages : 93
Date d'inscription : 19/11/2022

Revenir en haut Aller en bas

plugin AlloCine Empty Re: plugin AlloCine

Message par Sophie Mer 12 Juil - 16:03

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

Sophie

Messages : 11
Date d'inscription : 06/12/2020
Age : 23
Localisation : Chartres

Revenir en haut Aller en bas

plugin AlloCine Empty Re: plugin AlloCine

Message par halim Mer 12 Juil - 18:59

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
halim
halim

Messages : 93
Date d'inscription : 19/11/2022

Revenir en haut Aller en bas

plugin AlloCine Empty Re: plugin AlloCine

Message par Sophie Jeu 13 Juil - 0:49

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.

Sophie

Messages : 11
Date d'inscription : 06/12/2020
Age : 23
Localisation : Chartres

Revenir en haut Aller en bas

plugin AlloCine Empty Re: plugin AlloCine

Message par Avatar Jeu 13 Juil - 12:14

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.
Avatar
Avatar

Messages : 81
Date d'inscription : 01/09/2020
Age : 58
Localisation : Toulouse

Sophie aime ce message

Revenir en haut Aller en bas

plugin AlloCine Empty Re: plugin AlloCine

Message par Sophie Jeu 13 Juil - 16:07

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.

Sophie

Messages : 11
Date d'inscription : 06/12/2020
Age : 23
Localisation : Chartres

Revenir en haut Aller en bas

plugin AlloCine Empty Re: plugin AlloCine

Message par Avatar Jeu 13 Juil - 20:05

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.





Avatar
Avatar

Messages : 81
Date d'inscription : 01/09/2020
Age : 58
Localisation : Toulouse

Revenir en haut Aller en bas

plugin AlloCine Empty Re: plugin AlloCine

Message par halim Ven 14 Juil - 9:25

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

halim
halim

Messages : 93
Date d'inscription : 19/11/2022

Revenir en haut Aller en bas

plugin AlloCine Empty Re: plugin AlloCine

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum