ドキュメントアクション
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/
- カテゴリ
-
Zope
- 固定リンク
- ¦
- コメント (5)
- ¦
- トラックバック (1)
- 風邪
- ¦
- メイン
- ¦
- コメントスパム削除対策(後ろ向き)
コメントスパム弾き実験のまとめ
- エラー
- ポートレットをレンダリングしているときにエラーがありました。
| « | 2010 年 September | » | ||||
|---|---|---|---|---|---|---|
| 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 | 29 | 30 | |||
- このBlogについて
- Zope, Python, FreeBSD, その他色々について。つまり日記か。
- 最近のエントリ
- cmscomさん主催の開発合宿に参加してきました taka 2010年08月29日
- BPStudy#36 に参加しました Jiemamyとbeproud-bot君の紹介 taka 2010年08月27日
- Zope/Plone開発勉強会#14 でxdvについてまとめました taka 2010年08月23日
- Pythonで入れ子Zip内のファイルを透過的に開く方法 - zip_openを使う taka 2010年07月19日
- Windowsでpyreadline-1.6を使うとCtrl+H押下で文字削除出来ない問題のパッチ taka 2010年07月18日
- 最近のコメント
- Re:Zope2 ドキュメントを Sphinx でビルドする手順 xiangxiang 2010年09月03日
- pyreadline-1.6対応 しみずかわ 2010年07月18日
- pyreadline-1.6対応 しみずかわ 2010年07月18日
- Re:日本語キーボードから英語キーボードへ TAZO 2010年07月15日
- Re:COREBlog2をPlone3で動かすための修正: portletのカレンダー akiko 2010年06月30日
- 最近のトラックバック
- [python] エキスパートPythonプログラミング 彷徨えるフジワラ 2010年05月30日
- ファミリーコンサート 2009 終了 takalog 2009年11月10日
- Tools@System @note (PukiWiki/TrackBack 0.4) 2009年07月12日
- Windowsのコマンドプロンプトをフリーソフトで便利にする ナレッジエース 2009年05月31日
- plone研究会(2009-05) takalog 2009年05月22日
- カテゴリ
- Agile(XP) (0)
- Event (12)
- Pattern (0)
- その他 (10)
- Zope (11)
- Memo (0)
- 食 (3)
- python (19)
- Programming (1)
- Game (0)
- OO (0)
- Unix (0)
- WZ (0)
- work (0)
- Plone (11)
- Windows (1)
- IT-PC (4)
- 自転車 (0)
- TurboGears (0)
- ダーツ (0)
- JavaScript (0)
- 旅行 (1)
- Web (4)
- セキュリティー (1)
- Django (0)
- LDAP (0)
- データベース (0)
- vi/vim/gvim (0)
- C/C++ (0)
- ボドゲ (0)
- RoR (2)
- pyspa (1)
- スタトレ (0)
なるほど、 beforeAddComment はこうやって使うんですね。参考にさせてもらいます。
ところで d["moderated"] = 1 のとこの else のブロックのインデントがひとつ左にずれて見えるのは Safari だからかしらん。
> ところで d["moderated"] = 1 のとこの else のブロックのインデントがひとつ左にずれて見えるのは Safari だからかしらん。
いえ、これはfor文に対するelseです。つまりfor文が回りきった場合のみ実行されてます。
でもよく考えるとbuzz_wordsに引っかからなかったら *放置* するのが正しい動作のような気が...。結果としてはelse節は無くても動作は同じですね(;-;
なるほど。
にあるあたりですね。
これまでこういう else の使い方をしたことがなかったので、ちょっとびっくりしました。
はじめまして、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),
以上の件、宜しくお願い致します。
plonifiedに変更したときに
「スキンの設定を編集してください。'(Blogのタイトル)'.」
There is no setting in this skin.
と表示されるのは、plonifiedのskinに設定項目が無いためです。viewで表示すればちゃんとPloneに統合されて表示されませんか?
表示されずに、後半にかかれているようなエラーが起きるのであれば、、、ちょっとわかりません。そこから先はここよりも、COREBlogかZopeのMLで聞かれるのが近道かも。