Description

At the momemt PageHits fails on this wiki because of

'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)

-- ReimarBauer DateTime(2005-11-01T07:39:09Z)

Steps to reproduce

Select on this wiki PageHits

1023 # Visit pagename 
1024 self.page = Page(self, pagename) 
1025 self.page.send_page(self, count_hit=1) 
1026 
1027 # generate page footer (actions that do not want this footer 
self = <MoinMoin.request.RequestTwisted object>
 
self.page = <MoinMoin.Page.Page instance>
 
self.page.send_page = <bound method Page.send_page of <MoinMoin.Page.Page instance>>
 
count_hit undefined 

/org/moin_tw/moin-1.5/MoinMoin/Page.py in send_page (self=<MoinMoin.Page.Page instance>, request=<MoinMoin.request.RequestTwisted object>, msg='', **keywords={'count_hit': 1})

 
1209 format_args=pi_formatargs, 
1210 do_cache=do_cache, 
1211 start_line=pi_lines) 
1212 
1213 # check for pending footnotes 
start_line undefined 
pi_lines = 9
 

/org/moin_tw/moin-1.5/MoinMoin/Page.py in send_page_content (self=<MoinMoin.Page.Page instance>, request=<MoinMoin.request.RequestTwisted object>, Parser=<class MoinMoin.parser.wiki.Parser>, body=u'This page shows how often a page was requested s...ligence, every view counts as hit.\n\n[[PageHits]]\n', format_args=u'', do_cache=1, **kw={'start_line': 9})

 
1293 try: 
1294 code = self.loadCache(request) 
1295 self.execute(request, parser, code) 
1296 except 'CacheNeedsUpdate': 
1297 try: 
self = <MoinMoin.Page.Page instance>
 
self.execute = <bound method Page.execute of <MoinMoin.Page.Page instance>>
 
request = <MoinMoin.request.RequestTwisted object>
 
parser = <MoinMoin.parser.wiki.Parser instance>
 
code = <code object ? at 0x89a5820, file "PageHits", line 2>
 

/org/moin_tw/moin-1.5/MoinMoin/Page.py in execute (self=<MoinMoin.Page.Page instance>, request=<MoinMoin.request.RequestTwisted object>, parser=<MoinMoin.parser.wiki.Parser instance>, code=<code object ? at 0x89a5820, file "PageHits", line 2>)

 
1318 if hasattr(MoinMoin, '__loader__'): 
1319 __file__ = os.path.join(MoinMoin.__loader__.archive, 'dummy') 
1320 exec code 
1321 
1322 def loadCache(self, request): 
code = <code object ? at 0x89a5820, file "PageHits", line 2>
 

/srv/de.wikiwikiweb.moinmaster/bin15/PageHits in ? 


/org/moin_tw/moin-1.5/MoinMoin/formatter/base.py in macro (self=<MoinMoin.formatter.text_html.Formatter instance>, macro_obj=<MoinMoin.wikimacro.Macro instance>, name=u'PageHits', args=None)

 
279 def macro(self, macro_obj, name, args): 
280 # call the macro 
281 return macro_obj.execute(name, args) 
282 
283 def _get_bang_args(self, line): 
macro_obj = <MoinMoin.wikimacro.Macro instance>
 
macro_obj.execute = <bound method Macro.execute of <MoinMoin.wikimacro.Macro instance>>
 
name = u'PageHits'
 
args = None
 

/org/moin_tw/moin-1.5/MoinMoin/wikimacro.py in execute (self=<MoinMoin.wikimacro.Macro instance>, macro_name=u'PageHits', args=None)

 
118 else: 
119 raise ImportError("Cannot load macro %s" % macro_name) 
120 return execute(self, args) 
121 
122 def _m_lang(self, text): 
execute = <function execute>
 
self = <MoinMoin.wikimacro.Macro instance>
 
args = None
 

