Forum des Objets Communicants et Solutions pour les Libérer...


 
AccueilAccueil  GalerieGalerie  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  Connexion  

Partagez | 
 

 [TUTO] Créer un flux privé basé sur un flux RSS

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
ezeta
Nabz Junior
Nabz Junior


Localisation : Toulouse
Nbr de messages : 84
Carottes : 2582

MessageSujet: [TUTO] Créer un flux privé basé sur un flux RSS   Ven 12 Aoû 2011 - 19:03

Je vois un paquet de questions tourner sur comment créer un flux privé dont les messages viennent d'un flux RSS... Même si je pense que funfoo mettra bientôt en place un système permettant de faire ça simplement (ou un équivalent), je vois que certains ont du mal à attendre jusque là ^^
Donc voilà un petit tuto sur comment faire ça le plus simplement possible (enfin, pas trop non plus ^^) sans rien savoir de la programmation... Bon, il faut quand même être un minimum geek (faudra par exemple chercher par vous même comment envoyer votre script sur votre espace personnel, si vous en avez un) et être motivé.

La solution que j’apporte ici n'est pas parfaite parce que j'opte pour une solution sans base de donnée (pour plus de simplicité), du coup il se peut que des messages sautent parfois...



Tout d'abord, les ingrédients nécessaire:

- Du temps !
- Une idée et un flux RSS (son adresse)
- Un espace personnel sur internet où stocker des pages web (pages perso free, ou autre opérateur)
- Un flux privé Nabizdead



Ensuite quelques conseils:

Le système que je propose va envoyer les titres des news vers un flux privé de votre choix. Il faut donc que ces titres ne dépassent généralement pas 100 caractères (les messages dans les flux privés sont limités à 100 caractères), soient toujours dans la même langue, et surtout soient compréhensibles sans avoir besoin de lire le contenu de l'article.
En effet, souvent les articles ont des titres assez fantaisistes qui ne veulent rien dire si l'on ne lit pas le contenu. Du coup pour, un flux basé sur de tels titres, on ne comprendrait rien à ce que nous raconterais le lapin: imaginez qu'ils vous dise "les carottes sont cuites", puis "Mais que se passe-t-il ?", suivit de "bleu ou rouge ?"... franchement, vous comprenez le contenu de l'article ? o_O Donc évitez ce genre de flux.
De même, pour le langage, votre flux va être fait pour parler français, ou bien anglais, mais pas les deux, du coup si vous le configurez pour parler français mais qu'un coup votre message est en français et un autre en anglais, votre lapin va tout prononcer à la française et ça va être incompréhensible !



Maintenant, voyons comment s'y prendre:

1. Première étape, créer un flux privé sur votre interface Nabizdead (le petit bouton "créer un flux privé" tout en bas).
Ensuite cliquer sur le nom de ce nouveau flux pour le configurer, donnez-lui un nom explicite (en pensant bien que le lapin lira ce nom avant chaque lecture de message du nouveau flux) et qui soit prononcé correctement, une description complète qui ne fasse pas que répéter le titre du flux (on a bien compris que "Bloblote.fr" est "flux pour bloblote.fr"... décrivez plutôt de quoi parle ce flux en général), et donnez l'adresse du flux dont vous allez extraire les informations.


2. Ensuite, toujours sur cette même interface de configuration de votre flux privé, en bas cliquez sur "activer l'API maintenant" en conservez l'adresse qui s'affiche alors au dessus du bouton. Ca va nous servir bientôt.


3. Créez maintenant sur votre ordi un fichier nommé "ceQueVousVoulez.php" et ouvrez-le dans un éditeur de texte simple (notepad par exemple).

Collez-y le texte suivant:

Code:

<?php

// periode entre chaque appel à ce script (en heures)
$periodeCRON = [periodeCRON];

// adresse du flux RSS
$adresseFluxRSS = '[AdresseDeMonFluxRSS]';

// adresse de l'API (de la forme 'http://www.nabizdead.net/api.php?action...&content=')
$adresseAPI = '[AdresseAPI]';



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



// calcul de la précédente date d'appel à ce script
$previousDate = date_create();
$previousDate->modify('-'.$periodeCRON.' hour');

// recuperation du flux rss
$fluxRSS = simplexml_load_file($adresseFluxRSS);

