[Sugar-devel] Getting Journal entries off an XO at the end of a project?

Sascha Silbe silbe at activitycentral.com
Tue Jan 17 06:39:13 EST 2012


Excerpts from Christoph Derndorfer's message of 2012-01-13 19:56:51 +0100:

> (a) Have the pupils copy relevant files they want to keep to USB drives via
> the Journal or the Sugar commander Activity

> (b) Ask them to favorite things they want to keep in the Journal and then
> run a script that copies all of these entries to a USB drive or possibly
> even a network share

Given that you're still running Sugar 0.82, one of these is probably the
best option (in addition to doing a full backup, as explained in my
previous mail).

Whether the data file is usable outside of Sugar (i.e. in a standard
format) depends on each activity.

Writing a script that dumps all data files of starred entries is pretty
straightforward if you borrow some functions from jarabe.journal.model
(=> GPLv2+). You _will_ loose the metadata (description, tags, etc.) in
any case: Even when using the UI to write the files, the metadata isn't
in a format recognised by any other system.


The script would look something like this:

=== snip ===
#!/usr/bin/env python
# License: GPL version 3
import os
import shutil

from sugar import mime
from sugar.datastore import datastore


[copy get_file_name() and get_unique_file_name() from
src/jarabe/journal/model.py]


mount_point = '/media/CHERRY_TREE'
for entry in datastore.find({'keep': '1'})[0]:
    title = entry.metadata.get('title') or 'Untitled'
    mime_type = entry.metadata.get('mime_type')
    target_name = get_unique_file_name(mount_point,
                                       get_file_name(title, mime_type))
    target_path = os.path.join(mount_point, target_name)
    shutil.copyfile(entry.file_path, target_path)
    entry.destroy()

=== snip ===

Untested on Sugar 0.82. Backup/Restore access the data store directly
via D-Bus rather than through sugar.datastore.datastore, so I don't know
if the API changed in subtle ways; a quick check confirmed that all of
the functions imported (not copied) above were available in Sugar
0.82.0.

Sascha

-- 
http://sascha.silbe.org/
http://www.infra-silbe.de/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 490 bytes
Desc: not available
URL: <http://lists.sugarlabs.org/archive/sugar-devel/attachments/20120117/17c25ddf/attachment.pgp>


More information about the Sugar-devel mailing list