Author: dmeyer
Date: Sat Dec  9 19:08:39 2006
New Revision: 2196

Modified:
   trunk/beacon/src/file.py
   trunk/beacon/src/item.py
   trunk/beacon/src/server/parser.py
   trunk/beacon/src/server/server.py

Log:
Add scheme to database for files that can't be played
using file://. Only tested with dvd directories on hd


Modified: trunk/beacon/src/file.py
==============================================================================
--- trunk/beacon/src/file.py    (original)
+++ trunk/beacon/src/file.py    Sat Dec  9 19:08:39 2006
@@ -93,6 +93,10 @@
             raise ValueError('unable to create File item from %s', data)
 
         Item.__init__(self, id, 'file://' + filename, data, parent, media)
+        if self._beacon_data.get('scheme'):
+            self.url = self._beacon_data.get('scheme') + \
+                       self.url[self.url.find('://')+3:]
+        
         self._beacon_overlay = overlay
         self._beacon_isdir = isdir
         self._beacon_islink = False
@@ -209,6 +213,8 @@
         Convert object to string (usefull for debugging)
         """
         str = '<beacon.File %s' % self.filename
+        if not self.url.startswith('file://'):
+            str = '<beacon.File %s' % self.url
         if self._beacon_data.get('mtime') == None:
             str += ' (new)'
         else:

Modified: trunk/beacon/src/item.py
==============================================================================
--- trunk/beacon/src/item.py    (original)
+++ trunk/beacon/src/item.py    Sat Dec  9 19:08:39 2006
@@ -304,5 +304,7 @@
                 url = parent.url + data['name']
             else:
                 url = parent.url + '/' + data['name']
+        if data.get('scheme'):
+            url = data.get('scheme') + url[url.find('://')+3:]
     return Item((data['type'], data['id']), url, data, parent,
                 parent._beacon_media)

Modified: trunk/beacon/src/server/parser.py
==============================================================================
--- trunk/beacon/src/server/parser.py   (original)
+++ trunk/beacon/src/server/parser.py   Sat Dec  9 19:08:39 2006
@@ -120,7 +120,7 @@
         # thumbnail is valid or not.
         if check_image and item._beacon_data.get('image'):
             image = item._beacon_data.get('image')
-            if os.path.isfile(image):
+            if os.path.exists(image):
                 t = thumbnail.Thumbnail(image, item._beacon_media)
                 if not t.get(thumbnail.LARGE, check_mtime=True):
                     log.info('create missing image %s for %s', image, item)
@@ -155,6 +155,8 @@
     if metadata.get('media') == kaa.metadata.MEDIA_DISC and \
            db.object_types().has_key(metadata.get('subtype')):
         type = metadata['subtype']
+        if metadata.get('type'):
+            attributes['scheme'] = '%s://' % metadata.get('type').lower()
         item._beacon_isdir = False
     elif db.object_types().has_key(media_types.get(metadata.get('media'))):
         type = media_types.get(metadata['media'])
@@ -285,6 +287,9 @@
         if not metadata.get('type'):
             log.error('%s metadata has no type', item)
             return produced_load
+        # delete all known tracks before adding new
+        for track in db.query(parent=item):
+            db.delete_object(track)
         if not 'track_%s' % metadata.get('type').lower() in \
            db.object_types().keys():
             log.error('track_%s not in database keys', 
metadata.get('type').lower())

Modified: trunk/beacon/src/server/server.py
==============================================================================
--- trunk/beacon/src/server/server.py   (original)
+++ trunk/beacon/src/server/server.py   Sat Dec  9 19:08:39 2006
@@ -89,7 +89,8 @@
             title = (unicode, ATTR_KEYWORDS | ATTR_IGNORE_CASE),
             width = (int, ATTR_SIMPLE),
             height = (int, ATTR_SIMPLE),
-            length = (int, ATTR_SIMPLE))
+            length = (int, ATTR_SIMPLE),
+            scheme = (int, ATTR_SIMPLE))
 
         self.register_file_type_attrs("audio",
             title = (unicode, ATTR_KEYWORDS | ATTR_IGNORE_CASE),

-------------------------------------------------------------------------
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