COREBlog 1.2.5 でスパムを掃除する
コメントやトラックバックでのフィルタを掛けると、 モデレートされないゴミが溜ってきます。 これを削除する作業が行ったり来たりで結構面倒ですが、 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>
参考サイト
- COREBlog1 コメント管理の一覧リンクを出す — SiteBytes
- COREBlog 1.2.5 のトラックバックSPAM対策強化 — SiteBytes
- COREBlogのコメントスパム対策 — Days of Liris
というか、全部上記サイト内容の泥棒です。恥ずかしい;;