将国外(目前为Nozbe)的数据导入RememberTheMilk
项目描述
注意:此模块已被淘汰,以支持mekk.rtm。您可以使用它导入Nozbe导出数据,但所有未来的开发都将发生在mekk.rtm中(其中也包含Nozbe导入)。
请参阅mekk.rtm文档。
mekk.rtmimport负责将数据导入RememberTheMilk。目前,它处理导入来自Nozbe的导出数据,我保留了更通用的名称,以防我在未来编写其他导入器。
先决条件
mekk.rtmimport使用RtmAPI包装库。我不得不稍作修改,0.3.2版本可能会失败。我希望我的补丁被接受,但在新版本发布之前,您必须使用我的RtmAPI分支(使用获取源链接下载.zip文件,解压后,通过python setup.py install安装)。
从Nozbe到RememberTheMilk
从Nozbe导出数据
准备Nozbe数据的.json导出。有关详细信息,请参阅mekk.nozbe,但通常您只需要
nozbetool export --user=MyNozbeName --json=mynozbedata.json
将数据导入RememberTheMilk
首先进行测试运行
rtmimport --nozbe-json=mynozbedata.json --verbose --dry-run
(它不会存储任何内容,只是打印出要执行的操作)并验证是否一切正常。
然后进行实际导入
rtmimport --nozbe-json=mynozbedata.json --verbose
(或者如果您不想跟踪进度,则可以省略–verbose,但我建议您保留它)
注意:导入可能需要一些时间。在我的大列表和不太好的网络情况下,它运行了近一个小时。
数据是如何转换的
Nozbe项目以RememberTheMilk列表的形式保存。
Nozbe上下文被转换为RememberTheMilk标签。《@》被添加到它们的名字前,并将非字母数字字符替换为短横线(例如,《My home/kitchen》变为《@My-home-kitchen》)。
下一步行动被标记为《Next》。
操作被保存为任务。名称、截止日期、重复、估算成本和完成状态都保存。
在重复的情况下,使用RTM every模式(所以Nozbe上标记为每周重复的任务,RTM将每年生成52次,无论用户是否完成)。如果您更喜欢替代方法(每次上一个完成时生成新的实例),请在导入后编辑任务,修补代码(将《every》替换为《after》),或向我请求命令行标志)。
由于注释绑定在Nozbe上的项目,并在RememberTheMilk上的任务,我通过创建名为“保存此注释”的人工任务(每个适当的项目的列表都有一个)并将注释绑定到这些任务来保存注释。这必须之后使用RTM界面处理,以确保这些任务立即标记为到期。这些任务也被标记为《Note》。
限制
仅复制主要上下文,其他上下文丢失。我不知道如何从Nozbe获取它们(如果有人知道如何修补mekk.nozbe以获取所有上下文,我可以轻松扩展此导入器以处理所有这些上下文)。
根本不复制上传。我不知道如何从Nozbe导出它们,也无法在之后处理它们(RTM没有上传)。
在RememberTheMilk上不可用操作名称格式化,所以如果您使用了如《Visit “the website”:http://google.com》之类的结构,它们将原样显示。
共享信息(=关于委派给其他用户的信息)丢失。我没有使用此功能,因此不知道底层数据看起来像什么。
某些上下文可能可以转换为位置而不是标签,但我不知道如何决定哪种方式。
问题和解决方案
如果导入过程被中断,重新运行它将产生重复任务(没有重复检查,这将非常昂贵)。解决此问题的最佳方法是打开文本编辑器中的.json文件(在备份副本之后)并简单地剪切已保存的所有操作(它们按顺序保存,因此只需定位在过程中断之前保存的最后一条操作并剪切到此操作之前的所有操作)。
源代码、错误、修补程序
项目详情
mekk.rtmimport-0.1.3.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d14868679fbe3716efb7181762ec07c6056e77d145f86eefc0673dc7cf26a91b |
|
MD5 | d48532df64e00020bd364209bc9496e1 |
|
BLAKE2b-256 | 9c9d0bbf956529c8efb069cb32fb77b130a002453ddb42d7ed93bbd66b1e6051 |