diff -Ncbr RDFSummary/RDFSummary.py RDFSummary2/RDFSummary.py *** RDFSummary/RDFSummary.py 2002-11-22 17:52:31.000000000 +0900 --- RDFSummary2/RDFSummary.py 2003-07-12 20:01:11.000000000 +0900 *************** *** 23,28 **** --- 23,35 ---- # # $Id: RDFSummary.py,v 1.29 2002/11/22 08:52:31 roug Exp $ # + convert2euc = None + try: + import kconv + convert2euc = kconv.Kconv(kconv.EUC, kconv.AUTO).convert + except ImportError: + convert2euc = None + from AccessControl import ClassSecurityInfo from DateTime import * import binascii,md5 *************** *** 140,145 **** --- 147,153 ---- 'http://slashcode.com/rss/1.0/modules/slash/ section': 'section', 'http://slashcode.com/rss/1.0/modules/slash/ comments': 'comments', 'http://slashcode.com/rss/1.0/modules/slash/ hit_parade': 'hitparade', + 'http://webns.net/mvcb/ generatorAgent': 'generatorAgent', } class RDFSummary ( *************** *** 293,303 **** --- 301,322 ---- except: raise OSError, 'Can\'t create directory %s' %_repos self._v_updatedate = DateTime() + self._p_changed = 1 p=RDFParser(self.http_proxy,self.fetchimage) p.parse_url(self.rssurl, REQUEST) # channel and at least one item is required in all supported RSS-versions if p.items != [] and p.channel != {}: + en = p.channel.get('encoding', 'utf-8') + en = string.lower(en) + if convert2euc and (en == 'utf-8' or en == 'shift_jis'): + for item in p.items: + for k in item.keys(): + item[k] = convert2euc(item[k]) + for k in p.channel.keys(): + p.channel[k] = convert2euc(p.channel[k]) + p.channel['encoding.orig'] = en + p.channel['encoding'] = 'euc-jp' self._v_textinput = p.textinput self._v_channel = p.channel self._v_image = p.image *************** *** 674,679 **** --- 693,700 ---- self.inside_channel = 0 def start_textinput(self, attrs): + if self._rssver != 91 and self.inside_channel: + return if self._rssver == 91: self.__itemsave = self.__item self.__item={} *************** *** 762,767 **** --- 783,789 ---- if not f: raise IOError, "Failure in open" self.rdfsource = f.read() + f.close() if self.rdfsource: self.feed(self.rdfsource)