質問

運営:驚異の etherpad 最開達した.ここからダウンロードできる: http://code.google.com/p/etherpad.このようなもんのStackOverflowのetherpadます。んの一部のetherpadオープンソースコミュニティするためには購読 のRSSフィードのための質問tagged'etherpad' う場合にはこの捕!

私の質問を前提としていetherpadに設置ご自分のサーバー:

第一に、このクエリーの眺望最近では編集中のパッド:

SELECT id,lastWriteTime,creationTime,headRev 
  FROM PAD_SQLMETA ORDER BY lastWriteTime, headRev;

または、スケジュールを設定しますから、unix迅速:

mysql -u root -pPASSWD etherpad -e "select id,lastWriteTime,creationTime,headRev 
  from PAD_SQLMETA order by lastWriteTime, headRev"

ことになるお手軽に、しかし lastWriteTime 実際れてしまった時にいくとの見解を示すパッドをブラウザです。もう少しうるパッドによる入った時の実際の最終編集します。りょう派手なSQLクエリーを含む参加が他のテーブルとして提供される最終編集す。なんだろうけど、日本人に何がですか?また、お客様がスクリプトの注意事項headRev変化がないよう最大について教えてください。

役に立ちましたか?

解決

私はかなり私の元の質問への答えを考え出したていないが、私は似たようなを実現するスクリプトを書きました。 これの主な目的は、すべての私のパッドのプレーンテキストバージョンをエクスポートして、私のラップトップ上でそれらを格納することです。 副作用として、それはパッドが変更されていた私を示し、私は最後にエクスポートしたバージョン以降の差分を見ることができます。 また、このものは、新しく作成された番組ます。

まず、次のスクリプトを作成し、padlist.pl、あなたの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;

次に、ローカルマシン上で、fetchall.plを次のスクリプトを実行します。 それはすべてあなたのパッドのスナップショットを下に吸う、どれが変更されているとされ、新たに登場していることを教えてくれます。

#!/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;
} }
私はそれをフェッチ前回パッドfooの差分を表示するには:

diff prev/foo.txt foo.txt
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top