// parcours chaque article du flux
foreach(array_reverse($fluxRSS->xpath('/rss/channel/item')) as $news) {
   // recupère la date et le titre de l'article
   $dateItem = date_create($news->pubDate);
   $titleItem = $news->title.'.';
   
   if (mb_detect_encoding($titleItem, "auto", true) != 'UTF-8') {
      utf8_encode($titleItem);
   }
   
   // si l'article a été posté après la précédente exécution de ce script
   if ($previousDate < $dateItem) {
      // envoi du titre dans le flux
      echo "Article envoyé (".file_get_contents($adresseAPI.(urlencode($titleItem)), false) . ")<br>";
   } else {
      // sinon on ignore l'article
      echo "Article ignoré (". date_format($dateItem, "Y-m-d H:i:s") ." - ". date_timezone_get($dateItem)->getName() .")<br>";
   }
}

?>


4. remplaçez sur les premières lignes:
[AdresseDeMonFluxRSS] par l'adresse où se trouve le flux rss
[AdresseAPI] par l'adresse de l'API qui vous a été donnée lorsque vous avez activé l'API pour votre flux privé (en enlevant la fin, c'est à dire tout ce qu'il y a après "&content=")
[periodeCRON] par la fréquence à laquelle votre script CRON sera appelé (par exemple, si c'est toutes les 2 heures, mettez 2)


5. Ensuite, mettez ce fichier sur internet. Sur votre espace perso free par exemple ou sur votre propre serveur (je pourrais pas donner plus de détail sur cette étape parce que ça dépend de l'hébergeur de chacun).

A cette étape, vous devriez pouvoir lancer ce script manuellement en tapant l'adresse de votre fichier (celui sur internet, pas sur votre ordi) dans la barre d'adresse de votre navigateur.
Une liste de "Article envoyé" (pour les articles du flux qui datent de moins de X heures, où X est le nombre que vous avez mis pour [periodeCRON]) et "Article ignoré" pour les articles plus anciens devrait s'afficher après un petit temps de chargement. De même, après avoir lancé manuellement le script, la liste des articles envoyés devrait être visible dans votre flux... C'est presque fini !

Note: Il est possible qu'aucun article ne soit envoyé (seulement des "Article ignoré" sont affichés après avoir lancé le script, et le flux privé reste vide). C'est très probablement qu'aucun article dans le flux RSS n'est plus récent que [periodeCRON] heures. Il y a alors 2 solutions, soit attendre qu'un article vienne juste d'être posté pour relancer le script manuellement et vérifier ainsi qu'il fonctionne bien (le nouvel article devrait alors être envoyé vers le flux), soit modifier la valeur de [periodeCRON] par quelque chose de très élevé (du style 1000), envoyer le script mis à jour sur internet pour écraser la version précédente, relancer le script une fois (tous les articles devraient alors être envoyés), puis modifier à nouveau le script avec la valeur normale et le renvoyer sur internet en remplaçant le précédent (sinon tous les articles du flux seront envoyés à chaque fois, ce qui ne va pas puisque l'on ne veut envoyer que les nouveaux).


6. Maintenant, utilisez un service de CRON pour appeler automatiquement votre script toutes les X heures (où X est le nombre que vous avez mis pour [periodeCRON]). Je n'en connais pas donc je vais pas donner de nom, mais une petite recherche sur internet devrait suffire. C'est facile à trouver et généralement gratuit.


7. Enfin, dernière étape, et si tout fonctionne correctement: ouvrir le flux privé (si vous souhaitez que tout le monde puisse s'y abonner) en cliquant dans son panneau de configuration sur l'option "ouvert" au lieu de "sur invitation".



Voilà ! vous pouvez vous abonner à votre flux comme à tous les autres ! (ou inviter votre lapin manuellement si vous ne voulez pas ouvrir le flux)... Essayez quand même de vérifier de temps en temps si le flux continue de fonctionner, on ne sait jamais... De même, il est mieux de tester votre flux en invitant votre lapin manuellement pendant quelques jours (sans ouvrir le flux) pour vérifier que ça fonctionne bien avant d'ouvrir votre flux aux autres.

[Edit:] Plus besoin d'inviter manuellement son lapin, puisque depuis la dernière mise à jour votre lapin est automatiquement invité à votre flux privé lorsque vous le créez.


De mon côté j'ai vérifié que mon système marchait en créant un flux "Nouvelles recettes sur CuisineActuelle.fr" (basé sur le flux RSS http://www.cuisine-et-recette.fr/rss2/feed/Recipes) et a l'air de fonctionner (y a un petit problème d'accents lu bizarrement sur l'article qui vous sera lu si vous vous abonnez maintenant-là-tout-de-suite, mais normalement c'est corrigé sur le script que j'ai fourni ci-dessus).

"Amusez"-vous bien ! :-)


Dernière édition par ezeta le Mer 31 Aoû 2011 - 23:16, édité 5 fois
Revenir en haut Aller en bas
asenath
Lapin nain
Lapin nain


Localisation : jura
Nbr de messages : 1
Carottes : 2082

MessageSujet: Re: [TUTO] Créer un flux privé basé sur un flux RSS   Lun 15 Aoû 2011 - 1:30

Merci beaucoup, même si il faut que je m'y mette sérieusement, je vous remercie d'avoir indiqué la marche à suivre
Revenir en haut Aller en bas
Lulu'Cinda
Bronze Nabz
Bronze Nabz
avatar

Age : 31
Localisation : Lille (enfin par là)
Nabaztag : Wab'Tag (v2) et Nana (K)
Nbr de messages : 134
Carottes : 2850

MessageSujet: Re: [TUTO] Créer un flux privé basé sur un flux RSS   Mar 16 Aoû 2011 - 14:59

RedoX a écrit:
philippeimac a écrit:
l'écoute de radio web par exemple me semble tout à fait incompatible.

Ceci est tout à fait possible sur Nabizdead yellownabzsmile Le lapin seul se charge d'aller chercher le flux webradio, le serveur OJN ne lui donne que l'ordre et l'adresse.
Je n'ai pas encore choisi ma solution pour Wab'Tag toujours dans le coma, mais je pense pencher pour NabIzDead.

Seulement, je me demandais suite à ce post si cette évolution est envisagée ou non ? En effet, si j'ai bien compris le concept de Nabizdead qui est le "twitter des lapins", il existe des flux publics et des flux privés auxquels on peut s'abonner/se désabonner et qui lit uniquement 100 caractères.

Etant donné que les flux publics sont lus par tous les lapins, je me disais... pourquoi pas essayer de créer un flux marrant (à l'image de l'appli Karotz "Surprise !") ou pas marrant mais un podcast pourquoi pas, qui soit régulier du genre "une fois par semaine".
Revenir en haut Aller en bas
ezeta
Nabz Junior
Nabz Junior


Localisation : Toulouse
Nbr de messages : 84
Carottes : 2582

MessageSujet: Re: [TUTO] Créer un flux privé basé sur un flux RSS   Mar 16 Aoû 2011 - 15:10

Actuellement la création de flux mp3 n'est pas possible. Mais de ce que j'en ai compris, c'est quelque chose de prévu (tout comme la création de flux basé sur des flux RSS sans passer par toute ces machinerie)...
Revenir en haut Aller en bas
Lulu'Cinda
Bronze Nabz
Bronze Nabz
avatar

Age : 31
Localisation : Lille (enfin par là)
Nabaztag : Wab'Tag (v2) et Nana (K)
Nbr de messages : 134
Carottes : 2850

MessageSujet: Re: [TUTO] Créer un flux privé basé sur un flux RSS   Mar 16 Aoû 2011 - 15:11

Ok. Pas facile de savoir ce qui est prévu ou non. Aucune info sur le site NabIzDead et le topic ici est assez vide, alors...
Revenir en haut Aller en bas
ezeta
Nabz Junior
Nabz Junior


Localisation : Toulouse
Nbr de messages : 84
Carottes : 2582

MessageSujet: Re: [TUTO] Créer un flux privé basé sur un flux RSS   Mar 16 Aoû 2011 - 15:17

Oui, c'est vrai. C'est dans une réponse de funfoo (celui qui développe Nabizdead) sur le topic principal que j'ai cru comprendre ça.
C'est vrai que les infos sur le futur de Nabizdead sont rares. J'imagine que quand funfoo sera rentré de vacances et qu'il se penchera à nouveau sur ce serveur il pourra nos en dire plus... Peut être qu'il n'en dit pas trop pour éviter qu'on pose trop de questions ? ^^
Revenir en haut Aller en bas
Contenu sponsorisé




MessageSujet: Re: [TUTO] Créer un flux privé basé sur un flux RSS   

Revenir en haut Aller en bas
 
[TUTO] Créer un flux privé basé sur un flux RSS
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [TUTO] Créer un flux privé basé sur un flux RSS
» 7DTD - Créer un serveur dédié
» Tutorial : Flux RSS
» [TUTO] Configurer votre Webradio
» Les FLUX prives à thèmes postés sur Nabizdead

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum des Objets Communicants et Solutions pour les Libérer... :: II. Nabaztag, Karotz, mir:ror, Dal:Dal (Violet Object Operating System) :: Les Nabaztags sont sauvés ! Les solutions... :: [NID] Serveur NabIzDead-
Sauter vers: