Zotero期刊自动匹配更新影响因子
现有的zotero插件中,找到可以支持更新影响因子青柠学术的Zotero IF,但它的代码没有公开,需要关注微信公众号才能获取免费版,免费版的影响因子更新也不是很及时;它的Pro版本功能更多,但需要收费,建议有需求的小伙伴去下载,创作不易,支持好用的原创工具。
Zotero本身为开发者提供了JavaScript API,可以直接在软件里允许JavaScript(菜单栏“工具-开发者-Run JavaScript”),利用这个功能也可以匹配影响因子。hlblade/Zotero_IF提供了一段事项影响因子匹配的功能,但原作者把影响因子列表放在了脚本中,虽然简便,但不够优雅;另外,作者也没有在第一时间更新这个列表。于是我修改了一下这个脚本 commonreed/Zotero_IF,换上了昨天(2022年6月28日)发布的最新的影响因子,如下:
var path = 'C:/Users/Administrator/Desktop/IF_2022.json'; var data = await Zotero.File.getContentsAsync(path); var impact_factors = eval("(" + data + ")"); var fieldName = "series"; var newValue = ""; var fieldID = Zotero.ItemFields.getID(fieldName); var s = new Zotero.Search(); s.libraryID = ZoteroPane.getSelectedLibraryID(); var ids = await s.search(); if (!ids.length) { return "No items found"; } 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 IF = impact_factors[item.getField('publicationTitle').toLowerCase()] item.setField(mappedFieldID ? mappedFieldID : fieldID, newValue); if (IF != undefined) { item.setField('series', IF) } await item.save(); } }); return ids.length + " item(s) IF updated, and shown in series field!";
可直接点击下载2022年6月发布的JCR影响因子json文件到本地,修改脚本中的path路径。另外,分享原始excel表格便于查看。
该json文件是由csv文件在Notepad++中利用正则完成的,注意删除影响因子为N/A的行,把所有期刊名称改为小写(使用\L)。