Voir le etherpads (note nouvelle balise 'EtherPad' pour le code EtherPad sourced ouvert!) A récemment édité

StackOverflow https://stackoverflow.com/questions/2569194

Était-ce utile?

La solution

Je n'ai pas tout à fait compris la réponse à ma question initiale, mais j'ai écrit un script qui réalise quelque chose de similaire. Son but principal est d'exporter des versions en texte clair de tous mes tampons et de les stocker sur mon ordinateur portable. Comme un effet secondaire, il me montre que des tampons ont changé et me laisse voir une diff depuis la dernière version exportée. Elle montre aussi que les nouveaux ont été créés.

Tout d'abord, créez le script suivant, padlist.pl, sur le serveur qui héberge votre instance EtherPad:

#!/usr/bin/env perl

$list = `mysql -u root -pPASSWD etherpad -e 
         "select id from PAD_SQLMETA order by lastWriteTime DESC, headRev DESC"`;

$list =~ s/^id\s*\n//s;  # get rid of the column header mysql adds.
print $list;

Ensuite, exécutez le script suivant, fetchall.pl, sur votre machine locale. Il va sucer vers le bas des instantanés de tous vos pads et vous dire quels sont ceux qui ont changé et qui ont récemment apparu.

#!/usr/bin/env perl

use LWP::Simple qw(get);
$| = 1;  # autoflush.
$server = "server.com"; # the server that hosts your etherpad instance.

$pads = `ssh $server etherpad/padlist.pl`;
@padlist = split(/\s+/, $pads);

$neednewline = 0; # printing "." for each pad where nothing to be done.
for(@padlist) {
  $ep = $_;
  $localfile = "$ep.txt";
  if(-e $localfile) { 
    $localexists = 1; 
    $localcontent = do {local (@ARGV,$/) = $localfile; <>};
  } else { $localexists = 0; }
  $livecontent = get("http://$server/ep/pad/export/$ep/latest?format=txt");
  if($livecontent ne $localcontent) {
    if($neednewline) { print "\n";  $neednewline = 0; }
    if($localexists) { 
      print "CHANGED: $ep\n"; 
      open(F, ">prev/$localfile") or die "Probably need to create 'prev' dir.";
      print F $localcontent;
      close(F);
    } else { print "NEW:     $ep\n"; }
    open(F, ">$localfile") or die;
    print F $livecontent;
    close(F);
  } else {
    print ".";
    $neednewline = 1;
} }

Pour voir une diff de pad foo depuis la dernière fois que j'allai le chercher:

diff prev/foo.txt foo.txt
scroll top