Personal tools
You are here: Home 清水川記 COREBlog1.2.1がリリース
Document Actions

COREBlog1.2.1がリリース

COREBlog1.2.1 がリリースされました。今回のリリースを境にメンテナンスモードに入ると言うことで、これまでの延長線上での機能追加はこれが最後になるようです。

ということで、さっそく今回のリリースで追加された コメントやトラックバックの追加前にフックメソッドを呼び出す 機能を使ってみました。

コメント追加前に *コメントスパム* の可能性があるかどうかをチェックして、
可能性がある場合は *要モデレート* 状態にします。

.. image:: images/coreblog_buzzwords/thumb?width=200
:target: images/coreblog_buzzwords
:align: right

今回はとりあえずNGワードを含む投稿をチェックすることにします。
まず、 COREBlogインスタンスのmethodsフォルダ(以下blog/methods)のプロパティーに
``buzz_words`` という名前のプロパティーを ``lines`` 型で追加します。
そして、プロパティーの値として行単位でNGワードを追加します。

自分は最初はpoker等を対象にしていたのですが、最近はきりがなくなってきたので ``href``
をNGワードにしてしまいました。

次に、以下のPythonスクリプトを ``beforeAddComment`` という名前で blog/methods
フォルダに追加します。

.. code-block:: Python

## Script (Python) "beforeAddComment"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=d
##title=
##
try:
if not d["moderated"]:
return d

buzz_words = container.getProperty("buzz_words")
s = str(d).lower()
for w in buzz_words:
if s.find(w) >= 0:
d["moderated"] = 0
break
else:
d["moderated"] = 1

except:
pass

return d

このへんのコードは `lirisさんの記事`_ から頂いたものをCOREBlog1.2.1用に軽く修正
しています。ありがとうございます。

同様に ``beforAddTrackback`` というスクリプトを用意すれば同じ事が出来ます。


.. figure:: images/coreblog_spams/thumb?width=200
:target: images/coreblog_spams
:align: left

結果、こんな感じでコメントスパムがフィルタリングされています。
チェックの付いていないやつがフィルタされたスパムです。

‥‥大杉。今日だけでコメントスパム投稿数 **100件** って何?

.. class:: visualClear

.

.. _`lirisさんの記事`: http://www.liris.org/blog/626/

Category(s)
Zope Zope

Re: COREBlog1.2.1がリリース

Posted by setomits at Oct 12, 2005 10:59 AM

なるほど、 beforeAddComment はこうやって使うんですね。参考にさせてもらいます。

ところで d["moderated"] = 1 のとこの else のブロックのインデントがひとつ左にずれて見えるのは Safari だからかしらん。

Re: COREBlog1.2.1がリリース

Posted by 清水川 at Oct 12, 2005 12:03 PM

> ところで d["moderated"] = 1 のとこの else のブロックのインデントがひとつ左にずれて見えるのは Safari だからかしらん。

いえ、これはfor文に対するelseです。つまりfor文が回りきった場合のみ実行されてます。

でもよく考えるとbuzz_wordsに引っかからなかったら *放置* するのが正しい動作のような気が...。結果としてはelse節は無くても動作は同じですね(;-;

Re: COREBlog1.2.1がリリース

Posted by setomits at Oct 12, 2005 02:17 PM

なるほど。
にあるあたりですね。
これまでこういう else の使い方をしたことがなかったので、ちょっとびっくりしました。

Re: COREBlog1.2.1がリリース

Posted by shin at Oct 13, 2005 12:49 PM

はじめまして、shinと申します。plonifiedについて質問です。
COREBlog1.2 / COREBlog1.2.1 で
スキンをplonifiedに変更すると、
There is no setting in this skin.
確認すると、
Site Error
An error was encountered while publishing this resource.
のエラーで、plonifiedスキン利用出来ないのですが。なぜでしょう。
defaultのスキンは、適用されます。

Apache/2.0.54 (Win32) DAV/2 mod_autoindex_color mod_ssl/2.0.54 OpenSSL/0.9.8 mod_jk2/2.0.4 PHP/5.0.4 SVN/1.2.3

Apache / zope 連携

Ploneバージョン概要
Plone 2.1,
Zope (Zope 2.7.7-final, python 2.3.5, win32),

以上の件、宜しくお願い致します。

Re: COREBlog1.2.1がリリース

Posted by 清水川 at Oct 13, 2005 03:10 PM

plonifiedに変更したときに
「スキンの設定を編集してください。'(Blogのタイトル)'.」
There is no setting in this skin.
と表示されるのは、plonifiedのskinに設定項目が無いためです。viewで表示すればちゃんとPloneに統合されて表示されませんか?

表示されずに、後半にかかれているようなエラーが起きるのであれば、、、ちょっとわかりません。そこから先はここよりも、COREBlogかZopeのMLで聞かれるのが近道かも。

コメントスパム弾き実験のまとめ

Posted by blogSetomits at Nov 28, 2005 12:48 AM
これまで3度に渡って実験してきたコメントスパム弾き実験をまとめます。 基本的には JavaScript を無効にしている人にとっては、一旦有効にしてからリロードして...とめんどいし、そのハンドリングを考えるとめんどいので却下。 具体的には時刻情報を埋め込んで、POSTされるときの時刻から許容できるずれ幅を超えていたらはねて...
Add comment

You can add a comment by filling out the form below. Plain text formatting.

(Required)
(Required)
(Required)

« February 2010 »
Mo Tu We Th Fr Sa Su
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
About this blog
Zope, Python, FreeBSD, その他色々について。つまり日記か。
Recent comments
現在翻訳中! しみずかわ Jan 23, 2010
パッチ使わせていただきます 檜山正幸 Dec 21, 2009
いまきづいた jack Dec 19, 2009
Re:讃岐うどん 新宿 楽釜製麺所 jack Dec 19, 2009
Re:讃岐うどん 新宿 楽釜製麺所 とか★ちん Dec 19, 2009
Error
There was an error while rendering the portlet.