Another PIM Data Exporter
My little SMS Exporter utility app has probably been downloaded quite a few times by virtue of it having been available for many years. Now it's time to introduce another PIM data exporter application: Anyxporter. This new application is capable of exporting contact data, and supports both MeeGo Harmattan and (some versions of) Symbian.
One of the shortcomings of SMS Exporter is that its export data format is not as machine readable as it could be. This has been fixed in Anyxporter, which exports as XML by default, and also allows for customization of the export format.
A different export format can be defined in Lua. This must be done in a single Lua file that defines the globals preamble_string
, postamble_string
, and entry_to_string
; see the default export format definition for an example.
The user interface is even more primitive than that of SMS Exporter:
- The Symbian variant comes with an icon to allow for launching the application, and it also opens up a console for displaying any completion status message(s). That's it. The output goes into a file named “c:\anyxporter_output”. To use a custom export format, put a Lua file named “format_data.lua” (defining the export format) onto the root of any drive.
- The Harmattan version does not have even that much. You require a separate console application (or some other mechanism) for running the program; the program to run is “/opt/anyxporter/bin/anyxporter”. The output goes into a file named “outfile” in the current working directory. A custom export format may be defined in a file named “format_data.lua”, also in the current working directory.
The implementation is fairly inefficient, so expect the program to take some time to run if you have more than a few contacts.
The XML output is not particularly readable. It is not nicely formatted, nor are the entries sorted (by name, or anything else) by the application. To make the output more pleasant to read, you'd probably want to sort and pretty print the output text using a separate tool. Basic postprocessing should not take much effort to implement; XML processing libraries at least are widely available. In addition to being more pleasant to read, normalized, text-based, line-oriented data is also amenable to tracking changes using common version-control tools such as Git.
A post-processing script written in Racket, for instance, might be something like the following:
Both Harmattan and Symbian installers for Anyxporter version 0.01 are available for download on GitHub. For the software to run you require compatible versions of both Qt and Qt Mobility libraries; I don't know exactly which versions are compatible, but at least Qt 4.7.4 and Qt Mobility 1.2.1 would appear to be fine.