Pour commencer à décentraliser un peu #seenthis j’ai bricolé un système d’import/export des seens .
Export : j’ai choisi, après avoir pas mal hésité, un format « email », avec l’idée de pouvoir importer les messages dans un client mail ou news, et en espérant que ces derniers sauront refléter les fils de discussion.
Import : l’import d’un email se fait si ce dernier n’existe pas dans ma base (l’identifiant étant un UUID attribué par seenthis, et reflété dans le champ Message-Id
) ; ou si la date de modification du fichier est plus récente que la « date_modif » du message dans la base.
(Je n’ai pas traité la suppression, j’imagine qu’on ajoutera un entête ad-hoc disant « message supprimé », mais je n’ai pas regardé s’il existait un standard pour cela.)
A titre d’exemple, un message (ici une réponse) ressemble à ça :
Message-Id: <52d3ae2a-7440-4c6c-b4b1-f4cbecc31efa>
Date: Mon, 13 Jan 2014 10:13:14 +0100
From: <fil@seenthis.net>
Subject: Hello World
In-Reply-To: <52d3a4a7-2db4-4bf6-9211-efe4b236d063>
Hello World http://rezo.net/ cool
Comme on voit le « subject » est calculé à partir du contenu, comme le « title » des pages seenthis ; mais il est uniquement là à titre décoratif — lorsqu’on réimporte seul le body est pris en compte.
J’ai commencé à programmer le fait d’exporter aussi la version HTML en parallèle (via multipart/alternative
) mais il fallait réfléchir à la question des images, qu’il serait sympa d’avoir en local, mais qui demandent un peu plus de programmation. Je préfère savoir d’abord ce qu’en pensent les gens qui s’y connaissent mieux, je pense notamment à toi @stephane).
J’ai posé le script ici : ►https://gist.github.com/Fil/8407898
Au quotidien je me demande quel usage on pourra faire de ces exports :
– un backup complet en synchronisant tout
– une version décentralisée en synchronisant tout en bidirectionnel
– que chacun puisse avoir une copie de « ses » seens par un rsync bien choisi (?)
– que chacun puisse s’abonner à son flux par IMAP ?
Par ailleurs, je pense qu’il faudra traiter la possibilité de répondre par mail et que ça vienne s’afficher sur le site.