Shoop

Bois2Cagette

Bois2Cagette est un parseur en Ruby (et "fait en bois de cagette") pour formater et nettoyer des messages de "Tribune" qu'on lui envoi.

C'est un parseur autonome, ce qui veut dire qu'il ne fait exclusivement que de la mise en forme et n'a aucun environnement de tribune ou autre système intégré.

Le projet est disponible via son dépôt Subversion à l'adresse http://svn.logicielslibres.info/bois2cagette/.

Pré-requis :

  • Ruby >= 1.8
  • Librairie Ruby rack
  • Librairie Ruby fcgi
  • Librairie Ruby json
  • Si vous souhaitez l'utiliser dans un projet web de tribune, un serveur web

est nécessaire.

Utilisation

Charge à vous d'installer un serveur web mettant à disposition les script FCGI du projet. Ensuite lorsque le parser fonctionne à l'adresse souhaitée, il vous reste à lui envoyer les données des messages.

Le parser accepte les requêtes GET et POST, les messages sont transmis dans argument de requête nommé "posts" un objet JSON qui doit être de la forme :

{
    'ua': 'Chaine de texte comportant le user-agent',
    'content': 'Chaine de texte comportant le message à formater'
}

Il est prévu pour accepter un ou plusieurs messages à la fois, pour cela l'argument "posts" est toujours une liste d'objets de la forme :

[
    {'ua':'test', 'content': 'Foo'},
    {'ua':'test', 'content': 'Bar'},
   ...
]

Si il n'y a qu'un seul objet à passer, il faut tout de même le mettre dans une liste.

Le parser renvoi tout les objets qu'on lui a envoyé en y nettoyant l'attribut ua et en y ajoutant plusieurs attributs :

  • render : la version nettoyée et mise en forme de l'attribut content en html normale.
  • remote : une version allégée de l'attribut render pour convenir aux clients du type Coincoin.
  • urls : une liste des urls detectées dans l'attribut content.
  • clocks : une liste des horloges detectées dans l'attribut content.
  • smileys : une liste des smileys detectées dans l'attribut content.

Syntaxe

La syntaxe accepte quelques éléments html de mise en forme qui sont les balises "b, i, tt, u, s", ainsi qu'une balise "m" pour reproduire des ====> Moments XXX <====.

Les urls sont automatiquements transformés en url cliquables visible comme [url], certains motifs dans les urls déclencheront des noms d'urls "spéciales", par exemple le lien http://foo.free.fr donnera [foo@free].

Les horloges sous la forme HH:MM ou HH:MM:SS seront reconnues comme tel et encerclés par une balise span contenant des attributs pour le contrôle d'évènements Javascript dans votre frontend (sauf pour la version dans l'attribut remote).

Les smileys sous la forme [:nom_du_smiley] seront transformés en liens cliquables vers le serveur de totoz, de même avec un attribut pour le contrôle en Javascript.

Contact

  • aurelien POINT dehay SUR gmail.com
  • sveetch SUR gmail.com

Dernière édition le Tuesday 05 May 2009 à 19:41