HOME | ドキュメント |  ブログ  |  BBS  |  瓦版  | 将棋プロジェクト |  物置小屋   

模型飛行機 象歩ブログ 海まで散歩
08 April 2007

COREBlog 1.2.5 でスパムを掃除する

いまごろになって...ですが;;
Zope  

コメントやトラックバックでのフィルタを掛けると、 モデレートされないゴミが溜ってきます。 これを削除する作業が行ったり来たりで結構面倒ですが、 SiteBytes サイトに コメント管理の一覧リンクを出す と云うありがたい記事があります。 ただモデレートされないもの (つまりスパム) が表示されません。 ちょっとだけ COREBlog の本体にパッチを当てることにしました。

--- COREBlog/COREBlog.py.orig
+++ COREBlog/COREBlog.py
@@ -1100,7 +1100,7 @@
     security.declareProtected(View, 'rev_comment_items')
-    def rev_comment_items(self,start=0,count=-1):
+    def rev_comment_items(self,start=0,count=-1,consider_moderation=1):
         """Return list of Comment(reversed indexing)."""
         start = r2i(start,0)
         count = r2i(count,-1)
@@ -1115,7 +1115,7 @@
             id = self.comment_list[l_e]
             obj = self.getComment(id)
             l_e = l_e - 1
-            if obj.moderated:
+            if obj.moderated or not consider_moderation:
                 l.append(obj)
                 count = count - 1
         return l


COREBlog の「最近のコメント一覧」を真似て、 以下のような DTML メソッドを作り表示できます。 オブジェクトは COREBlog の methods フォルダの中にでも置きます。

<dtml-var standard_html_header>
<h2>最近のコメント一覧</h2>
<ul>
<dtml-in "rev_comment_items(0, -1, 0)">
  <dtml-if moderated><li><dtml-else><li style="background-color:#ffa"></dtml-if>
    <dtml-var "ZopeTime(created)" fmt="%Y-%m-%d %H:%M"> 
    <a href="<dtml-var blogurl missing="">/<dtml-var parent_id>/manage_comments">
      <dtml-if "title==''">(no title)<dtml-else><dtml-var title></dtml-if>
    </a>
  </li>
<dtml-else>
  There are no comments.
</dtml-in>
</ul>
<dtml-var standard_html_footer>

ついでにトラックバックの方も同じ方式でやることにしました。

--- COREBlog/COREBlog.py.orig
+++ COREBlog/COREBlog.py
@@ -1163,7 +1163,7 @@
     security.declareProtected(View, 'rev_trackback_items')
-    def rev_trackback_items(self,start=0,count=-1):
+    def rev_trackback_items(self,start=0,count=-1,consider_moderation=1):
         """Return list of Trackback(reversed indexing)."""
         start = r2i(start,0)
         count = r2i(count,-1)
@@ -1178,7 +1178,7 @@
             id = self.trackback_list[l_e]
             obj = self.getTrackback(id)
             l_e = l_e - 1
-            if obj.moderated:
+            if obj.moderated or not consider_moderation:
                 l.append(obj)
                 count = count - 1
         return l

表示する DTML メソッドは以下の通り。

<dtml-var standard_html_header>
<h3>最近のトラックバック一覧</h3>
<ul>
<dtml-in "rev_trackback_items(0, -1, 0)">
  <dtml-if moderated><li><dtml-else><li style="background-color:#ffa"></dtml-if>
    <dtml-var "ZopeTime(created)" fmt="%Y-%m-%d %H:%M"> 
    <a href="<dtml-var blogurl missing="">/<dtml-var parent_id>/manage_trackbacks">
      <dtml-if "title==''">(no title)<dtml-else><dtml-var title></dtml-if>
    </a>
  </li>
<dtml-else>
  There are no trackbacks.
</dtml-in>
</ul>
<dtml-var standard_html_footer>

参考サイト

というか、全部上記サイト内容の泥棒です。恥ずかしい;;

Comments
Re: COREBlog 1.2.5 でスパムを掃除する

御無沙汰です。トラックバックありがとうございました〜。

情けないことに紹介頂いたエントリで自分がどういう作業をしていたかほとんど忘れています(汗

>モデレートされないもの (つまりスパム) が表示されません。

とあったのですが、うちではこのやりかたで全一覧が出てました。なんか他に弄ったかなぁ....

Posted by: Max at April 08,2007 22:52
Re: COREBlog 1.2.5 でスパムを掃除する

ご足労かけて恐縮してます;;
トラックバック管理の方は Max さんの rev_trackback_items_nomod() メソッドを使うと全一覧が出ます。
一方コメント管理については DTML で rev_comment_items() になっているので、モデレートされたものしか表示されませんでした。
多分、実際は rev_comment_items_nomod() とか云うメソッドを追加なさったのだと、勝手に想像してました...

Posted by: owa at April 09,2007 13:37
Re: COREBlog 1.2.5 でスパムを掃除する

こちらこそ恐縮です。
理由が分かりました。

"モデレートされたもの"というのは掲載許可されたものだけ、ということですね。

私のところではコメントはモデレーションを経ずにそのまま掲載されるようになっています。COREBlogのプロパティとしては、

"moderate_comment = 0"

の状態です。で、これだと投稿されたコメントはそのまま載ります。コメントオブジェクトの"moderated"は常に"1"です。

なぜこれに気がつかなかったか、というと、"check_session_on_comment=1"でコメントSPAMは水際で排除されている、つまり、この機能を入れてからコメントSPAMはこなかった。と、そういうことでした:-P

というわけで、owaさんの変更も私のところに反映させようと思います。
ありがとうございました〜

Posted by: Max at April 09,2007 18:06
Re: COREBlog 1.2.5 でスパムを掃除する

なるほどー、スッキリです^^
簡易フィルタリングに管理画面を併用することで、かなり楽になりました。
ここしばらく毎日監視しながら、手で削除してたもので、ははは;;

Posted by: owa at April 09,2007 21:08
Trackbacks

【注意】TrackBack 送信なさる場合、 あなたの記事中に参照リンク (当ブログの URL 記述) が必要です。 トラックバックスパム防止のため、御了承ください。

COREBlog.pyの編集に失敗

Trackback Spam 対策 で、良い情報を発見。
象歩ブログ経由で、COREBlog 1.2.5
のトラックバックSPAM対策強化を見つけて、無謀にもテストもしないで、ここのロジックを修正。再起動。
立ち上がらない。・・・。 SSHで入ってみる。
鍵がマッチングしない。・・・。 困った。・・・。
サーバの持ち主にメールを出した。問題なく復旧。あ〜ぁ。
kiyo さんへ 大変ご迷惑をかけました。

Posted by: Hoihoi-p's Blog 其の2 at May 03,2007 00:40
Post a comment











一回プレビューして投稿内容の確認をしてください。その後に投稿可能になります。