RobotJabberFR

De Wiki JabberFR
Aller à : navigation, rechercher

Projet de Robot multifonction pour la communauté JabberFR

Participants

Liste des personnes volontaires pour aider à la création du robot.

  • Omega (omega_chez_im.apinc.org)

Solutions de bots existantes

  • Neutron (python)
  • WhereSkal (python)
  • solution basée sur cjp (php) - je bosse sur un projet modulaire avec cjp, disponible par svn ici : [1] -- Talou
  • solution basée sur xmpp4r (ruby)

Fonctions du Robot

Forum

  • Suivi des discussions par abonnement (comme pour les actuelles notifications mail)
  • Recherche

Wiki

  • Suivi des modifications d'articles par abonnement (comme pour les notifs mail actuelles)
  • Recherche

Planet

  • Abonnement aux notifications de nouveaux billets
  • Historique et recherche dans le planet
  • Admin : gestion des blogs participants
  • Admin : mise à jour manuelle

Annuaire

  • Recherche et interrogation de l'annuaire

Général

  • Présence sur le web (à la manière d'Edgar)
  • seen
  • help
  • visible (choix des contact du bot de le voir ou non, comme Edgar)
  • admin : presence (gestion de la présence du bot)
  • admin : gestion du roster du bot

Remarques

  • il peut y avoir plusieurs bots, notamment du fait qu'il y a des éléments de jabberfr sur plusieurs machines, ce qui permet de répartir les commandes. Les ressources sont là pour ça.

Roadmap ?

Inventaire des bots jabber existants

Robot#Inventaire

Aspects techniques

Client vs Composant

Un robot "client" est un robot qui se connecte au serveur de la même manière qu'un client jabber.

Un robot "composant" est un robot qui se connecte au serveur comme un composant (par exemple une passerelle). L'avantage d'un tel robot est que son jid est du genre bot.jabberfr.org, on peut donc le faire apparaitre dans les services (disco) des serveurs. On peut aussi plus facilement s'inscrire dessus (comme une passerelle) ou faire des recherches (comme un annuaire). Par contre presqu'aucun bot n'est fait comme ça. On devrait donc tout recoder.

Langage de programmation

  • Python
Langage interprété simple à maitriser et très efficace. Dispose de plusieurs bibliothèques pour XMPP (xmpppy, pyxmpp, twisted words).
  • PHP
Langage de programmation orienté web. Permet très simplement d'afficher des présences web. Principalement 2 bibliothèques (class.jabber.php, xmpp4) mais aucune vraiment aboutie.
  • Ruby
xmpp4r
  • Autre
(C, C++, java, ...)