在Zotero界面中右键删除条目后,如何通过API恢复Item?
场景:Zotero Sync Vault中,从百度网盘下载附件,发现对应的Item是被删除状态,如何处理?
当前Sync Vault的处理方式是:忽略该文件。既然当前客户端都删除了,为什么要恢复呢?后续如果要恢复,也可以按照本文的方法处理。
恢复方法:
通过检查Zotero.sqlite可知,zotero中有一张deletedItems表,该表中记录了当前被删除的Item。通过Zotero的search接口获取Item时默认会过滤被删除的Item,如果要恢复,只需要将对应的Item从该表中删除即可。
await Zotero.DB.executeTransaction(async function () {
// 从deletedItems表中删除记录
await Zotero.DB.queryAsync(
"DELETE FROM deletedItems WHERE itemID = ?",
[oldItem.id]
);
});
处理了Item的状态之后,在调用一下Zotero.Notifier.trigger('modify', 'item', oldItem.id);触发Zotero界面刷新,就可以看到恢复的Item了。
Zotero Sync Vault内测进行中,扫描下方二维码进入:
