Skip to content

Instantly share code, notes, and snippets.

@aqzlpm11
Created February 25, 2021 05:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save aqzlpm11/132cd5596dc1ebcdf17d1cd57f4031e1 to your computer and use it in GitHub Desktop.
Save aqzlpm11/132cd5596dc1ebcdf17d1cd57f4031e1 to your computer and use it in GitHub Desktop.
批量清除zotero中extra字段(当前清除包含citations的行)
// Reference: https://forums.zotero.org/discussion/82558/rdf-extra-field
var fieldName = "extra";
var fieldID = Zotero.ItemFields.getID(fieldName);
var s = new Zotero.Search();
s.libraryID = Zotero.Libraries.userLibraryID;
s.addCondition(fieldName, 'contains', ': ');
s.addCondition('joinMode', 'any');
var ids = await s.search();
if (!ids.length) {
return "No items found";
}
//message = ""
await Zotero.DB.executeTransaction(async function () {
for (let id of ids) {
let item = await Zotero.Items.getAsync(id);
let mappedFieldID = Zotero.ItemFields.getFieldIDFromTypeAndBase(item.itemTypeID, fieldName);
var oldValue = item.getField(mappedFieldID ? mappedFieldID : fieldID)
var newValue = oldValue.replace(/\n^.*citations.*/gm, '');
//message = message + "--------\nold:" + oldValue + "\nnew:" + newValue + "\n"
item.setField(mappedFieldID ? mappedFieldID : fieldID, newValue);
await item.save();
}
});
//return message;
return ids.length + " item(s) updated";
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment