2005-07-21 (Thu) [長年日記]
_ 2.0.2にアップデート
そして、tDiaryQuoteが使えなくなった。
Refererのチェックをしないようにして、csrf_protection_keyを tDiaryQuoteで渡せるようにすればいいかな。
_ tDiaryQuoteのPOST対応
とりあえず、手もとでは上記の修正で動いたけど、csrf_protection_keyをGETで送っているので、プレビュー画面から外部へのリンクをたどるとRefererでcsrf_protection_keyが洩れてしまう。
これを防ぐにはPOSTにすればいいんだけど、どうやればいいのかわからず。 ちなみに現状は、
updateUrl += "?old=" + old + ";year=" + year + ";month=" + month + ";day=" + day + ";title=" + ";body=" + encodeURIComponent(body) + ";plugin_tb_url=" + encodeURIComponent(pingUrl) + ";plugin_tb_section=" + ";plugin_tb_excerpt=" + ";appendpreview=%A5%D7%A5%EC%A5%D3%A5%E5%A1%BC" + ";csrf_protection_key=" + encodeURIComponent(csrfProtectionKey); var newTab = browser.addTab(updateUrl); browser.selectedTab = newTab;
こんな感じ。
_ lighttpd doesn't cope with 100-continue
lighttpdは
Expect: 100-continue
というへッダがあるとリクエストを受け付けてくれないので、.NETから ActionWebServiceを使うためには、以下のようにGetWebRequest()を オーバーライドしないといけない、という話。
using System; using System.Net; [System.Web.Services.WebServiceBinding(Name="PostPort",Namespace="urn:ActionWebService"), System.Diagnostics.DebuggerStepThroughAttribute(), System.ComponentModel.DesignerCategoryAttribute("code")] public class BlaBlaService : Service { protected override WebRequest GetWebRequest(Uri uri) { HttpWebRequest request = (HttpWebRequest) base.GetWebRequest(uri); ServicePoint servicePoint = request.ServicePoint; // lighttpd doesn't cope with 100-continue servicePoint.Expect100Continue = false; return request; } }
_ rast extension
なんてものを作ったらウケるだろうか。
class Article < ActiveRecord::Base has_rast_index :title has_rast_index :body has_rast_index :updated_on end
としておくだけで勝手にRastのインデックスに登録してくれて、 検索する時は、
articles = Article.find_by_rast('ふが') articles = Article.find_by_rast(['title : ?', 'ほげ'], :order => "updated_on")
だけでいいとか。
ウケるウケる!(とりあえず1人には)
ウケるウケる!(とりあえず2人目)