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:

Reply via email to