SpamLookupフィルタ

投稿者 akira 2005-10-13 15:00:00 GMT

SpamLookupフィルタを設置してみた。

Flickrプラグイン

投稿者 akira 2005-08-30 15:00:00 GMT

まちゅダイアリーからFlickrプラグイン(flickr_plugin-20050811)をいただいて使ってみる。どうも日本語のタイトルにしているとうまくタイトルを取れないようなので(多分$KCODE絡み)正規表現をn付きで生成するようにして、ついでにメソッドの外に出しておく。

あとサイズとかも取れそうなので(いや、よく分からないけど)取れるようにしてみる。それからIDを数値でもよくして、<img>class="flickr"を追加。

diff -ruN plugin.orig/flickr.rb plugin/flickr.rb
--- plugin.orig/flickr.rb	2005-08-31 16:39:32.000000000 +0900
+++ plugin/flickr.rb	2005-08-31 17:01:32.000000000 +0900
@@ -24,12 +24,15 @@
     return '[ERROR] flickr.rb: API Key is not specified.'
   end
   @conf['flickr.default_size'] ||= 'thumbnail'
-  photo = flickr_photo_info(photo_id, size)
+  photo = flickr_photo_info(photo_id.to_s, size)
 
   if @cgi.mobile_agent?
     body = %Q|<a href="#{photo[:src]}">#{photo[:title]}</a>|
   else
-    body = %Q|<a href="#{photo[:page]}"><img title="#{photo[:title]}" alt="#{photo[:title]}" src="#{photo[:src]}" class="flickr"></a>|
+    body = %Q|<a href="#{photo[:page]}"><img title="#{photo[:title]}" alt="#{photo[:title]}" src="#{photo[:src]}" class="flickr"|
+    body << %Q| width="#{photo[:width]}"| if photo[:width]
+    body << %Q| height="#{photo[:height]}"| if photo[:height]
+    body << %Q|></a>|
   end
 
   mapurl = flickr_mapurl(photo)
@@ -96,26 +99,37 @@
   end
 end
 
+FLICKR_PAGE   = %r|<url type="photopage">([^<]+)</url>|n
+FLICKR_TITLE  = %r|<title>([^<]+)</title>|n
+FLICKR_TAGS   = %r|<tag[^>]+raw="([^"]+)"|n
+FLICKR_SRC    = %r|<size label="([^"]+)" [^>]+ source="([^"]+)"|in
+FLICKR_WIDTH  = %r|\bwidth="(\d+)"|n
+FLICKR_HEIGHT = %r|\bheight="(\d+)"|n
 def flickr_photo_info(photo_id, size)
   size ||= @conf['flickr.default_size']
   # size = 'thumbnail' if @cgi.mobile_agent?
-  regex_page  = %r|<url type="photopage">([^<]+)</url>|
-  regex_title = %r|<title>([^<]+)</title>|
-  regex_src   = %r|<size label="#{size}" [^>]+ source="([^"]+)"|i
-  regex_tags  = %r|<tag[^>]+raw="([^"]+)"|
   photo = {}
   photo[:tags] = []
 
   flickr_open('flickr.photos.getInfo', photo_id) {|f|
     f.each_line {|line|
-      photo[:page]  = $1 if line =~ regex_page
-      photo[:title] = $1 if line =~ regex_title
-      photo[:tags].push $1 if line =~ regex_tags
+      case line
+      when FLICKR_PAGE
+	photo[:page]  = $1
+      when FLICKR_TITLE
+	photo[:title] = $1
+      when FLICKR_TAGS
+	photo[:tags].push $1
+      end
     }
   }
   flickr_open('flickr.photos.getSizes', photo_id) {|f|
     f.each_line {|line|
-      photo[:src] = $1 if line =~ regex_src
+      if FLICKR_SRC =~ line && $1.downcase == size.downcase
+	photo[:src] = $2
+	photo[:width] = $1 if FLICKR_WIDTH =~ line
+	photo[:height] = $1 if FLICKR_HEIGHT =~ line
+      end
     }
   }
   photo

ツッコミspam対策にベイジアンフィルタ 2

投稿者 akira 2005-08-20 15:00:00 GMT

ベイジアンフィルタを逆向きに適用して、自分の記事や他のコメントとある程度似ているところのある内容以外のものを排除するというのはどうだろか。データベースの更新もバッチ的に行う程度で済んじゃったり、しないかなあ?

コメントspamフィルタで不正なメールアドレスを排除

投稿者 akira 2005-08-11 15:01:00 GMT

この前URLのチェックに加えたTLDチェックをメールアドレスに対しても行うようにしてみた。

それとcapsctrldaysのパッチを取り込ませていただく。

古い記事へのコメントをspamとみなす

投稿者 akira 2005-08-08 15:00:00 GMT

ふたたびAD-HOCKERY DIARYからアイデアをいただく。

指定した日数より前の日付けの記事へのコメントをspamとみなすことができるようにしてみた。たとえば30を指定すると30日前よりも古い記事へのコメントがspamとみなされ、0を指定すると当日、つまりコメントを付けようとした日付けと記事の日付けが等しい場合以外はspamとみなされる(未来日記の場合はspamにならない)。空欄のままにすると制限なし。

コードはここ

コメントspamフィルタでspamを捨てる

投稿者 akira 2005-08-07 15:01:00 GMT

spamと判定されたコメントを非表示にするのではなくて単に捨てることができるようにしてみた。そんなにテストをしていないのでまたしてもちょっと不安。

コメントspamフィルタ更新

投稿者 akira 2005-08-06 15:00:00 GMT

AD-HOCKERY DIARYのパッチをいただきました。URLの最大値を0に設定できるようになる。

あと、最近よく見る変なURLだけのコメントspam。なにしたいんだろなあと思ってたのだけど、どうもブラウザによる補完をあてにしてるっぽい気がしてきた。なのでそのあたりについて少しケアしてみる気分に。パターンが間違っているかもしれないので注意。

コードは前と同じところ

非表示にするのではなくて単に捨てるようにも設定できるようにしたほうが良いかしら。

コメントspamフィルタ更新

投稿者 akira 2005-08-06 15:01:00 GMT

やはり、というかなんというか、パターンに問題があったので修正。

コメントspamフィルタ

投稿者 akira 2005-07-25 15:00:00 GMT

tDiaryの脆弱性に関する報告(2005-07-20)

投稿者 akira 2005-07-20 15:00:00 GMT

tDiaryを2.0.2に更新した。

このリリースの目的は、主に脆弱性対策です。脆弱性の内容については脆弱性に関する報告(2005-07-20)をご覧下さい。対象となるバージョンをお使いの方は、最新版へのバージョンアップを強く推奨します。

[tDiary 2.0.2、2.1.2リリースより引用]

というわけ。