Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/olpc/datastore/datastore.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/olpc/datastore/datastore.py')
-rw-r--r--src/olpc/datastore/datastore.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/olpc/datastore/datastore.py b/src/olpc/datastore/datastore.py
index 8186960..6bef90c 100644
--- a/src/olpc/datastore/datastore.py
+++ b/src/olpc/datastore/datastore.py
@@ -23,6 +23,8 @@ import os
import dbus
import gobject
+from sugar import mime
+
from olpc.datastore import layoutmanager
from olpc.datastore import migration
from olpc.datastore.layoutmanager import MAX_QUERY_LIMIT
@@ -215,7 +217,14 @@ class DataStore(dbus.service.Object):
sender_keyword='sender')
def get_filename(self, uid, sender=None):
user_id = dbus.Bus().get_unix_user(sender)
- return self._file_store.retrieve(uid, user_id)
+ extension = self._get_extension(uid)
+ return self._file_store.retrieve(uid, user_id, extension)
+
+ def _get_extension(self, uid):
+ mime_type = self._metadata_store.get_property(uid, 'mime_type')
+ if mime_type is None or not mime_type:
+ return ''
+ return mime.get_primary_extension(mime_type)
@dbus.service.method(DS_DBUS_INTERFACE,
in_signature='s',