Package: mekk.rtmimport
Note: this module has been phased out in favor of mekk.rtm. You can use it to import Nozbe export but all future development will take place in mekk.rtm (and Nozbe import is also present there).Seemekk.rtmdocumentation.mekk.rtmimporthandles importing data to RememberTheMilk. At the
moment it handles importing data exported fromNozbe, I keep more
generic name in case I write other importers in the future.Prerequisitiesmekk.rtmimportusesRtmAPIwrapper library. I had to patch it
a bit and 0.3.2 is likely to fail. I hope to have my patches accepted
but until newer version is released, one must usemy RtmAPI fork(use get source link to download.zipfile, unpack it, install
bypython setup.py install).From Nozbe to RememberTheMilkExporting the data from NozbePrepare.jsonexport ofNozbedata. For details seemekk.nozbebut usually you just want to:nozbetool export --user=MyNozbeName --json=mynozbedata.jsonImporting data to RememberTheMilkFirst make a test run:rtmimport --nozbe-json=mynozbedata.json --verbose --dry-run(it does not store anything, just prints what it is to do) and verify
whether everything seems correct.Then make actual import:rtmimport --nozbe-json=mynozbedata.json --verbose(or omit–verboseif you don’t want to track progress, but I
recommend you keep it)Note: import can take some time. In case of my big list over
not-so-good network it has been running for almost an hour.How the data is convertedNozbe projects are saved as RememberTheMilk lists.Nozbe contexts are converted to RememberTheMilk tags.@is prepended
to their names and non-alphanumeric characters are replaced with
dashes (so for exampleMy home/kitchenbecomes@My-home-kitchen).Next actions are tagged asNext.Actions are saved as tasks. Name, due date, recurrence,
estimated cost and completion status are all saved.In case of recurrence, RTMeverymode is used (so the task marked
on Nozbe as recurring every week will be spawned 52 times a year by
RTM, whether user completes it, or not). If you prefer alternative way
(spawning new incarnation whenever previous is completed), edit tasks
after import, patch the code (and replaceeverywithafter), or
ask me for a commandline flag).As notes are bound to projects on Nozbe, and to tasks on
RememberTheMilk, I save notes by creating artificial tasks named “Save
this note” (one per every list for which appropriate project had notes)
and binding notes to those tasks. This must be handled afterwards
using RTM interface, to make sure it happens I mark those tasks as due
immediately. Those task are also tagged asNote.LimitationsOnly main context is copied, additional contexts are lost. I don’t know
how to grab them fromNozbe(in case somebody knows how to patchmekk.nozbeto grab all contexts, I can extend this importer easily
to handle them all).Uploads are not copied at all. I neither now how to export them from
Nozbe, nor how could I handle them afterwards (RTM has no uploads).Action name formatting is not available on RememberTheMilk, so if you
used constructs likeVisit “the website”:http://google.com, they will
show up as is.Sharing information (= information about delegations to other users)
is lost. I haven’t used this feature so I don’t know how do the
underlying data look like.Some contexts could probably be converted to locations, not tags, but
I don’t have an idea how to decide which way to go.Problems and workaroundsIf import process is interrupted, re-running it would make duplicate
tasks (there is no duplicate checking, it would be costly). The best
way to resolve it is to open .json file in text editor (after making a
backup copy of it) and simply cut all actions which are already saved
(they are saved in order, so it is just a matter of locating the last
action saved before the process was interrupted and cutting all actions
up to this one).Source, bugs, patchesDevelopmentis tracked on BitBucket.