diff options
Diffstat (limited to 'creactistore/_templates/lib/olpcfr/tools/storage.py')
-rw-r--r-- | creactistore/_templates/lib/olpcfr/tools/storage.py | 150 |
1 files changed, 0 insertions, 150 deletions
diff --git a/creactistore/_templates/lib/olpcfr/tools/storage.py b/creactistore/_templates/lib/olpcfr/tools/storage.py deleted file mode 100644 index 3e6ebbf..0000000 --- a/creactistore/_templates/lib/olpcfr/tools/storage.py +++ /dev/null @@ -1,150 +0,0 @@ -# python import -import os - -# olpcfr import -from olpcfr import BUNDLE, ROOT - - -ACTIVITY_NAMES = { - 'paint': 'org.laptop.Oficina', - 'record': 'org.laptop.RecordActivity', - } - - -def check_dir(path): - if os.path.exists(path): - pass - else: - os.mkdir(path) - - -def check_file(path): - if os.path.exists(path): - pass - else: - _f = open(path, 'wb') - _f.write('') - _f.close() - - -def get_path(path=None, bundle=True): - # .. - path = 'static' if path is None else path - # .. - if bundle is True: - return os.path.join(BUNDLE, path) - else: - return os.path.join(ROOT, path) - - -def list_dir(path=None, bundle=True): - # .. - path = get_path(path=path, bundle=bundle) - # .. - return os.listdir(path) - - -def get_sound_path(filename, path=None, bundle=True, ext=None): - # .. - path = get_path(path=path, bundle=bundle) - filename = filename if ext is None else '%s.%s' % (filename, ext) - # .. - return os.path.join(path, filename) - - -def get_sound_path(filename, path=None, bundle=True, ext='ogg'): - # .. - return get_sound_path(filename, path=path, bundle=bundle, ext=ext) - - -def get_image_path(filename, path=None, bundle=True, ext='png'): - # .. - return get_sound_path(filename, path=path, bundle=bundle, ext=ext) - - -def __do_query(query): - from sugar.datastore import datastore - # find in ds - _results, _count = datastore.find(query, sorting='timestamp') - for _r in _results: - # get meta - _m = _r.get_metadata() - if 'activity' in query: - yield _r - elif _m['activity'] == '': - yield _r - else: - continue - - -def get_journal_objects(activity_name=None, mime_type=None): - # init - _query = dict() - # prepare query name - if activity_name is None\ - and mime_type is None: - return [] - elif mime_type is None: - return __do_query({'activity': ACTIVITY_NAMES[activity_name]}) - else: - return __do_query({'mime_type': mime_type}) - - -def list_info_from_journal(activity_name=None, mime_type=None): - # get objects first - _objs = get_journal_objects(activity_name=activity_name, mime_type=mime_type) - # make unique titles - _titles = {} - # return infos - for _o in _objs: - # get meta - _m = _o.get_metadata() - # get title - _t = _m['title'] - # ensure description - _d = _m['description'] if 'description' in _m else '' - _p = _m['preview'] if 'preview' in _m else None - # little check - if _t in _titles: - # udpate reg - _titles[_t] += 1 - # update value to show - _t = '%s (%s)' % (_t, _titles[_t]) - # init title reg - else: - _titles[_t] = 1 - # ensure info - yield { - 'activity_id' : _m['activity_id'], - 'description' : _d, - 'timestamp' : _m['timestamp'], - 'preview' : _p, - 'title' : _t, - } - - -def list_files_from_journal(activity_name=None, mime_type=None): - # get objects first - _objs = get_journal_objects(activity_name=activity_name, - mime_type=mime_type) - # return paths - for _o in _objs: - # TODO open the files - yield _o.get_file_path() - - -def get_path_from_journal(timestamp, mime_type): - from sugar.datastore import datastore - # .. - _query = { - 'timestamp': int(timestamp), - 'mime_type': mime_type - } - # find in ds - _results, _count = datastore.find(_query) - # .. - if _count == 1: - # get path - return _results[0].get_file_path() - else: - return None |