ももらぼっ!にっき


2006年03月18日 [長年日記]

_ りにゅーある…?の2

今度は、いぬそふとたちのサイトの構成を変えてみた。 同じようにサイドバーがある構成にしたので、いぬそふとなリンクから掲示板などへのリンクがちょっとわかりやすくなったかな。

でも、W-ZERO3のIEだとサイドバーにならず、下にいってしまうみたいですね(T-T) 回避策は考えてみます。しばしお待ちを…m(_ _)m

_ [tDiary] つっこみスパム。

ついに古い日記のつっこみスパムたちをきれいに消し去りました。 …ちょ〜っと、スパムじゃないつっこみも消してしまいましたが…。*1

最初は、tdiary-comment-cleanで消そうと思ったんだけど、つっこみにURLを書いてくれている人が結構居たのでうまい正規表現が見つからず、結局ひとつずつ手でしこしこ消していきました。 数百のつっこみスパムを消し去るのはちょ〜っと骨でしたね。

で、そんな手で消す作業をするために、chmod.rbというtDiaryプラグインを書きました。 ウチとこって、CGI経由で生成されたファイルってownerがnobodyになっちゃうからtelnetしてもそのファイルたちをいじれないんですよ。 なので、無理やりtDiaryのデータファイルをchmod 606することで対処したわけです。 多分あんまり需要はないとは思うのですが、一応公開しておいてみます。

# chmod.rb
def chmod(mode)
  result = ""

  Dir.glob("#{@conf.data_path}**/*").sort.each do |fname|
    file = File.stat(fname)
    own = if file.owned?
      if mode == "true"
        if file.directory?
          File.chmod(0707, fname)
        else
          File.chmod(0606, fname)
        end
        "!"
      elsif mode == "false"
        if file.directory?
          File.chmod(0707, fname)
        else
          File.chmod(0604, fname)
        end
        "!"
      else
        "*"
      end
    else
      " "
    end

    file = File.stat(fname)
    result << own << " " << file.mode.to_s(8) << " " << fname << "\n"
  end
  result
end

add_conf_proc( 'chmod', 'chmod' ) do
  result = ''
  if @mode == 'saveconf' then
    result = chmod(@cgi.params["chmod.mode"][0])
  end

  html = ''
  html << '<p>'
  html << "<hr />"
  html << "<p>"
  html << %Q[<input type="radio" name="chmod.mode" value="true">書けるようにする。<br>]
  html << %Q[<input type="radio" name="chmod.mode" value="false">書けないようにする。<br>]
  html << %Q[<input type="radio" name="chmod.mode" value="show" checked>今の状態を見る。<br>]
  html << "</p>"
  html << "<pre>"
  html << result
  html << "</pre>"
  html << '</p>'
  html
end

*1  書いてくれていた人ごめんなさいですm(_ _)m

本日のツッコミ(全2件) [ツッコミを入れる]
_ 藤代千尋 (2006年03月23日 00:07)

掲示板の方も、スパムが。<br>有名税?(^^;)

_ ももたろ (2006年03月23日 01:29)

藤代さん><br>そーなんですー(T-T)<br>有名税かどうかはさておき、掲示板のスパムが最近また増えてきてしまって…。<br>今は手でしこしこ消してます。<br><br>掲示板CGI(Child Tree)がPerlなスパゲティ(にしか私には見えない)ソースなので、<br>どうするとフィルタできるのか…。<br>とりあえず、Child Treeのバージョンをあげてみようと思ってます。