/org/moin_tw/moin-1.5/MoinMoin/macro/PageHits.py in execute (macro=<MoinMoin.wikimacro.Macro instance>, args=None)

 
102 return ''.join(result) 
103 
104 
105 def execute(macro, args): 
106 return PageHits(macro, args).execute() 
global PageHits = <class MoinMoin.macro.PageHits.PageHits>
 
macro = <MoinMoin.wikimacro.Macro instance>
 
args = None
 
).execute undefined 

/org/moin_tw/moin-1.5/MoinMoin/macro/PageHits.py in execute (self=<MoinMoin.macro.PageHits.PageHits instance>)

 
32 """ Execute the macro and return output """ 
33 cacheDate, hits = self.cachedHits() 
34 self.addHitsFromLog(hits, cacheDate) 
35 self.filterReadableHits(hits) 
36 hits = [(hits[pagename], pagename) for pagename in hits] 
self = <MoinMoin.macro.PageHits.PageHits instance>
 
self.addHitsFromLog = <bound method PageHits.addHitsFromLog of <MoinMoin.macro.PageHits.PageHits instance>>
 
hits = {u'!': 1, u'"': 2, u'""': 1, u'""+': 1, u'"%(backup url)s/"': 1, u'"%(link)s/"': 1, u'"/wiki/rightsidebar/img/moin-www.png/"': 16, u'"/\u7f51\u9875\u5206\u7c7b': 1, u'">MoinMoi': 4, u'"AideTemplate ["Mod\xe8leDePageD\'Aide"': 2, ...}
 
cacheDate = 1130782832000000L
 

/org/moin_tw/moin-1.5/MoinMoin/macro/PageHits.py in addHitsFromLog (self=<MoinMoin.macro.PageHits.PageHits instance>, hits={u'!': 1, u'"': 2, u'""': 1, u'""+': 1, u'"%(backup url)s/"': 1, u'"%(link)s/"': 1, u'"/wiki/rightsidebar/img/moin-www.png/"': 16, u'"/\u7f51\u9875\u5206\u7c7b': 1, u'">MoinMoi': 4, u'"AideTemplate ["Mod\xe8leDePageD\'Aide"': 2, ...}, cacheDate=1130782832000000L)

 
63 break 
64 page = event[2].get('pagename', None) 
65 page = page.decode(config.charset) 
66 if page: 
67 hits[page] = hits.get(page, 0) + 1 
page = u'\u5e2e\u52a9-\u5b8f/MailTo'
 
page.decode = <built-in method decode of unicode object>
 
global config = <module 'MoinMoin.config' from '/org/moin_tw/moin-1.5/MoinMoin/config.pyc'>
 
config.charset = 'utf-8'
 

/usr/local/lib/python2.4/encodings/utf_8.py in decode (input=u'\u5e2e\u52a9-\u5b8f/MailTo', errors='strict')

 
14 
15 def decode(input, errors='strict'): 
16 return codecs.utf_8_decode(input, errors, True) 
17 
18 class StreamWriter(codecs.StreamWriter): 
global codecs = <module 'codecs' from '/usr/local/lib/python2.4/codecs.pyc'>
 
codecs.utf_8_decode = <built-in function utf_8_decode>
 
input = u'\u5e2e\u52a9-\u5b8f/MailTo'
 
errors = 'strict'
 
builtin True = True
 

UnicodeEncodeError

 

'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)

 
args = ('ascii', u'\u5e2e\u52a9-\u5b8f/MailTo', 0, 2, 'ordinal not in range(128)')
 
encoding = 'ascii'
 
end = 2
 
object = u'\u5e2e\u52a9-\u5b8f/MailTo'
 
reason = 'ordinal not in range(128)'
 
start = 0

Details

This Wiki

Workaround

Discussion

Plan


CategoryMoinMoinBugFixed

MoinMoin: MoinMoinBugs/PageHitsFails (last edited 2007-10-29 19:12:00 by localhost)