submitボタンなのだが、POST時にadmin/index.phpでこれをissetチェックしているのでつけてやる必要があると、イメージストリーム本体の「photo」を送る必要がある。修正してやる必要もあるイメージストリームの流し込み方などはcapture.tumblr.jsそのままになるので、Tumblr.post()に渡すオブジェクトを上記のように整えてやればよいのだが、tumblrでは必要としないfilenameを与えてやる必要もある。08.03.01付けの0.0.1bで修正されたようです。HTTP.Request.prototype.create_streamへの修正作業は不要になりました。(08.03.02追記)この「filename」を与えてやるにあたり、もう一箇所修正が出てくる。マルチパートのストリームを生成している、HTTP.Requestクラスのcreate_streamメソッドだ。173行目でfilenameが与えられていた場合にそれをリクエストに追加するのだが、ここでパラメータオブジェクト名を除いた変数でアクセスしているため、これを修正しないと例外になる。tumblrの場合はこのロジックを通らないので見つからなかったバグなのだろう。そんなわけでこんなやり方こんな感じで手を加える部分がちょっと散っているので、Tumblrオブジェクトはまるまる再定義ImageSaver.postメソッドもまるまる再定義create_streamメソッドは173行目を修正といった感じで実装してみた。修正コードのみですがこんな感じで。}}opts.multipartへの値の割り当ては、オリジナルではparams.typeの内容をチェックしていたのだが、どうせマルチパート確定なので直接trueをセットしている。あとはURLはendpointに何も手を加える必要がないのでこんな感じになった。}}Tumblr.post()に渡しているオブジェクトの構成は前述の通り。ローカル変数「file_name」はphotoに割り当てるファイル名なのだが、gelatoはかなり何も考えてなくて、同じ名前のファイルをアップロードすると無条件に上書きするというステキ仕様なので、仕方なくランダム生成している。あとの例外ハンドリングなどはオリジナルコードそのまま。542行目)の直前にそのまま差し込むことで再定義ができる。'\r\n';と修正すればよい。あとはこの追加・修正を適用したファイルを「capture.gelato.js」とでもしてJSAスクリプトのglobalフォルダに放り込めば使える。動かなかったらコメント下さい。いってもgelato使ってる人なんざほとんどいないだろうけど。あ、あと38行目のconffileの設定は別にどうでもいいです。内容を参照しないので、ファイルさえあれば大丈夫なはずなので。[コメント(0)|トラックバック(0)]gelatoを試してみたり。前々から興味があったのだしばらく前にMOONGIFTで紹介されていて、激しく興味があったオープンソースCMS「gelato」。これ、要するにtumblrクローン。バージョンが0.95なので鋭意開発中、って感じなんだろうけど、tumblr感覚でローカルにぽこぽこPOSTできるとちょっといいよな、と思って試しにインストールしてみた。インストールインストールはこちらの記事を参考に。PHPのアプリケーションインストールしたことあるならほとんど迷わないと思うけど、install.phpでDBがらみの情報入力させる割りに先に「config.php」にDB設定書き込んどかなきゃなんなかったのがイマイチ腑に落ちないけど。Noteさんとこから、日本語化ファイルをダウンロードできるのでそちらも忘れずに。ありがたや、ありがたや。使ってみる管理画面はtumblrのダッシュボードのようにはいかず、ちょっぴり使いづらいんだけど、まぁ普通にPOSTできるわな。設定でタイムゾーン選択できるんだけど、POSTに上手く反映されてないような。あと、わかりづらいけど一応ブックマークレットもついてます。図の赤枠のところがリンクになってて、これをブックマークすれば一応ブックマークレット。「一応」って断り書きをしたのは、ちょっとクセがあってtumblr感覚で使うとわりと戸惑うかと。普通にクリックするとlink。画像を表示しているとphoto。tumblrみたいに親切にページ中の画像を列挙してくれたり、選択部分からquoteしてくれたりはしない上に、ブックマークレットから起動したPOSTフォームは単機能なので切替もできず。がんばって欲しいところ。JSActionのスクリプトを書いてみるんで、実はこっからが本番。そもそもローカルで使いたい動機は、社内に設置している内向きのブログ書くときに、スクリーンショットとかを手間なくホストしときたいなーってとこだったわけ。JSActionでphoto直行その次はcapture.tumblr.jsをローカルgelato対応になんて野望を抱いているわけで。capture.tumblrはちとソース読むのが大変そうなので、まずはフォームの構造を調べがてらJSActionスクリプトを作ってみた。v2」ということにします。このスクリプトをJSActionのimageフォルダに保存して、一番最後の関数呼び出しに使ってる引数にPOST先のURLに変更して使う。この例では「http://localhost/gelato/」がgelatoのURLね。実はちょっと注意点があって、POSTデータの「description」(linkのcaption)に元ページのURLをanchorでくっつけてるんだけど、gelatoはdescriptionをstrip_tags()しちゃうのでこのままだとリンクにならない。$_POST['description'];に変更すればHTMLタグ使い放題。あー、自己責任でおながいします。sizes」がある場合はそっちへ飛んでからじゃないと上手くPOSTできません。あとPOSTエラーも特に何もしてないので、「POSTされてなかったらなんかエラーでたんだなー」といった感じで使ってください。使う人いるかわからんけど。apiも実装してるっぽいけど、コメントアウトの仕方が悪くてエラーになったり、そのあたり解消してもまともに情報返してくれなかったり。新規POST扱いになる。photoはlightbox使って表示するんだけど、上手く表示できないときがある。lightboxとかで使ってる画像リソースのパス解決が上手くいかない場合があるっぽい。アカウントを複数作れるけど、アカウント別に表示できたりするわけじゃないし、他のアカウントのPOST削除できちゃうし。svnから最新ソースをチェックアウトしてみたけどクラスだか関数の重複定義とかでエラーがでて、もうぐだぐだ。イントラ)画像サーバと思えばなんとか使えなくもないかな。次はがんばってcapture.tumblr.jsの改造だ。追記このところ私事でネットに思うように時間を取れなかったため1週間近くの放置になりましたが、追記です。こちらの一方的で感情的な内容のエントリですが、1/6付けにのしさんのほうが「これにて諍い終わり!ヽ(・ω・)ノ」とおっしゃってくださいました。かってにこちらから噛み付いておいて腰砕けのようですが、そのお言葉に甘えてこちらも終わりといたします。#34」をご覧になる上での一種の資料と思い、とりあえずこのままにしておきます。のしさんが「印象操作をしている」かのような主張は大変失礼であったと反省をし、その部分は打消し、補足を追記いたしました。印象操作呼ばわりをして、大変申し訳ありませんでした。コメント欄にも、さまざまなご意見をいただきました。はてなブックマークもいくつかブックマークしていただき、そちらでもいくつかコメントをいただきました。コメントを寄せていただいた皆様に感謝いたします。tumblrのほうですが、いろいろ考えるところもあり以下のような運用にしようと思います。投稿はtextとlinkのみ行う。quoteについてはlinkで代替とするすでに投稿済みのphotoについては、順次プライベートに変更していく。photo以外のコンテンツは原則そのままphotoのメンテナンスについては、手作業ではかなり時間がかかりそうなので、なにかツールを作るかもしれません。以上を以って、このエントリを終了とさせていただきます。お騒がせして申し訳ありませんでした。このエントリについて※:このエントリの内容はdara-jの一方的な主観に基づいております。お読みになる場合はそのあたりを踏まえてお願いいたします。tumblrとワタクシ」について、dara-jが自分のtumblrに2008/01/04にquoteした4つのエントリへのツッコミに関するもので、ぶっちゃけた話、のしさんとdara-jの諍いの一端です。tumblrとワタクシ」の2008/01/04付けの「tumblrから苛まれる日々。́・ω・`)」の部分になりますが、現在の状況を把握するには「tumblrとワタクシ」全体およびそこからの関連リンクなどを一通り目を通す必要があると思うので、関心のない方(≒tumblrをしていない方や、無断転載や引用の問題に関心がない方)はスルーされたほうがよいかもしれません。ブログに書いた理由そもそも、1/4付けの「tumblrから苛まれる日々。́・ω・`)」で取り上げられた4つのエントリ(こちらとこちらとこちら、およびこちら)は、おそらくのしさんも感じておられるようにのしさんの以前のツッコミをDISること以外に意図がない極めて不毛なもので、dara-jは「建設的な議論をしよう」という意思はなかったのですが、直接名指しでコメントが入ったため今回の4つのエントリに対するコメントへの回答はしようと考えました。tumblrにpostせずにブログのほうへ移したかというと、tumblrではまとまった文章を書きづらいコメント欄がないため、お互いのサイトを行ったり来たりで意見や主張が拡散し、さらに収集がつかない懸念があるなどの理由です。能書きをたれましたが、問題の4つのエントリに対する回答をします。「dara-clipさんにつっこまれたの1」についてdara-clipさんにつっこまれたの1どこを読んだら「Tumblrを容認できなきゃ」になるやら。