Nabaztag, dis moi ce que je veux entendre !

12 février 2010 par blog.yann Laisser une réponse »

Pour tester :

Pour que votre lapin vous dise votre horoscope cliquez ici

Pour le programme TV du soir cliquez ici

Si vous possédez un lapin nabaztag, vous voudriez peut-être disposer de plus de fonctionnalités…

Exemple : Lapin ! donnes moi mon horoscope ou le programme TV !

Oui, mais le problème c’est que si vous demandez à votre cher et tendre lapin de lire un flux RSS, le résultat ne sera peut être pas celui que vous attendiez. En effet, il va peut être se contenter de dire « horoscope du lundi » puis « horoscope du mardi » etc… et oui car le lapin lit les titres du flux, hors, ce qui vous intéresse c’est juste la balise description du premier item du flux. Pour plus d’infos sur les flux RSS, consultez Wikipedia.

Donc ce que je vous propose de faire, à partir de la classe PHP développée par Dan Ruscoe, qui se trouve à l’adresse http://ruscoe.org/php-class-for-the-nabaztag-api/, c’est tout simplement de ne lire que n entrées du flux et de l’envoyer à votre Lapin chéri.

Vous devez tout d’abord, inclure la classe, puis renseigner le serial et le token de votre nabaztag. Enfin, vous saisissez l’adresse du flux et le nombre d’infos que le lapin devra dire.

include('nabClass.php');
// ---------- variables à modifier---------
$serial = '*******'; // le serial de votre lapin
$token = '*******'; // le token de votre lapin
// Flux RSS ex : Horoscope
$url_flux_rss = "http://www.un_flux_rss_horoscope/rss/verseau.php";
// nombre d'actus (horoscope =  1,  pour prog TV = nb chaines...)
$limite =  1;

//---------------------------------------------

$phrase = ""; // initialisation du texte à prononcer

// Creation de l'objet nabaztag
$nabaztag = new nabaztag($serial,$token);

$Xml = @simplexml_load_file($url_flux_rss);
if($Xml === false){
die("Erreur Flux, vérifiez l'adresse du flux");
}

$i = 0;
foreach ($Xml->channel->item as $mon_rss){
$titre = (string) utf8_decode($mon_rss->title);
$description = (string) utf8_decode($mon_rss->description);
$i++;
$phrase .= $titre." . ".$description;

if($i >= $limite){
break;
}
}
$phrase = html_entity_decode($phrase);
echo $phrase; // si on veut on affiche le texte qu'il va dire

if ($phrase){
$nabaztag->speak(utf8_encode($phrase)); // envoi son texte au lapin
}

// infos debug (optionnel)

echo "

<hr /><strong>Paramètres API: </strong>"
;

$nabaztag-&gt;display_api_params();

echo "<strong>Réponse :</strong>";

$nabaztag-&gt;display_api_response();

NB : pour des questions de droits/autorisations je n’ai pas mis un vrai flux, cependant je suis certain que vous n’aurez pas de mal à trouver un flux d’horoscope ou de programme tv ou ce que vous voulez….

Ensuite vous mettez le script en ligne. Pour l’executer, soit vous passez par un ztamp:s ou un nano:ztag et vous lui attribuer l’application : transmettre des données dans une url (dans /dev) sur le site de violet, et vous indiquez l’adresse du script. Soit vous passez par un cron sur votre hébergement pour qu’il soit dit à heure fixe.

Perso pour le programme TV, j’ai ajouté ça :

if(eregi("20:",$titre) ){
$titre = preg_replace('#\((.+)\)#U', '', $titre);
$phrase .= $titre.". ";
}

pour n’avoir que la première partie de soirée.



ShareThis

Publicité

7 commentaires

  1. Marine dit :

    Je suis vraiment « out » puisque je n’ai absolument rien compris. J’ai un nabaztag:tag depuis ce matin(cadeau), et je galère un peu pour comprendre comment ça fonctionne et du coup je doute de son utilité….

  2. admin dit :

    Bonjour Marine, j’étais en train de répondre à ton commentaire et puis je me suis dit que j’allais plutôt faire un article pour débuter avec son Nabaztag… alors c’est parti je l’écris dès maintenant. A bientôt.
    Voici donc l’article : http://blog.yann.info/2010/03/06/debuter-avec-son-nabaztag/

  3. Did dit :

    Comme Marine, je ne suis pas développeur et je ne comprends rien à tout ça.
    Pourtant j’aurais tant aimé que mon lapin me dise mon horoscope chaque matin comme du temps des nabcasts.
    En entrant des flux RSS d’horoscope sur Myviolet, je n’arrive à rien d’autre que faire lire le nom de mon signe…

  4. admin dit :

    Salut Did,
    Oui je comprend ton soucis… mais bonne nouvelle, la solution arrive ;) Le problème actuellement c’est effectivement que je n’héberge pas (pour limiter l’utilisation du serveur) le script , bien que tu puisses le tester sur cette page, ce n’est pas pratique pour l’activer à heure fixe ou avec un nano ou ztamps… Là je suis en contact avec le développeur du site zscript qui se propose d’héberger mon petit bout de programme. Ca sera fait très bientôt et tu auras enfin cette fonctionnalité ;) je te tiens au courant. A bientôt.

Laisser un commentaire