福居です。
これまで qwik.jp で運用していたメーリングリストを
自分のサイトで立ち上げた qwikWeb に移行したいと考えています。
編集ページからサイトアーカイブを取得し、独自サイトの qwikWeb 上に
展開することで、これまでの記事の移行ができることは確認しました。
ただ、以下の問題が有ります。
(1)アーカイブ内のファイルのタイムスタンプがアーカイブ取得時のもの
になっていて、「Recent List」などの表示が無意味になってしまう
(2)アーカイブに添付ファイルが含まれていない
(1)に関して、アーカイブを作るときにタイムスタンプの情報を
残すようにできないでしょうか?
(2)に関しては、ファイルサイズの面などからアーカイブに含めるのは
難しいことと思います。これを解決する何か良い手段はないでしょうか?
Tsuyoshi FUKUI
江渡です.
編集ページからサイトアーカイブを取得し、独自サイトの qwikWeb 上に 展開することで、これまでの記事の移行ができることは確認しました。 ただ、以下の問題が有ります。
(1)アーカイブ内のファイルのタイムスタンプがアーカイブ取得時のもの になっていて、「Recent List」などの表示が無意味になってしまう (2)アーカイブに添付ファイルが含まれていない
(1)に関して、アーカイブを作るときにタイムスタンプの情報を 残すようにできないでしょうか?
(2)に関しては、ファイルサイズの面などからアーカイブに含めるのは 難しいことと思います。これを解決する何か良い手段はないでしょうか?
qwik.jpからの移行作業の件ですが,もし希望であれば,該当するdirectoryそ
のものをtar.gzなどでお渡しすることは可能です.手動でやることになります.
また,上記1,2などの動作を行うパッチを作成していただければ,こちらで適
用することは可能です.
よろしくおねがいいたします.
えとーです。
On Thu, 08 Mar 2007 12:26:27 +0900 (JST)
Tsuyoshi FUKUI <fukui556@o...> wrote:
福居です。
これまで qwik.jp で運用していたメーリングリストを 自分のサイトで立ち上げた qwikWeb に移行したいと考えています。
編集ページからサイトアーカイブを取得し、独自サイトの qwikWeb 上に 展開することで、これまでの記事の移行ができることは確認しました。 ただ、以下の問題が有ります。
(1)アーカイブ内のファイルのタイムスタンプがアーカイブ取得時のもの になっていて、「Recent List」などの表示が無意味になってしまう (2)アーカイブに添付ファイルが含まれていない
(1)に関して、アーカイブを作るときにタイムスタンプの情報を 残すようにできないでしょうか?
(1)のほうは、調べていますが。ご勘弁を他の方がさくっと解決してくれるかも、、、
(2)に関しては、ファイルサイズの面などからアーカイブに含めるのは 難しいことと思います。これを解決する何か良い手段はないでしょうか?
ファイルサイズもですが、画像系のファイルも添付ファイルと同様の
扱いになっているのでそれの対処もやる必要があるかもしれません。
画像系のファイルで私が気にしている具体的なものとしては
codeプラグインの番号の画像。
graphvizプラグインの画像。
の二点です。
江渡さん graphvizプラグインの再度の取り込みはどうなっていましたっけ?
福居です。
Kouichirou Eto <2007@e...>'s message
at Fri, 09 Mar 2007 00:13:12 +0900
(1)に関して、アーカイブを作るときにタイムスタンプの情報を 残すようにできないでしょうか?
(2)に関しては、ファイルサイズの面などからアーカイブに含めるのは 難しいことと思います。これを解決する何か良い手段はないでしょうか?
qwik.jpからの移行作業の件ですが,もし希望であれば,該当するdirectoryそ のものをtar.gzなどでお渡しすることは可能です.手動でやることになります.
また,上記1,2などの動作を行うパッチを作成していただければ,こちらで適 用することは可能です.
(1)を実現するパッチを作りました。(添付ファイル: act-archive.patch)
ただ、act-archive で(2)を解決する方法は僕の手に余ったので tar.gz を
お願いしようかと思ったのですが、せっかくの機会なので、ディレクトリを
まるごと tar.gz で固めるプラグインを作ってみました。(添付ファイル: act-archive-tgz.rb)
tar コマンドに依存しているところがいまいちですが、良ければ適用をご検討ください。
また、qwickWeb のプラグインは初めてなので、おかしな所があればご指摘ください。
Tsuyoshi FUKUI
module Qwik
TAR_COMMAND = '/bin/tar' class Action
D_ExtArchiveTgz = {
:dt => 'Site archive',
:dd => 'You can obtain a tgz(tar.gz) archive ot the site content.',
:dc => "* Examplenosuch plugin | tgz
You can get a tgz(tar.gz) archive of all data of this Wiki site.
"
}
D_ExtArchiveTgz_ja = {
:dt => 'サイト・アーカイブ(添付ファイル含む)',
:dd => 'サイト・アーカイブを取得できます。',
:dc => '* 使い方nosuch plugin | tgz
このリンクから、サイトの内容まるごと全部(添付ファイル含む)を一つのアーカイブにして
ダウンロードできます。
'{{br}}
}
def plg_tgz
return page_attribute('tgz', _('site archive'), @site.sitename)
end
def ext_tgz
c_require_member
c_require_base_is_sitename
tgz_file = SiteArchiveTgz.generate(@config, @site)
return c_simple_send(tgz_file, 'application/gzip')
end
end
class SiteArchiveTgz
def self.generate(config, site)
sitename = site.sitename
site_cache_path = site.cache_path
site_cache_path.check_directory
tgz_file = site_cache_path + "#{sitename}.tgz"
system("#{Qwik::TAR_COMMAND} -zc -C #{config.sites_dir} -f #{tgz_file} --exclude .cache #{sitename}")
return tgz_file
end
endend
if $0 __FILE__
$LOAD_PATH << '..' unless $LOAD_PATH.include? '..' require 'qwik/test-common' require 'qwik/util-pathname' $test = true
end
if defined?($test) && $test
class TestActArchive < Test::Unit::TestCase include TestSession
def test_plg_tgz
ok_wi [:p, [:a, {:href=>'test.tgz'}, 'test.tgz']], '[[test.tgz]]'
ok_wi [:span, {:class=>'attribute'},
[:a, {:href=>'test.tgz'}, 'site archive']], '{{tgz}}'
end
end
class TestActArchive < Test::Unit::TestCase include TestSession
def test_act_tgz
t_add_user
page = @site['_SiteConfig']
page.store ':theme:qwikborder'
page = @site.create_new
page.store '* あ'
page = @site.create_new
page.store '* A Presentation PagePresentation mode'{{br}}
page = @site.create('PresenTest')
page.store '* A presentation test page'
dir = 'test/'.path
files = Qwik::PageFiles.new(dir.to_s, '1')
files.fput('t.txt', 't')
res = session '/test/test.tgz'
ok_eq 'application/gzip', res['Content-Type']
str = res.body
'/tmp/testtemp.tgz'.path.open('wb') {|f| f.print str }
system("#{Qwik::TAR_COMMAND} -zxf /tmp/testtemp.tgz -C /tmp")
list = []
dir = '/tmp/test'
Dir.foreach(dir) do |e|
next if [".",".."].include? e
if (FileTest::directory?(dir + '/' + e)) then
Dir.foreach(dir + '/' + e) do |ee|
next if [".",".."].include? ee
list << dir + '/' + e + '/' + ee
end
next
end
list << dir + '/' + e
end
files = %w(
/tmp/test/1.txt
/tmp/test/1.files/t.txt
/tmp/test/2.txt
/tmp/test/PresenTest.txt
/tmp/test/_SiteConfig.txt
/tmp/test/_SiteMember.txt
)
not_included_files = %w(
test/1-presen.html
)
files.each {|file|
eq true, list.include?(file)
}
not_included_files.each {|file|
eq false, list.include?(file)
}
files.delete('t.txt')
'/tmp/testtemp.tgz'.path.unlink
delete_dir('/tmp/test')
end
def delete_dir(dir)
Dir.foreach(dir) do |e|
next if [".",".."].include? e
name = File.join(dir, e)
if FileTest::directory?(name)
delete_dir(name)
else
File.delete(name)
end
end
Dir.delete(dir)
end
end
class TestSiteArchive < Test::Unit::TestCase include TestSession
def test_tgz
res = session
page = @site.create_new
page.store('* あ')
tgz = Qwik::SiteArchiveTgz.generate(@config, @site)
assert_match(/test.tgz\Z/, tgz.to_s)
end
end
end
base = "#{site.sitename}/#{page.key}"
# Add original txt file.
# Generate a html file.
html_path = site_cache_path+"#{page.key}.html" base = "#{site.sitename}/#{page.key}"
# Add original txt file.
# Generate a html file.
html_path = site_cache_path+"#{page.key}.html" end
end
zos.put_next_entry(e)
zos.write(content)
end end
end
zos.put_next_entry(e)
zos.write(content)
endえとーです。
調べました。
On Fri, 9 Mar 2007 00:15:46 +0900
Eto Yasuo <yasuo@e...> wrote:
えとーです。
On Thu, 08 Mar 2007 12:26:27 +0900 (JST) Tsuyoshi FUKUI <fukui556@o...> wrote:
福居です。
これまで qwik.jp で運用していたメーリングリストを 自分のサイトで立ち上げた qwikWeb に移行したいと考えています。
編集ページからサイトアーカイブを取得し、独自サイトの qwikWeb 上に 展開することで、これまでの記事の移行ができることは確認しました。 ただ、以下の問題が有ります。
(1)アーカイブ内のファイルのタイムスタンプがアーカイブ取得時のもの になっていて、「Recent List」などの表示が無意味になってしまう (2)アーカイブに添付ファイルが含まれていない
(1)に関して、アーカイブを作るときにタイムスタンプの情報を 残すようにできないでしょうか?
qwikの問題ではなくqwikから使っているrubyzipライブラリの問題でした、
ちょっと調べてから rubyのIRCで聞いてみたとろ、Holonさんという人にも
確認してもらいsf.netにパッチまでおくってもらっちゃいましたので、
rubyzip側での取り込みとrubyzipのリリースを待つことになります。
rubyzipへのbug報告とパッチ(from Holonさん)
http://sourceforge.net/tracker/index.php?func=detail&aid=1543984&group_id=43107&atid=435170
福居です。
Eto Yasuo <yasuo@e...>'s message
at Tue, 13 Mar 2007 23:20:06 +0900
(1)アーカイブ内のファイルのタイムスタンプがアーカイブ取得時のもの になっていて、「Recent List」などの表示が無意味になってしまう (2)アーカイブに添付ファイルが含まれていない
(1)に関して、アーカイブを作るときにタイムスタンプの情報を 残すようにできないでしょうか?
qwikの問題ではなくqwikから使っているrubyzipライブラリの問題でした、 ちょっと調べてから rubyのIRCで聞いてみたとろ、Holonさんという人にも 確認してもらいsf.netにパッチまでおくってもらっちゃいましたので、 rubyzip側での取り込みとrubyzipのリリースを待つことになります。
rubyzipへのbug報告とパッチ(from Holonさん) http://sourceforge.net/tracker/index.php?func=detail&aid=1543984&group_id=43107&atid=435170
このバグは put_next_entry() にファイル名を文字列で渡した場合の
ものではないでしょうか?
qwik では文字列ではなく ZipEntry を生成して
put_next_entry() に渡している(act-archive.rb の add_entry())ので、
ZipEntry にタイムスタンプの情報を持たせておけば問題無いはずです。
以下、テストプログラムです。
(Debian 3.1, ruby 1.8.2, libzip-ruby1.8(0.5.6-1))
----------------------------------------------------------------------
#!/usr/bin/ruby
require 'zip/zip'
zip_filename = "/tmp/rubyzip_test.zip"
mt = Time.now - (60*60*24)
Zip::ZipOutputStream.open(zip_filename) {|zos|
e = Zip::ZipEntry.new('', 'test.txt', '', '', 0, 0, Zip::ZipEntry::DEFLATED, 0, mt)
zos.put_next_entry(e)
zos.write("testtest")
}
----------------------------------------------------------------------
[実行結果]{{br}}
----------------------------------------------------------------------
$ ruby test.rb
$ ls -l /tmp/rubyzip_test.zip
-rw-r--r-- 1 tfukui tfukui 122 Mar 15 12:00 rubyzip_test.zip
$ unzip -l /tmp/rubyzip_test.zip
Archive: rubyzip_test.zip
Length Date Time Name
-------- ---- ---- ----
8 03-14-07 12:00 test.txt (←ちゃんと1日前の日付になっている)
-------- -------
8 1 file
----------------------------------------------------------------------
というわけで、手元の qwikWeb では [qwikweb:77] のパッチで
タイムスタンプ付きの Zip ファイルを得られるようになっています。
Tsuyoshi Fukui
福居です。
Tsuyoshi FUKUI <fukui556@o...>'s message
at Sat, 10 Mar 2007 04:51:30 +0900 (JST)
(2)に関しては、ファイルサイズの面などからアーカイブに含めるのは 難しいことと思います。これを解決する何か良い手段はないでしょうか?
ただ、act-archive で(2)を解決する方法は僕の手に余ったので tar.gz を お願いしようかと思ったのですが、せっかくの機会なので、ディレクトリを まるごと tar.gz で固めるプラグインを作ってみました。(添付ファイル: act-archive-tgz.rb) tar コマンドに依存しているところがいまいちですが、良ければ適用をご検討ください。
このプラグインについてコメントいただけないでしょうか?
qwik.jp に適用できない、あるいは適用するかどうかの検討に時間がかかる
ということであれば、
[qwikweb:73]{{br}}
qwik.jpからの移行作業の件ですが,もし希望であれば,該当するdirectoryそ のものをtar.gzなどでお渡しすることは可能です.手動でやることになります.
をお願いしたいと考えています。
(できれば3月中には移行したいと考えています)
Tsuyoshi Fukui
江渡です.対応する時間がとれていなくてすいません.
このプラグインについてコメントいただけないでしょうか? qwik.jp に適用できない、あるいは適用するかどうかの検討に時間がかかる ということであれば、
すいません,検討に時間がかかりますので,
qwik.jpからの移行作業の件ですが,もし希望であれば,該当するdirectoryそ のものをtar.gzなどでお渡しすることは可能です.手動でやることになります.
をお願いしたいと考えています。 (できれば3月中には移行したいと考えています)
こちらを先に行います.
私宛に,該当するグループの名前と,送付先を教えてください.
えとーです。
On Thu, 15 Mar 2007 12:09:39 +0900 (JST)
Tsuyoshi FUKUI <fukui556@o...> wrote:
福居です。
Eto Yasuo <yasuo@e...>'s message at Tue, 13 Mar 2007 23:20:06 +0900
(1)アーカイブ内のファイルのタイムスタンプがアーカイブ取得時のもの になっていて、「Recent List」などの表示が無意味になってしまう (2)アーカイブに添付ファイルが含まれていない
(1)に関して、アーカイブを作るときにタイムスタンプの情報を 残すようにできないでしょうか?
qwikの問題ではなくqwikから使っているrubyzipライブラリの問題でした、 ちょっと調べてから rubyのIRCで聞いてみたとろ、Holonさんという人にも 確認してもらいsf.netにパッチまでおくってもらっちゃいましたので、 rubyzip側での取り込みとrubyzipのリリースを待つことになります。
rubyzipへのbug報告とパッチ(from Holonさん) http://sourceforge.net/tracker/index.php?func=detail&aid=1543984&group_id=43107&atid=435170
このバグは put_next_entry() にファイル名を文字列で渡した場合の ものではないでしょうか? qwik では文字列ではなく ZipEntry を生成して put_next_entry() に渡している(act-archive.rb の add_entry())ので、 ZipEntry にタイムスタンプの情報を持たせておけば問題無いはずです。
以下、テストプログラムです。 (Debian 3.1, ruby 1.8.2, libzip-ruby1.8(0.5.6-1))
require 'zip/zip'
zip_filename = "/tmp/rubyzip_test.zip" mt = Time.now - (60*60*24)
Zip::ZipOutputStream.open(zip_filename) {|zos| e = Zip::ZipEntry.new(, 'test.txt', , , 0, 0, Zip::ZipEntry::DEFLATED, 0, mt) zos.put_next_entry(e) zos.write("testtest") }
[実行結果]
$ ruby test.rb $ ls -l /tmp/rubyzip_test.zip
- rw-r--r-- 1 tfukui tfukui 122 Mar 15 12:00 rubyzip_test.zip
$ unzip -l /tmp/rubyzip_test.zip Archive: rubyzip_test.zip Length Date Time Name
- ----- ---- ---- ----
8 03-14-07 12:00 test.txt (←ちゃんと1日前の日付になっている)
- ----- -------
8 1 file
というわけで、手元の qwikWeb では [qwikweb:77] のパッチで タイムスタンプ付きの Zip ファイルを得られるようになっています。
あぁ、、、そうでしたか。
どっかで観点のポイントがずれてあさっての方向に向ったようです。
大変失礼いたしました。