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
というか、全部上記サイト内容の泥棒です。恥ずかしい;;