Forum dédié aux karot:z, nabaztag:tag, mir:ror, dal:dal...


 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  Connexion  

Partager | 
 

 [En cours] cronnab, le (web)crontab des pin:pins !

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : 1, 2  Suivant
AuteurMessage
Hunta_de_la_Radieuse
Frénétik Nabaztrice
Frénétik Nabaztrice


Age: 37
Localisation: Anse Lapin
Nom du Nabaztag: Hunta (v2)
Nbr de messages: 3955
Points: 2028

MessageSujet: [En cours] cronnab, le (web)crontab des pin:pins !   Mar 6 Jan 2009 - 5:33

Hello vous ! nabzciao

En lisant les sujets "API" et associés (idées de développement, concrétisation - ou non-, limites et évolutions), on s'aperçoit assez vite que l'une des contraintes est la difficulté de lancer ses mignons petits scripts à intervalle régulier... Certaines solutions existent comme "crontab" - qui nécessite en général un hébergement assez haut de gamme - ou les différents avatars de "w3bcr0n" - plus ou moins payants, plus ou moins satisfaisants au dire de ceux qui savent, hein... albino

Du coup, pourquoi pas des "nabcrons" ? big green

Violet permet à nos lapins de diffuser, par exemple, les flux RSS de notre choix à heure fixe ?!
Utilisons cette remarquable capacité de nos pin:pins ?

Concrètement (et, oui, assez tard), cet odieux script PHP de boucher mécanisé - uniquement ici à titre de test mais qui permet néanmoins à ma Nabaztagette de me donner les noms des membres connectés sur le forum où nous nous sentons si bien, hein, n'est-ce pas ? Cet odieux script, donc, est est déguisé en RSS, le coquin, et reçoit du coup l'acceptation violetienne de diffusion.
Le sacripand sera donc lancé à l'heure choisie ! Bingo ! yeahhh

Attention, c'est TRES sale ! nabz3

Code:
<?php

$site="http://www.example.com/";
$page_name="quiestsurleforum.php";
header('Content-type: application/rss+xml; charset=utf-8');

