编程语言
首页 > 编程语言> > python – evernote更新笔记资源

python – evernote更新笔记资源

作者:互联网

我正在使用Evernote API for Python创建一个允许用户创建和更新笔记的应用程序,但我无法理解如何有效地更新Evernote资源.这主要发生在我从HTML转换为ENML(Evernote标记语言)时,我正在从img标签创建资源(现在我只考虑图像资源).

我的问题是:如果需要更新笔记的资源,我怎么能告诉他?我已经考虑过将图像数据与所有当前资源的数据进行比较,但这似乎很慢.现在我只为每个img标签创建一个新资源.

我发现的一些有用的资源包括Evernote resources guidethis sample code in the Evernote SDK.任何建议表示赞赏.

解决方法:

最好的方法是比较文件的MD5哈希值. Evernote笔记通过MD5哈希跟踪资源.

要查看附加到Evernote注释的文件的MD5哈希值,只需查看标记为“en-media”的ENML元素,标签的形式如下所示:

 <en-media type="mime-type" hash="md5-of-file" />

其中mime-type是文件类型,md5-of-file是文件的MD5哈希.要获取注释的ENML,请调用getNote(此处为文档),并确保指定您想要的内容.注释的ENML内容是getNote(a note object)返回的对象的content属性的值.

虽然散列可能很昂贵,但MD5相对较快,计算文件的MD5散列比等待网络下载映像要快.

此外,updateResource method documentation说:

“Submit a set of changes to a resource to the service. This can be
used to update the meta-data about the resource, but cannot be used to
change the binary contents of the resource (including the length and
hash)
. These cannot be changed directly without creating a new
resource and removing the old one via updateNote.”

因此,“更新”资源的唯一方法是从注释中删除旧资源并在其位置创建一个新资源.您可以通过从相关注释的resources属性中包含的列表中删除Resource Object来删除资源.要添加新注释,只需将新资源对象添加到同一列表中.

标签:python,evernote
来源: https://codeday.me/bug/20190708/1404842.html