Wed, 09 Jun 2010

PyBlosxom-1.5-rc1に入れ替え

ずーっと前から連日コメントスパムの攻撃に合ったりentrycacheが動かなくなったりしながらもごまかして使ってたけど、今年の初めに1.5-rc1がリリースされてから手元でダラダラ動作確認してたのがようやく完了したので入れ替えた。

デザイン変えたり新しいプラグイン入れたり自作プラグインを書き直したりまだ色々したいけど、それはまた今度。

…今気づいたけど、タグで絞って表示してる時にrecent entriesが表示できてないな…。

posted by jun-g at 22:00
[ tags: | Permalink | 0 Comments/TBs ]

Sun, 06 Jul 2008

wbgpagerを使うようにした

前からこのブログにページャが付いていない事が気になっていたので、今更ながらページャのプラグインを使うようにした。追加したプラグインはwbgpager

最初、エラーも出ないのにページャが全然表示されず、ちょっとハマった。使用しているPyBlosxomのバージョンが古いせいかな、と思い、一つ前のバージョン(2007-11-30)のwbgpagerを使ってみると、ようやく動くようになった。

最近ブログを放置しすぎている気がするので、久々に色々手入れしようかな。

posted by jun-g at 03:24
[ tags: , | Permalink | 0 Comments/TBs ]

Sun, 11 May 2008

Google App EngineでPyBlosxomを動かす

遅まきながら、Google App EngineのSDKで遊んでいます。入門記事を読みながらHello worldをこなし、次にPyBlosxomを動かしてみる事にしました。

まずはアプリケーションを配置するディレクトリを作成。

$ mkdir -p ~/gae/pb

次にPyBlosxomをダウンロードして展開し、先ほど作ったディレクトリの下に配置。

$ cd /tmp
$ fetch http://jaist.dl.sourceforge.net/sourceforge/pyblosxom/pyblosxom-1.4.3.tar.gz
$ tar zxvf pyblosxom-1.4.3.tar.gz
$ cp -R pyblosxom-1.4.3/Pyblosxom ~/gae/pb/.

データ用のディレクトリを作る。

$ mkdir -p ~/gae/pb/data/entries

config.pyを環境に合わせて書き換える。

$ cp /tmp/pyblosxom-1.4.3/web/config.py ~/gae/pb/.
$ vim config.py

datadirは"data/entries"と相対パスで指定。他はお好みで適当に。

次に~/gae/pbの直下にメインとなるモジュールpb.pyを作成。

import wsgiref.handlers

import Pyblosxom.pyblosxom
from google.appengine.ext import webapp

def main():
    application = Pyblosxom.pyblosxom.PyBlosxomWSGIApp()
    wsgiref.handlers.CGIHandler().run(application)

if __name__ == '__main__':
    main()

同じく~/gae/pbの直下にapp.yamlを作成。

application: hello

version: 1

runtime: python

api_version: 1

handlers:

- url: /.*
  script: pb.py

これで準備完了。~/gae/pb/data/entriesの下に適当に書いたエントリのファイルを置いて起動。

$ dev_appserver.py ~/gae/pb  
INFO     2008-05-11 05:55:30,453 appcfg.py] Checking for updates to the SDK.
WARNING  2008-05-11 05:55:30,949 datastore_file_stub.py] Could not read datastore data from /tmp/dev_appserver.datastore
WARNING  2008-05-11 05:55:30,949 datastore_file_stub.py] Could not read datastore data from /tmp/dev_appserver.datastore.history
INFO     2008-05-11 05:55:30,954 dev_appserver_main.py] Running application hello on port 8080: http://localhost:8080

よし、ブラウザからアクセス!するとエラーが出る…。

...snip...
 /home/jun-g/gae/pb/Pyblosxom/tools.py in ()
 1282     __overlapped = pywintypes.OVERLAPPED()
 1283 elif os.name == 'posix':
 1284     import fcntl
 1285     LOCK_EX = fcntl.LOCK_EX
 1286     LOCK_SH = fcntl.LOCK_SH
fcntl undefined

: No module named fcntl
      args = ('No module named fcntl',)
      message = 'No module named fcntl'

fcntlというモジュールが使えないみたいなので、tools.pyを適当に書き換えてfcntlを使わないようにしてみる。

$ diff -u tools.py.orig tools.py
--- tools.py.orig	2008-05-11 05:59:14.000000000 +0900
+++ tools.py	2008-05-11 06:00:06.000000000 +0900
@@ -1281,10 +1281,9 @@
     # is there any reason not to reuse the following structure?
     __overlapped = pywintypes.OVERLAPPED()
 elif os.name == 'posix':
-    import fcntl
-    LOCK_EX = fcntl.LOCK_EX
-    LOCK_SH = fcntl.LOCK_SH
-    LOCK_NB = fcntl.LOCK_NB
+    LOCK_EX = None
+    LOCK_SH = None
+    LOCK_NB = None
 else:
     raise RuntimeError("PortaLocker only defined for nt and posix platforms")
 
@@ -1299,10 +1298,10 @@
 
 elif os.name =='posix':
     def lock(f, flags):
-        fcntl.flock(f.fileno(), flags)
+        pass
 
     def unlock(f):
-        fcntl.flock(f.fileno(), fcntl.LOCK_UN)
+        pass
 
 # END portalocking block from Python Cookbook.
 # %<-------------------------

でもってブラウザからアクセスすると、

PyBlosxom on Google App Engine SDK

動いた!という事で、今日はここまで。

posted by jun-g at 06:20
[ tags: , | Permalink | 1 Comments/TBs ]

Mon, 11 Feb 2008

コメントスパム

ここのPyBlosxomにはコメントスパム対策として、contribパッケージに含まれているcheck_javascriptプラグインを使用しているんやけど、ここ数日、その仕組みを回避してスパムコメントが投稿されるようになった。面倒だったので放置してたけど、あまり溜めると後で消す作業の方がもっと面倒になりそうだったので、10数件溜まったところでスパムコメントを削除した。

このまま放置するとまたスパムコメントを投稿されそうなので、check_javascriptプラグインに、「http://」という文字列が3つ以上含まれるならリジェクトする、といういいかげんな処理を追加した。しばらくはこれでごまかせるはず。

posted by jun-g at 01:19
[ tags: | Permalink | 0 Comments/TBs ]

Tue, 11 Dec 2007

PyBlosxomではてなスターを使うプラグイン

超今更って感じやけど、PyBlosxomではてなスターを使う為のプラグインを作った。

ダウンロードはこちらからどうぞ。→ hatenastar.py

使い方。

まずはてなスターに自分のブログを登録してトークンを入手する。必要なのはトークンの文字列だけで、JavaScriptタグは不要。

次にconfig.pyでプラグインをロードするように設定し、

py["hatenastar_token"] = "入手したトークン"

の設定を追加する。

次にFlavourの編集。head.htmlのHEADタグ内に「$hatenastar_header」を追加し、story.htmlの星を表示したい部分に「$hatenastar_star」を、コメントアイコンを表示したい部分に「$hatenastar_comment」を追加する。

以上。

次に既知の問題。表示するエントリの内容を自前でゴリゴリJSONに変換してJavaScriptタグ内に吐き出しているだけなので、エントリ名にシングルクォーテーションが入ってるとJavaScriptでエラーになるはず。でもって、ほとんどテストしてないので他にも不具合あるかも。需要ないから誰も使わないし誰も直してくれないと思ってるので、そのうち自分で直したりキレイにしたりする予定。

需要ないけど一応「その他の参考情報 - はてなスター日記」に載せて欲しいのでトラックバック送っとくか。

posted by jun-g at 06:52
[ tags: , | Permalink | 0 Comments/TBs ]

Page 0 of 4  >>