print ("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n");
print ("<rss version=\"2.0\"\n xmlns:atom=\"http://www.w3.org/2005/Atom\"\n xmlns:content=\"http://purl.org/rss/1.0/modules/content/\">\n

  <channel>\n
      <language>fr-fr</language>\n
      <atom:link href='".$site.$page_name."' rel='self' type='application/rss+xml' />
      <title>Qui est sur le forum</title>\n
      <description>Qui est sur le forum ?</description>\n
      <link>http://www.example.com/</link>\n");

//fonction get_token : http://www.ebrueggeman.com/blog/php/easily-parse-a-string/
function get_token($start_token, $end_token, $haystack, $offset = 1)
{
 
   $start = stripos($haystack, $start_token, $offset);
   $end = stripos(substr($haystack, $start), $end_token);
 
   if ($start !== false && $end !== false)
   {
      $start_pos = $start + strlen($start_token);
      $end_pos = $end - strlen($start_token);
      return substr($haystack, $start_pos, $end_pos);
   }
   return false;
}

$url = 'http://nabaztag.forumactif.fr/';
$str = file_get_contents($url);
$title = get_token('<br />Utilisateurs enregistr', '<br />Moteurs', $str);
//pour Mimi Cracra ! :
$p = urlencode($title);
$cleanTitle = ltrim($p,'%E9s+%3');

$veryCleanTitle = str_replace("A+", "", $cleanTitle);

$veryCleanTitle1 = str_replace("%3Ca+href%3D%22%2Fprofile.forum%3Fmode%3Dviewprofile%26amp%3Bu%3D", " ", $veryCleanTitle);
$veryCleanTitle2 = str_replace("%22+rel%3D%22nofollow%22%3E", " : ", $veryCleanTitle1); //the modoz rule ?
$veryCleanTitle3 = str_replace("%3C%2Fa%3E%2C+", ", ", $veryCleanTitle2);
$veryCleanTitle4 = str_replace("%3C%2Fa%3E", ",      ", $veryCleanTitle3);
$veryCleanTitle5 = str_replace("%22style%3D%22color%3A%23006600%22+class%3D%22colormod : %3Cb%3E", " : ", $veryCleanTitle4); //the modoz rule ?
//$veryCleanTitle51 = str_replace("4%22style%3D%22color%3A%23ffa34f%22+class%3D%22coloradmin%22++rel%3D%22nofollow%22%3E%3Cb%3E", " : ", $veryCleanTitle4); //THE admin rule
$veryCleanTitle6 = str_replace("%3C%2Fb%3E", "", $veryCleanTitle5);
$veryCleanTitle7 = str_replace("_", "+", $veryCleanTitle6); //the Hunta rule
$veryCleanTitle71 = str_replace("%3A", "+", $veryCleanTitle7); //the ':' rule
$veryCleanTitle72 = str_replace("%E9", "é", $veryCleanTitle71); //the 'é' rule
$veryCleanTitle8 = str_replace("%22style%3D%22color+%23ffa34f%22+class%3D%22coloradmin%22++rel%3D%22nofollow%22%3E%3Cb%3E", " : ", $veryCleanTitle72);

$n = '0';
$members = '';
do
{
   $newMember = get_token(': ', ',', $veryCleanTitle8, $offset);
   $members = $members . ',+' . $newMember;
   $digitsMember = get_token(', ', ':', $veryCleanTitle8, $offsetDigits);
   $d = strlen($digitsMember);
   $offsetDigits = $offsetDigits + $d;
   $n = strlen($newMember);
   $offset = $offset + $n + $d + 4; //+4 ???
}
while  ($n != '0');

file_get_contents("http://api.nabaztag.com/vl/FR/api.jsp?token=xxxxx&sn=yyyyy&voice=FR-Archibald&tts=Membres+actuellement+connectés+sur+le+forum" . $members, false);
print ("</channel>\n</rss>\n");
?>



Errr... Disez-le, hein, si vous y voyez une patente, pantelante et/ou pathétique tentative de réinventer la roue...
nabzciao

NB : Merci à macphisto respect pour le code de son flux RSS VDM !

EDIT :
NB 2 : Le script ci-dessus est bien vu comme un vrai flux RSS par Violet et par l'outil de validation RSS de la W3C !

NB 3 : Le déguisement est scindé en deux :
Première partie :
Code:
$site="http://www.example.com/";
$page_name="quiestsurleforum.php";
header('Content-type: application/rss+xml; charset=utf-8');

print ("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n");
print ("<rss version=\"2.0\"\n xmlns:atom=\"http://www.w3.org/2005/Atom\"\n xmlns:content=\"http://purl.org/rss/1.0/modules/content/\">\n

  <channel>\n
      <language>fr-fr</language>\n
      <atom:link href='".$site.$page_name."' rel='self' type='application/rss+xml' />
      <title>Qui est sur le forum</title>\n
      <description>Qui est sur le forum ?</description>\n
      <link>http://www.example.com/</link>\n");

Deuxième partie :
Code:
print ("</channel>\n</rss>\n");


Dernière édition par Hunta_de_la_Radieuse le Mar 6 Jan 2009 - 14:29, édité 2 fois
Revenir en haut Aller en bas
http://www.zcripts.com/
GrosBill
Gold Nabz
Gold Nabz


Localisation: Paris
Nom du Nabaztag: Kikiztag
Nbr de messages: 629
Points: 2322

MessageSujet: Re: [En cours] cronnab, le (web)crontab des pin:pins !   Mar 6 Jan 2009 - 9:35

Ohoh mais c'est une idée géniale ca.
le detournement de flux rss j'adore

Par contre pas evident a lire le script.
La fonction strip_tags pourrait pas t'aider a faciliter le menage?
Revenir en haut Aller en bas
cho7
Nabz Junior
Nabz Junior


Localisation: L'isle-Adam
Nbr de messages: 75
Points: 1241

MessageSujet: Re: [En cours] cronnab, le (web)crontab des pin:pins !   Mar 6 Jan 2009 - 10:19

J'ai une petite question...

Pour avoir déjà testé, le lapin ne dit rien je crois si le flux RSS qu'on lui demande de lire est mal construit.

Donc si au lieu de lui donner un flux RSS valide on lui donne directement l'adresse d'une page php qui n'a rien à voir avec du RSS mais qui lance la tâche qu'on veut, l'appli RSS va devoir l'ouvrir pour vérifier le contenu, et avant même qu'elle se rende compte qu'il est trop tard et que c'est pas du RSS, notre script php aura déjà appelé l'api du lapin, et c'est tout ce qu'on lui demande, non ?

Une idée comme ça, en passant (je suis pas à la maison pour tester !)
Revenir en haut Aller en bas
Hunta_de_la_Radieuse
Frénétik Nabaztrice
Frénétik Nabaztrice


Age: 37
Localisation: Anse Lapin
Nom du Nabaztag: Hunta (v2)
Nbr de messages: 3955
Points: 2028

MessageSujet: Re: [En cours] cronnab, le (web)crontab des pin:pins !   Mar 6 Jan 2009 - 14:19

-> GrosBill : Mer-ci-! pompom Yep, j'avais prévenu : c'est du script de boucher, mais ça fait le job (et puis, ce n'est qu'un exemple hein... Mais, vi, un exemple propre, ça f'rait plus riche !)!
D'accodac', investigations autour de "strip_tags" !


-> cho7 : Petite remarque vite fait Wink le pseudo flux RSS ci-dessus est vu comme valide par Violet et l'outil de validation W3C ! big green

Pour ce qui est de l'utilisation d'un script "normal" - non masqué -, au moment de l'inscription au service, Violet vérifie si le lien saisi est ou non du RSS... La solution que tu proposes ne devrait donc pas fonctionner...
Revenir en haut Aller en bas
http://www.zcripts.com/
cho7
Nabz Junior
Nabz Junior


Localisation: L'isle-Adam
Nbr de messages: 75
Points: 1241

MessageSujet: Re: [En cours] cronnab, le (web)crontab des pin:pins !   Mar 6 Jan 2009 - 20:36

Hunta_de_la_Radieuse a écrit:
-> GrosBill : Mer-ci-! pompom Yep, j'avais prévenu : c'est du script de boucher, mais ça fait le job (et puis, ce n'est qu'un exemple hein... Mais, vi, un exemple propre, ça f'rait plus riche !)!
D'accodac', investigations autour de "strip_tags" !


-> cho7 : Petite remarque vite fait Wink le pseudo flux RSS ci-dessus est vu comme valide par Violet et l'outil de validation W3C ! big green

Pour ce qui est de l'utilisation d'un script "normal" - non masqué -, au moment de l'inscription au service, Violet vérifie si le lien saisi est ou non du RSS... La solution que tu proposes ne devrait donc pas fonctionner...


OK, mais n'est-ce pas plus simple à maintenir si tu stockais ce que tu veux dire (ici la liste des nouveaux membres) dans une variable plouf, puis d'appeler l'api du lapin avec tts=plouf, et de faire simplement des echo bidons dans le script (juste un channel et un item, sans pubDate) afin de penser, vu de l'extérieur, qu'il s'agit d'un fichier rss valide, mais qui sera jamais lu par le lapin à voix haute (il l'ouvrira, quand même, donc ca déclenchera la partie php), car comme la pubDate est toujours la même (voir inexistante), il ne verra pas de différence d'un appel à l'autre ?


edit : bon, je viens de lire le code en détail, et je crois que j'ai dis une connerie, car c'est à peu près ce que tu fais SmileNabz Comme c'était verbeux, je pensais que tu regénérais tout le contenu en RSS... Ca m'apprendra à lire en diagonal..
Revenir en haut Aller en bas
Hunta_de_la_Radieuse
Frénétik Nabaztrice
Frénétik Nabaztrice


Age: 37
Localisation: Anse Lapin
Nom du Nabaztag: Hunta (v2)
Nbr de messages: 3955
Points: 2028

MessageSujet: Re: [En cours] cronnab, le (web)crontab des pin:pins !   Mar 6 Jan 2009 - 20:52

Sisisi, tu as tout à fait raison ! Mais, déjà, j'débute et n'y avais point pensé... Et :
Là, c'est juste le script sur lequel j'ai, hop !, comme ça, testé eul bôzaère...
Mais, à éditer asesouneasepossibol... albino

L'idéal serait aussi que le script lui-même soit un peu propre...
Revenir en haut Aller en bas
http://www.zcripts.com/
cho7
Nabz Junior
Nabz Junior


Localisation: L'isle-Adam
Nbr de messages: 75
Points: 1241

MessageSujet: Re: [En cours] cronnab, le (web)crontab des pin:pins !   Mar 6 Jan 2009 - 21:06

Hunta_de_la_Radieuse a écrit:
Sisisi, tu as tout à fait raison ! Mais, déjà, j'débute et n'y avais point pensé... Et :
Là, c'est juste le script sur lequel j'ai, hop !, comme ça, testé eul bôzaère...
Mais, à éditer asesouneasepossibol... albino

L'idéal serait aussi que le script lui-même soit un peu propre...


lol, alors sur ce point je peux t'aiguiller SmileNabz

Je t'invite à te documenter sur les expressions régulières (ou rationnelles, c'est pareil), aussi connues sous le nom de regexp (regular expressions) en anglais. Tu diviseras la taille de ton code par 10 winknabz
Revenir en haut Aller en bas
Tabatha
il est cap' !!!


Localisation: Plat Pays
Nom du Nabaztag: Tabatha (V1) & Traci (V2)
Nbr de messages: 3727
Points: 2386

MessageSujet: Re: [En cours] cronnab, le (web)crontab des pin:pins !   Mar 6 Jan 2009 - 21:59

C'est une idee E.X.C.E.L.L.E.N.T.E !

Congrat's Hunta !!!!!
Revenir en haut Aller en bas
cho7
Nabz Junior
Nabz Junior


Localisation: L'isle-Adam
Nbr de messages: 75
Points: 1241

MessageSujet: Re: [En cours] cronnab, le (web)crontab des pin:pins !   Mer 7 Jan 2009 - 0:58

Bon, il est tard je vais au lit. Je me suis remis au php (désolé je préfère python ou java !) pour toi Hunta winknabz

Voici ton script revu et corrigé par mes soins à base d'expressions rationnelles. Les regexp sont disponibles dans tout bon langage qui se respecte

on peut le tester ici : http://lienardr.free.fr/rss.php

et le script est celui-ci :

Code:

<rss version="2.0">
<channel>
      <language>fr-fr</language>
      <title>Qui est sur le forum</title>
      <description>Qui est sur le forum ?</description>
      <link>http://www.example.com/</link>
<?
$fic = fopen("http://nabaztag.forumactif.fr/forum.htm","r");
while (!feof($fic)) {
  $contenu .= fgets($fic, 4096);
}
fclose($fic);

preg_match_all('/<br \/>Utilisateurs enregistr.s : (.+?)<br \/>/',$contenu,$tab);
preg_match_all('|<a .+?>(<b>)?(.+?)(</b>)?</a>|',$tab[1][0],$utilisateurs);

for ($i=0;$i<count($utilisateurs[0]);$i++){
   echo "<item><title>".$utilisateurs[2][$i]."</title></item>\n";
}
?>
</channel>
</rss>


Tadam ! Allez, sur ces belles paroles : bonne nuit tout le monde !
Revenir en haut Aller en bas
Phabbrrysse
Nabazteur Voyageur
Nabazteur Voyageur


Age: 25
Localisation: Sassenage
Nom du Nabaztag: PhormiBBrrysse et Pharramyneu (V2)
Nbr de messages: 14526
Points: 7977

MessageSujet: Re: [En cours] cronnab, le (web)crontab des pin:pins !   Mer 7 Jan 2009 - 1:19

Ah ouais ... du coup c'est beaucoup plus .... court winknabz

_____________________________




Connexion du lapin difficile : ICI -- PAS D'AIDE PAR MP NI PAR MAIL
Revenir en haut Aller en bas
http://phabbrrysse.fr/
Hunta_de_la_Radieuse
Frénétik Nabaztrice
Frénétik Nabaztrice


Age: 37
Localisation: Anse Lapin
Nom du Nabaztag: Hunta (v2)
Nbr de messages: 3955
Points: 2028

MessageSujet: Re: [En cours] cronnab, le (web)crontab des pin:pins !   Mer 7 Jan 2009 - 1:25

nabz11
C'est même très impressionnant... Pour quelque chose de si court !

Les "regexp" ont la réputation d'être ardues, mais, elles ont l'air d'en valoir la peine !

J'essaie de comprendre et d'adapter - pas gagné - au but initial du script (histoire, que, tout de même, il y ait un lien avec les pin:pins) et je mets à jour le premier message !

pompom Mille mercis cho7 ! pompom Belle belle démo.
Revenir en haut Aller en bas
http://www.zcripts.com/
cho7
Nabz Junior
Nabz Junior


Localisation: L'isle-Adam
Nbr de messages: 75
Points: 1241

MessageSujet: Re: [En cours] cronnab, le (web)crontab des pin:pins !   Mer 7 Jan 2009 - 7:40

Hunta_de_la_Radieuse a écrit:
nabz11
C'est même très impressionnant... Pour quelque chose de si court !

Les "regexp" ont la réputation d'être ardues, mais, elles ont l'air d'en valoir la peine !

J'essaie de comprendre et d'adapter - pas gagné - au but initial du script (histoire, que, tout de même, il y ait un lien avec les pin:pins) et je mets à jour le premier message !

pompom Mille mercis cho7 ! pompom Belle belle démo.


Oui, ça en vaut la peine, d'autant que ça sert beaucoup au quotidien si tu dois développer des utilitaires, ou utiliser des commandes unix/linux telles que grep, sed ou vim. Je ne suis plus développeur officiellement, mais dans le cadre de mon boulot je m'en sers beaucoup beaucoup SmileNabz

Pour info, il y a deux grande syntaxes de regexp qui sont très proches mais pas pareils (!), celles dites POSIX (dont les limites sont vite atteintes je trouve, mais qu'on trouve de base dans beaucoup de commandes unix), et celle dites PERL (en référence au langage du même nom, même si dispo dans tout plein de langage comme python, java, ou php pour les fonction preg_*) qui permettent d'écrire des expressions régulières plus précises, et du coup moins longues.

Si t'as des questions sur le sujet n'hésite pas winknabz
Revenir en haut Aller en bas
cho7
Nabz Junior
Nabz Junior


Localisation: L'isle-Adam
Nbr de messages: 75
Points: 1241

MessageSujet: Re: [En cours] cronnab, le (web)crontab des pin:pins !   Mer 7 Jan 2009 - 7:44

Phabbrrysse a écrit:
Ah ouais ... du coup c'est beaucoup plus .... court winknabz


Et encore, je pense qu'il doit être possible de fusionner les deux regexp en 1 seule, de remplacer la boucle for par une foreach, et au final gagner quelques lignes SmileNabz

Mais bon, le php je ne vous cache pas que ça me les br*ute sévère comme langage SmileNabz
Revenir en haut Aller en bas
nabazland
Karotzeur taquin


Age: 45
Localisation: Rouen - France
Nom du Nabaztag: Caulfield (v2.1)
Nbr de messages: 9839
Points: 4330

MessageSujet: Re: [En cours] cronnab, le (web)crontab des pin:pins !   Mer 7 Jan 2009 - 10:21

Ca fait des années que je me dis que je devrais me mettre sèrieusement aux regexp,
mais le peu de fois ou je m'y suis collé... Je suis bien incapable quelques mois après de comprendre ce que j'ai fait !
SmileNabz
Et en gros, comme j'avais à dispo un dieu de la regexp... Je lui demandais de m'la faire...
Et quand je dis un dieu... vraiment c'en était un ! Il parlait regexp couramment.

_____________________________


Revenir en haut Aller en bas
http://www.nabzone.com
FlorentBL
Bronze Nabz
Bronze Nabz


Age: 42
Localisation: Paris
Nbr de messages: 117
Points: 1305

MessageSujet: Re: [En cours] cronnab, le (web)crontab des pin:pins !   Jeu 8 Jan 2009 - 13:46

Cool, c'était à cela que je pensais pour faire lire mes messages vocaux par mon lapin régulièrement afin qu'il me préviennent par son petit nez violet en cas de message vocal (cf. http://nabaztag.forumactif.fr/api-f3/nabaztag-et-messagerie-vocale-fai-t9701.htm ).
Revenir en haut Aller en bas
http://fchabaud.free.fr/
 

[En cours] cronnab, le (web)crontab des pin:pins !

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant

 Sujets similaires

-
» [Alternate timeline] Teodor/Il Lupo - Pins and needles [?]
» Cours de création d'entreprise 1
» Home Sweet Home [PV Taemin] EN COURS
» [En cours] cronnab, le (web)crontab des pin:pins !
» [INFO] Jouets de cours de récré !

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum dédié aux karot:z, nabaztag:tag, mir:ror, dal:dal... :: nabaztag - nabaztag:tag - karotz :: L'univers de Nabaztag :: Archives :: API :: /dev :: Idées, En cours, Questions !-