Attachments you submit will be routed for moderation. If you have an account, please
log in first.
Ticket #1215: 0001-add-filesize-to-returned-metadata.patch
|
File 0001-add-filesize-to-returned-metadata.patch, 2.9 KB
(added by sascha_silbe, 4 years ago)
|
|
sugar-datastore: add 'filesize' property to metadata returned by API calls
|
-
From 6745aabf9aef557a157c2f7e3c8ba294c05d081d Mon Sep 17 00:00:00 2001
From: Sascha Silbe <sascha@silbe.org>
Date: Mon, 24 Aug 2009 16:48:43 +0200
Subject: [PATCH] add filesize to returned metadata
---
src/carquinyol/datastore.py | 20 ++++++++++----------
src/carquinyol/filestore.py | 7 +++++++
2 files changed, 17 insertions(+), 10 deletions(-)
diff --git a/src/carquinyol/datastore.py b/src/carquinyol/datastore.py
index dc2e167..21de309 100644
|
a
|
b
|
|
| 26 | 26 | import gobject |
| 27 | 27 | |
| 28 | 28 | from sugar import mime |
| | 29 | from sugar.logger import trace |
| 29 | 30 | |
| 30 | 31 | from carquinyol import layoutmanager |
| 31 | 32 | from carquinyol import migration |
| … |
… |
|
| 225 | 226 | |
| 226 | 227 | return self._find_all(query, properties) |
| 227 | 228 | |
| 228 | | metadata = self._metadata_store.retrieve(uid, properties) |
| 229 | | entries.append(metadata) |
| | 229 | entries.append(self._get_metadata(uid, properties)) |
| 230 | 230 | |
| 231 | 231 | logger.debug('find(): %r', time.time() - t) |
| 232 | 232 | |
| … |
… |
|
| 240 | 240 | limit = query.get('limit', MAX_QUERY_LIMIT) |
| 241 | 241 | uids = uids[offset:offset + limit] |
| 242 | 242 | |
| 243 | | entries = [] |
| 244 | | for uid in uids: |
| 245 | | metadata = self._metadata_store.retrieve(uid, properties) |
| 246 | | entries.append(metadata) |
| 247 | | |
| | 243 | entries = [self._get_metadata(uid, properties) for uid in uids] |
| 248 | 244 | return entries, count |
| 249 | 245 | |
| | 246 | def _get_metadata(self, uid, properties): |
| | 247 | metadata = self._metadata_store.retrieve(uid, properties) |
| | 248 | metadata['filesize'] = self._file_store.get_file_size(uid) |
| | 249 | return metadata |
| | 250 | |
| 250 | 251 | @dbus.service.method(DS_DBUS_INTERFACE, |
| 251 | 252 | in_signature='s', |
| 252 | 253 | out_signature='s', |
| … |
… |
|
| 266 | 267 | @dbus.service.method(DS_DBUS_INTERFACE, |
| 267 | 268 | in_signature='s', |
| 268 | 269 | out_signature='a{sv}') |
| | 270 | @trace(logger=logger) |
| 269 | 271 | def get_properties(self, uid): |
| 270 | | logging.debug('datastore.get_properties %r', uid) |
| 271 | | metadata = self._metadata_store.retrieve(uid) |
| 272 | | return metadata |
| | 272 | return self._get_metadata(uid, []) |
| 273 | 273 | |
| 274 | 274 | @dbus.service.method(DS_DBUS_INTERFACE, |
| 275 | 275 | in_signature='sa{sv}', |
-
diff --git a/src/carquinyol/filestore.py b/src/carquinyol/filestore.py
index 71d6344..baa0e28 100644
|
a
|
b
|
|
| 146 | 146 | def get_file_path(self, uid): |
| 147 | 147 | return layoutmanager.get_instance().get_data_path(uid) |
| 148 | 148 | |
| | 149 | def get_file_size(self, uid): |
| | 150 | file_path = layoutmanager.get_instance().get_data_path(uid) |
| | 151 | if not os.path.exists(file_path): |
| | 152 | return 0 |
| | 153 | |
| | 154 | return os.stat(file_path).st_size |
| | 155 | |
| 149 | 156 | def delete(self, uid): |
| 150 | 157 | """Remove the file associated to a given entry. |
| 151 | 158 | |
Download in other formats: