SARAH gère le frigo

Parmi les sujets récurrents sur la communauté Google+ il y a la gestion du réfrigérateur ou des courses par SARAH. Voici un petit aperçu de ce qu’il est possible de faire.

Base de donnée

La première étape consiste à persister et retrouver des données. Plutôt que d’utiliser une usine à gaz SQL j’ai mis en place NeDB qui est une petite base NoSQL inMemory. Et qui fonctionne comme MongoDB:

On se branche sur le hook init() de manière à charger la base au chargement du plugin.

Ensuite les méthode save() et remove() permettent une mise à jour d’un objet de la base.

Grammaire XML

Lors de chaque mise à jour de la base il faut mettre en cache la liste des produits (pour ne pas avoir à faire un appel asynchrone)

Puis réécrire le fichier XML

En gros un marqueur permet de déterminer l’endroit ou chercher/remplacer les éléments de la grammaire.

Front End

Du côté Front End, il faut créer une page HTML composée de la liste des produits et d’un formulaire d’ajout / modification qui appelera les fonction qu’on vient de créer.

Actions

Enfin il faut développer la fonction principale des plugins pour aiguiller vers les actions à faire:

  1. Ajouter un élément à la liste
  2. Enlever un élément à la liste
  3. Lire les éléments de la liste
  4. Ajouter un élément à la base et à la liste

La fonction ask(product) utilise AskMe pour interroger l’utilisateur si il faut ajouter le produit aussi à la liste de course.

Conclusion

Voici le squelette d’un plugin qui permet de gérer une petite base de donnée de produit, réécrire son XML, gérer une liste de produit…

Pour aller plus loin il faudrait:

  • Utiliser le moteur de règle pour forwarder la liste de course par mail ou pushover
  • Créer une portlet des courses
  • Gérer le stock du frigo
  • Etre un peu plus prédictif

Le plugin se télécharge ici, il y a un petit patch à appliquer.

3 pensées sur “SARAH gère le frigo

  • 10 février 2014 à 11 h 09 min
    Permalink

    J’étais en train de faire un peu le même style de boulot ses dernier jours mais je me suis retrouvé confronter au problème de reconnaissance des garbadge….
    En gros, pour ajouter un item dans la liste il me fallait, parfois, répéter 5 ou 6 fois la phrase -__- Quand je voyais ce qui passait dans la console de debug au niveau du dictation ça n’avait rien à voir (et ça quand sarah lançait le plugin…..)
    Pourtant je suis à moins d’1 mêtre du kinecte u_u

    Répondre
    • 10 février 2014 à 11 h 19 min
      Permalink

      Ouai c’est la reco Google qui est vraiment pas top, j’ai vu que le projet que j’utilise a été porté sur GitHub donc peut être que des choses ont été améliorée

      Répondre
      • 10 février 2014 à 11 h 41 min
        Permalink

        Je jetterais un oeil à la source histoire de voir si il y a un truc que j’aurais loupé, amis dans l’état, mon plugin est en stand by, parce que pas utilisable….

        Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *