|
COREBlog
ピースな愛のバイブスでポジティブなCOREBlogを使ってみよう。
本家 メーリングリスト がありますから、ここは夢の話でもいたしましょう。あくまでブログは話のベース環境です。
-
98
owa
2006/05/12 22:29
id: mJs8kxp1Zus
prob: 0.2%
-
-
まったくの勘違いかもしれないけど
1. 最初から title が unicode 型になってる。もしくは str 型と混在してる。
2. 結果的に container.insert_ping(title=title,... の呼び出しまで unicode 型のまま
とすれば、外部メソッド:to_utf8 を以下のように書き換えれば良いかも
import kconv
def to_utf8(src)
try:
if type(src) is unicode:
return src.encode('utf-8')
return kconv.convert(src,kconv.UTF8)
except:
return src
ただ今日は頭が惚けてるので、単なる思い込みかもしれません。
-
97
Papasan
2006/05/12 22:11
id: zba5hfhfOqU
prob: 0.5%
-
-
allow_module、あっ思い出しました、昔、使ったことがありましたあ。
-
96
owa
2006/05/12 22:05
id: mJs8kxp1Zus
prob: 1.8%
-
-
>>16 allow_module
すいません外部メソッドの時は必要ありません。PythonScript で使う場合です。
あわてて消したが間に合わず;; 取り急ぎ...
-
95
Papasan
2006/05/12 21:39
id: zba5hfhfOqU
prob: 0.2%
-
-
> allow_module するのを忘れてませんよね?
allow_module?・・・うっ、やってません(汗。
owaさんのお宝の山より、python-kconv-1.1.8p3-uvl1.i386.rpmをダウンロードしてきて、
# rpm -Uvh python-kconv-1.1.8p3-uvl1.i386.rpm
とインストールしただけです。
-
94
owa
2006/05/12 21:05
id: mJs8kxp1Zus
prob: 1.3%
-
-
>> TypeError: argument 1 must be str, not unicode
insert_ping の呼び出しでエラーになるのですよね。
第一引数が unicode 型で渡されて来たと云う意味だろうけど、なんで?
ascii でも utf-8 でも str 型になっていればこういうエラーは出ないはず。
変ですネー;;
container.insert_ping(title=title.encode('utf-8'), ...
としてもエラーになりますか?
その前に title = container.to_utf-8(title) ちゃんと通ってるし、理由が解からんけど・・・
# 例外エラーで素通りしてきたのかも
-
93
Papasan
2006/05/12 19:36
id: zba5hfhfOqU
prob: 1.3%
-
-
> kconv は判定に使って、変換は python の機能使ってるのですよね。
いいえ(汗。問題はこのへんにありそうですね。
・ データベース(postgresql-8.1.3)に更新PINGの情報(ブログ名やユーザエージェント名)を書き込もうとすると次のエラーが発生します。
「TypeError: argument 1 must be str, not unicode」
・ $ psql -l ping と打ち込むと、EncodingはUTF8となっています。
・ ブログ名の変換は、PythonScript(Zope内の)で次のように行っています。
title = container.to_utf8(title) <-- ブログ名(title)を外部メソッド(to_utf8)にてUTF8に変換
# USER AGENT
agent = "Unknown"
try:
agent = context.REQUEST["HTTP_USER_AGENT"]
except:
pass
# Insert ping
r = container.insert_ping(title=title,url=url,useragent=agent)
return {"message":"Thanks :(^-^)."}
外部メソッド:to_utf8
import kconv
def to_utf8(src)
try:
return kconv.convert(src,kconv.UTF8)
except:
return src
・ データベースクラスタを作成したとき次のように指定しました。
$ initdb --encoding=UTF8
・ テーブルの作成でブログ名は次のように指定しました。
postgres=# create table pingupdate (
(# blogtitle text,
途中省略
(# );
お気付きの点がありましたら、宣しく御指南くださいませ(汗。
-
92
Papasan
2006/05/12 00:19
id: zba5hfhfOqU
prob: 0.1%
-
-
owaさん、色々テストして頂いて恐縮です。
23:52頃のCOREBlog 1.2.2(Rev.1.17)による更新PINGは正常に受信できました。が、データベースに書き込むときにブログのタイトル名がUTF8じゃないとオコラレテしまいました(多分?、"象歩")。
(kconvで変換しているはずなのですが(汗))
xmlrpclib.pyから直接受けた更新PINGはブログタイトルがtestでしたのでOKとなってます。
-
91
owa
2006/05/12 00:10
id: mJs8kxp1Zus
prob: 0.0%
-
-
>>11 URLが、"http://papasan.org:8080/RPC2" となってました
コンソールから試してみました
>>> from xmlrpclib import Server
>>> svr = Server('http://papasan.org:8080/')
>>> resp = svr.weblogUpdates.ping('test','http://owa.as.wakwak.ne.jp/zope/coreblog/161')
>>> resp
{'message': 'Thanks :(^-^).'}
でうまくいったようですが、
http://papasan.org:8080/weblogUpdates/
ブログからはまだうまく行かないようです。
が、すいません今日は寝ます...zzz
-
90
Papasan
2006/05/11 22:34
id: zba5hfhfOqU
prob: 0.3%
-
-
owaさん、こんばんは。
更新PINGの送出、ありがとうございます。
残念ながらURLが、"http://papasan.org:8080/RPC2" となってましたので処理されませんでした。
もし、よろしければ "http://papasan.org:8080/" でお願いします。
感謝!!
-
89
owa
2006/05/07 22:48
id: mJs8kxp1Zus
prob: 8.4%
-
-
なんのお構いもできませんで;;
PING くらいなら何時でも打てます。
今打ったら残念ながらタイムアウトが返ってきました。
|
|