Author: duncan
Date: Tue Mar 27 19:48:47 2007
New Revision: 9399

Modified:
   branches/rel-1/freevo/src/audio/__init__.py
   branches/rel-1/freevo/src/directory.py
   branches/rel-1/freevo/src/util/mediainfo.py

Log:
[ 1687649 ] front.jpg won't show on audio items
Some fixes applied.


Modified: branches/rel-1/freevo/src/audio/__init__.py
==============================================================================
--- branches/rel-1/freevo/src/audio/__init__.py (original)
+++ branches/rel-1/freevo/src/audio/__init__.py Tue Mar 27 19:48:47 2007
@@ -85,14 +85,14 @@
         """
         set informations for a diritem based on the content, etc.
         """
-        if not diritem.image and os.path.exists(diritem.dir):
+        if os.path.exists(diritem.dir):
             timestamp = os.stat(diritem.dir)[stat.ST_MTIME]
             if not diritem['coversearch_timestamp'] or \
                    timestamp > diritem['coversearch_timestamp']:
                 # Pick an image if it is the only image in this dir, or it 
matches
                 # the configurable regexp
                 files = util.find_matches(vfs.listdir(diritem.dir, 
include_overlay=True),
-                                          ('jpg', 'gif', 'png' ))
+                                          ('jpg', 'gif', 'png'))
                 if len(files) == 1:
                     diritem.image = os.path.join(diritem.dir, files[0])
                 elif len(files) > 1:
@@ -101,7 +101,7 @@
                         diritem.image = os.path.join(diritem.dir, covers[0])
                 diritem.store_info('coversearch_timestamp', timestamp)
                 diritem.store_info('coversearch_result', diritem.image)
-            else:
+            elif not diritem['coversearch_result']:
                 diritem.image = diritem['coversearch_result']
                 
         if not diritem.info.has_key('title') and diritem.parent:

Modified: branches/rel-1/freevo/src/directory.py
==============================================================================
--- branches/rel-1/freevo/src/directory.py      (original)
+++ branches/rel-1/freevo/src/directory.py      Tue Mar 27 19:48:47 2007
@@ -35,6 +35,8 @@
 import stat
 import copy
 import rc
+from pprint import pformat
+
 import util.mediainfo as mediainfo
 import kaa.metadata as mmpython
 
@@ -101,7 +103,7 @@
         self.autovars = [ ('num_dir_items', 0), ('show_all_items', False) ]
         Playlist.__init__(self, parent=parent, display_type=display_type)
         self.type = 'dir'
-        self.menu  = None
+        self.menu = None
 
         # store FileInformation for moving/copying
         self.files = FileInformation()
@@ -112,19 +114,25 @@
         self.dir  = os.path.abspath(directory)
         self.info = mediainfo.get_dir(directory)
 
-        mminfo = mmpython.parse(directory)
+        #FIXME This should be done in the cache create
+        if not self.image:
+            mminfo = mmpython.parse(directory)
+            if mminfo['image']:
+                self.image = mminfo['image']
+            if mminfo['title']:
+                self.title = mminfo['title']
+            if mminfo['comment']:
+                self.comment = mminfo['comment']
 
         if name:
             self.name = Unicode(name)
         elif self.info['title:filename']:
             self.name = self.info['title:filename']
-        elif mminfo['title']:
-            self.name = mminfo['title']
+        elif self.info['title']:
+            self.name = self.info['title']
         else:
             self.name = util.getname(directory, skip_ext=False)
             
-        self.comment = mminfo['comment']
-
         if add_args == None and hasattr(parent, 'add_args'): 
             add_args = parent.add_args
 
@@ -164,13 +172,14 @@
         self.modified_vars = []
 
         # Check for a cover in current dir
-        if mminfo['image']:
-            image = mminfo['image']
-        else:
-            image = util.getimage(os.path.join(directory, 'cover'))
+        image = util.getimage(os.path.join(directory, 'cover'))
+        if self.info['image']:
+            image = self.info['image']
         if image:
             self.image = image
             self.files.image = image
+
+        # Check for a folder.fxd in current dir
         self.folder_fxd = directory+'/folder.fxd'
         if vfs.isfile(self.folder_fxd):
             self.set_fxd_file(self.folder_fxd)
@@ -188,19 +197,15 @@
 
 
     def __str__(self):
-        s = '\ndirectory:DirItem:s:'
-        s += ' name=%r' % self.name
-        s += ' dir=%r' % self.dir
-        s += ' info=%r' % self.info
-        #s += ' __dict__=%r' % self.__dict__
+        s = pformat(self, depth=2)
         return s
 
 
     def __repr__(self):
