Here is another fix for the XML files handling in xml_parser.py and a fix for the videoitem.py (self.menuw_visible was not initialized in some cases, and freevo crashed).
Matthieu -- (~._.~) Matthieu Weber - Université de Jyväskylä (~._.~) ( ? ) email : [EMAIL PROTECTED] ( ? ) ()- -() public key id : 452AE0AD ()- -() (_)-(_) "Humor ist, wenn man trotzdem lacht (Germain Muller)" (_)-(_)
--- ./src/video/videoitem.py.orig Wed Mar 12 23:14:21 2003 +++ ./src/video/videoitem.py Wed Mar 12 23:17:06 2003 @@ -223,6 +223,9 @@ """ self.parent.current_item = self + self.menuw = menuw + self.menuw_visible = menuw.visible + if self.subitems: self.current_subitem = self.subitems[0] self.current_subitem.play(arg, menuw) @@ -291,9 +294,6 @@ if self.deinterlace: mplayer_options += ' -vop pp=fd' - - self.menuw = menuw - self.menuw_visible = menuw.visible if menuw.visible: menuw.hide() --- ./src/video/xml_parser.py.orig Sat Mar 8 23:47:25 2003 +++ ./src/video/xml_parser.py Sun Mar 9 11:32:20 2003 @@ -226,7 +226,7 @@ p['subtitle']['media-id'] = part_child.attrs[('',"media-id")].encode('ascii') except KeyError: pass - p['subtitle']['file'] = part_child.textof().encode('ascii') + p['subtitle']['file'] = part_child.textof().encode('latin-1') elif part_child.name == u'audio': p['audio']['media-id'] = None try: @@ -285,6 +285,8 @@ subitem.audio_file = part['audio'] subitem.mplayer_options = variant['mplayer-options'] if video['items'][part_ref]['mplayer-options']: + if not subitem.mplayer_options: + subitem.mplayer_options = "" subitem.mplayer_options += " " + video['items'][part_ref]['mplayer-options'] vitem.subitems += [ subitem ] @@ -299,6 +301,8 @@ vitem.audio_file = variant['parts'][0]['audio'] vitem.mplayer_options = variant['mplayer-options'] if video['items'][part_ref]['mplayer-options']: + if not vitem.mplayer_options: + vitem.mplayer_options = "" vitem.mplayer_options += " " + video['items'][part_ref]['mplayer-options'] else: if len(video['items-list']) > 1: @@ -370,7 +374,7 @@ disc_set['info'] = {} try: - disc_set['title'] = freevo_child.attrs[('', "title")] + disc_set['title'] = freevo_child.attrs[('', "title")].encode('latin-1') except KeyError: pass @@ -389,7 +393,7 @@ disc['l_re'] = None try: - disc['l_re'] = disc_set_child.attrs[('', "l_re")] + disc['l_re'] = disc_set_child.attrs[('', "label-regexp")] except KeyError: if label_required == 1: continue @@ -415,7 +419,8 @@ if disc['l_re']: dsitem.rom_label += [ disc['l_re'] ] for disc in disc_set['disc']: - dsitem.rom_id += [ disc['media-id'] ] + if disc['media-id']: + dsitem.rom_id += [ disc['media-id'] ] movies += [ dsitem ] elif freevo_child.name == 'movie': @@ -455,10 +460,15 @@ if filename.find('://') == -1 and not video['items'][p]['media-id']: video['items'][p]['data'] = os.path.join(dir, filename) for i in range(len(duplicate_check)): - if (unicode(duplicate_check[i], 'latin1', 'ignore') == \ - os.path.join(dir, filename)): - del duplicate_check[i] - break + try: + if (unicode(duplicate_check[i], 'latin1', 'ignore') == \ + os.path.join(dir, filename)): + del duplicate_check[i] + break + except: + if duplicate_check[i] == os.path.join(dir, filename): + del duplicate_check[i] + break mitem = None if variants: