PyBlosxom-1.5-rc2に入れ替え
posted by jun-g at Sun, 17 Oct 2010 17:01 JST
8月頃にrc2がリリースされていた事に今頃気付いたので、入れ替えてみた。何が変わったのかは追っかけてない。
ついでにflavourを少しいじって最近ようやく流行ってきたfacebookの「いいね!」ボタンを付けてみた。最近どのサイト見てもこのボタンついてるなー。
posted by jun-g at Sun, 17 Oct 2010 17:01 JST
8月頃にrc2がリリースされていた事に今頃気付いたので、入れ替えてみた。何が変わったのかは追っかけてない。
ついでにflavourを少しいじって最近ようやく流行ってきたfacebookの「いいね!」ボタンを付けてみた。最近どのサイト見てもこのボタンついてるなー。
posted by jun-g at Wed, 09 Jun 2010 22:00 JST
ずーっと前から連日コメントスパムの攻撃に合ったりentrycacheが動かなくなったりしながらもごまかして使ってたけど、今年の初めに1.5-rc1がリリースされてから手元でダラダラ動作確認してたのがようやく完了したので入れ替えた。
デザイン変えたり新しいプラグイン入れたり自作プラグインを書き直したりまだ色々したいけど、それはまた今度。
…今気づいたけど、タグで絞って表示してる時にrecent entriesが表示できてないな…。
posted by jun-g at Sun, 06 Jul 2008 03:24 JST
前からこのブログにページャが付いていない事が気になっていたので、今更ながらページャのプラグインを使うようにした。追加したプラグインはwbgpager。
最初、エラーも出ないのにページャが全然表示されず、ちょっとハマった。使用しているPyBlosxomのバージョンが古いせいかな、と思い、一つ前のバージョン(2007-11-30)のwbgpagerを使ってみると、ようやく動くようになった。
最近ブログを放置しすぎている気がするので、久々に色々手入れしようかな。
posted by jun-g at Sun, 11 May 2008 06:20 JST
遅まきながら、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.
# %<-------------------------
でもってブラウザからアクセスすると、
動いた!という事で、今日はここまで。
posted by jun-g at Mon, 11 Feb 2008 01:19 JST
ここのPyBlosxomにはコメントスパム対策として、contribパッケージに含まれているcheck_javascriptプラグインを使用しているんやけど、ここ数日、その仕組みを回避してスパムコメントが投稿されるようになった。面倒だったので放置してたけど、あまり溜めると後で消す作業の方がもっと面倒になりそうだったので、10数件溜まったところでスパムコメントを削除した。
このまま放置するとまたスパムコメントを投稿されそうなので、check_javascriptプラグインに、「http://」という文字列が3つ以上含まれるならリジェクトする、といういいかげんな処理を追加した。しばらくはこれでごまかせるはず。