-        s = '\ndirectory:DirItem:r:'
-        s += ' name=%r' % self.name
-        s += ' dir=%r' % self.dir
-        s += ' info=%r' % self.info
+        if hasattr(self, 'name'):
+            s = '<%s: %r>' % (self.name, self.__class__)
+        else:
+            s = '<%r>' % (self.__class__)
         return s
 
 
@@ -371,7 +376,7 @@
         """
         create some metainfo for the directory
         """
-        display_type   = self.display_type
+        display_type = self.display_type
 
         if self.display_type == 'tv':
             display_type = 'video'
@@ -387,7 +392,7 @@
                                ( 'num_%s_items' % name, 0 ) ]
             
         try:
-            timestamp     = os.stat(self.dir)[stat.ST_MTIME]
+            timestamp = os.stat(self.dir)[stat.ST_MTIME]
         except OSError:
             return
         

Modified: branches/rel-1/freevo/src/util/mediainfo.py
==============================================================================
--- branches/rel-1/freevo/src/util/mediainfo.py (original)
+++ branches/rel-1/freevo/src/util/mediainfo.py Tue Mar 27 19:48:47 2007
@@ -35,6 +35,7 @@
 from pprint import pformat
 
 import kaa.metadata as mmpython
+import kaa.metadata
 
 import config
 import util
@@ -264,7 +265,7 @@
         self.uncachable_keys = [ 'thumbnail', 'url' ]
 
 
-    def simplify(self, object):
+    def simplify(self, object, debug=0):
         """
         kaa metadata has huge objects to cache, we don't need them.
         This function simplifies them to be only string, intger, dict or
@@ -274,6 +275,8 @@
         """
         ret = {}
         for k in object.keys():
+            if debug:
+                print 'object[%s] = %r' % (k, getattr(object, k))
             if not k in self.uncachable_keys and getattr(object,k) != None:
                 value = getattr(object,k)
                 if isstring(value):
@@ -281,7 +284,7 @@
                 if value:
                     ret[k] = value
 
-        for k in  ( 'video', 'audio', 'chapters', 'subtitles', 'tracks'):
+        for k in  ( 'video', 'audio', 'chapters', 'subtitles', 'tracks' ):
             # if it's an AVCORE object, also simplify video and audio
             # lists to string and it
             if hasattr(object, k) and getattr(object, k):
@@ -289,10 +292,12 @@
                 for o in getattr(object, k):
                     ret[k].append(self.simplify(o))
 
-        for k in ('mime', 'name', 'pos' ):
+        for k in ( 'mime', 'name', 'pos', 'title', 'comment', 'media', 'image' 
):
             if hasattr(object, k) and getattr(object, k) != None:
                 ret[k] = getattr(object, k)
 
+        if debug:
+            print ret
         return ret
 
 
@@ -300,13 +305,20 @@
         """
         create mmpython information about the given file
         """
+        data = os.path.split(filename)
+        if len(data) == 2:
+            if data[1] == '.directory':
+                filename = data[0]
+
         info = mmpython.parse(filename)
+
         if info:
             thumbnail = None
             if info.has_key('thumbnail'):
                 thumbnail = info.thumbnail
 
             info = self.simplify(info)
+
             name = util.getname(filename)
             if name == name.upper() and info.has_key('type') and \
                    info['type'] in ('DVD', 'VCD'):
@@ -325,6 +337,8 @@
             elif config.CACHE_IMAGES and info.has_key('mime') and info['mime'] 
and \
                      info['mime'].startswith('image'):
                 util.cache_image(filename)
+            if info.has_key('media') and info['media'] == 'MEDIA_DIRECTORY':
+                pass
 
             return info
         return {}
@@ -418,23 +432,15 @@
 
 
     def __str__(self):
-        s = '\nutil:mediainfo:Info:s:'
-        s += ' filename=%r' % self.filename
-        s += ' disc=%r' % self.disc
-        s += ' variables=%r' % self.variables
-        s += ' mmdata=%r' % self.mmdata
-        s += ' metadata=%r' % self.metadata
-        s += ' self.__dict__=%r' % self.__dict__
+        s = pformat(self, depth=2)
         return s
 
 
     def __repr__(self):
-        s = '\nutil:mediainfo:Info:r:'
-        s += ' filename=%r' % self.filename
-        s += ' disc=%r' % self.disc
-        s += ' variables=%r' % self.variables
-        s += ' mmdata=%r' % self.mmdata
-        s += ' metadata=%r' % self.metadata
+        if hasattr(self, 'filename'):
+            s = '%s: %r' % (self.filename, self.__class__)
+        else:
+            s = '%r' % (self.__class__)
         return s
 
 

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Freevo-cvslog mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog

Reply via email to