Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

makerss_*.rbと絵日記プラグインを有効にすると、絵日記プラグインによる画像POSTのresponseが不正になっている #63

Closed
tamoot opened this issue Aug 21, 2013 · 2 comments

Comments

@tamoot
Copy link
Member

@tamoot tamoot commented Aug 21, 2013

  • tDiary 4.0.0 20130808での動作
    • makerss_category.rb または makerss_comment.rbを有効にした状態で、絵日記プラグインのPOSTリクエストに対するresponsd bodyは、PluginErrorが返されている。
    • そのため、既にアップロード済みの画像、アップロードした画像双方が更新画面に表示されない。
    • リロードすると画像は表示される。
Plugin Error

Errors in plugins? Retry to Update or Configure.

    TDiary::PluginError

    Plugin error in '50sp.rb'.
    Plugin error in '/home/tdiary/workspace/github/tdiary-contrib/plugin/makerss_comment.rb'.
    no content body
    (plugin/50sp.rb):136:in `rescue in block (3 levels) in load_plugin'

    /home/tdiary/workspace/github/tdiary-core/tdiary/plugin.rb:68:in `rescue in initialize'
    /home/tdiary/workspace/github/tdiary-core/tdiary/plugin.rb:59:in `initialize'
    /home/tdiary/workspace/github/tdiary-core/tdiary/base.rb:91:in `new'
    /home/tdiary/workspace/github/tdiary-core/tdiary/base.rb:91:in `load_plugins'
    /home/tdiary/workspace/github/tdiary-core/tdiary/author_only_base.rb:88:in `load_plugins'
    /home/tdiary/workspace/github/tdiary-core/tdiary/base.rb:57:in `do_eval_rhtml'
    /home/tdiary/workspace/github/tdiary-core/tdiary/base.rb:30:in `eval_rhtml'
    /home/tdiary/workspace/github/tdiary-core/tdiary/dispatcher/update_main.rb:31:in `run'
    /home/tdiary/workspace/github/tdiary-core/tdiary/dispatcher/update_main.rb:6:in `run'
    /home/tdiary/workspace/github/tdiary-core/tdiary/dispatcher.rb:26:in `dispatch_cgi'
    /home/tdiary/workspace/github/tdiary-core/update.rb:32:in `<top (required)>'
    /home/tdiary/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
    /home/tdiary/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
    /export/tdiary/sample/update.rb:2:in `<main>'


  • tDiary 3.2.1 に戻して(contrib/plugin/makerss_*.rbはそのまま)みたところ、以下の動作でした
    • response bodyは、アップロードされた画像が追加された更新画面
    • アップロードした画像がGETされ、利用者は更新画面でアップロードした画像を確認できる

makerss.rbで何が起きているのか見てみました。

no content body (EOFError)
/home/tdiary/.rvm/rubies/2.0.0-p247/lib/ruby/2.0.0/cgi/core.rb:478:in `read_multipart'
/home/tdiary/.rvm/rubies/2.0.0-p247/lib/ruby/2.0.0/cgi/core.rb:650:in `initialize_query'
/home/tdiary/.rvm/rubies/2.0.0-p247/lib/ruby/2.0.0/cgi/core.rb:827:in `initialize'
(plugin/makerss.rb):66:in `new'
(plugin/makerss.rb):66:in `initialize'
(plugin/makerss_comment.rb):35:in `new'
(plugin/makerss_comment.rb):35:in `block in load_plugin'
/home/tdiary/workspace/github/tdiary-core/tdiary/plugin.rb:83:in `instance_eval'
/home/tdiary/workspace/github/tdiary-core/tdiary/plugin.rb:83:in `block in load_plugin'
/home/tdiary/workspace/github/tdiary-core/tdiary/plugin.rb:82:in `open'
/home/tdiary/workspace/github/tdiary-core/tdiary/plugin.rb:82:in `load_plugin'
(plugin/50sp.rb):131:in `block (3 levels) in load_plugin'
(plugin/50sp.rb):127:in `each'
(plugin/50sp.rb):127:in `block (2 levels) in load_plugin'
(plugin/50sp.rb):126:in `each'
(plugin/50sp.rb):126:in `block in load_plugin'

tdiary/tdiary-contrib/plugin/makerss_comment.rb の最後でエラーになっている。

@makerss_rsses << MakeRssComments::new( @conf )

3.2.1と 3.2.2.20130722で何が違うのか、もう少し見てみます。

db8709dae01d76e55c674ed5818f0bdd9c674d80 の修正から発生しているようでした。

以下の修正で絵日記プラグインとしては動作するようになりました。

diff --git a/plugin/makerss_category.rb b/plugin/makerss_category.rb
index 922da3a..70b10c2 100644
--- a/plugin/makerss_category.rb
+++ b/plugin/makerss_category.rb
@@ -40,4 +40,4 @@ class MakeRssCategory < MakeRssFull
        end
 end

-@makerss_rsses << MakeRssCategory::new( @conf )
+@makerss_rsses << MakeRssCategory::new( @conf, @cgi )
diff --git a/plugin/makerss_comment.rb b/plugin/makerss_comment.rb
index 44a1bfe..0aeb5f4 100644
--- a/plugin/makerss_comment.rb
+++ b/plugin/makerss_comment.rb
@@ -32,4 +32,4 @@ class MakeRssComments < MakeRssFull
        end
 end

-@makerss_rsses << MakeRssComments::new( @conf )
+@makerss_rsses << MakeRssComments::new( @conf, @cgi )

こんどは、makerss_comment.rbがうまく動作しないようです。comments.rdfが空のままでした。

4.0.0時点で、image.rbとcontrib/plugin/makerss_*.rbの組み合わせで、発生するようになってしまう問題です。

@tdtds

This comment has been minimized.

Copy link
Member

@tdtds tdtds commented Jan 5, 2014

上記パッチを含め、いろいろ調整してみたんですが、どうでしょう? 手元では絵日記更新もcomments.rdfの更新もされています。

@tamoot

This comment has been minimized.

Copy link
Member Author

@tamoot tamoot commented Jan 6, 2014

ありがとうございます。こちらの環境でも以下が正常に動作していることを確認しました。パスの問題とは気づきませんでした。

  • makerss_category.rbを有効にし、日記を更新すると、tdiary.confに指定したカテゴリのエントリを含むcategory.rdfが出力される
  • 編集画面の画像POSTが成功し、画像が表示される

環境は以下です。

  • 4.0.2.20131215 (2014/01/06 git pullしたもの)
  • Ruby 2.1.0-p0
  • cgi環境
@tamoot tamoot closed this Jan 6, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants
You can’t perform that action at this time.