diff --git a/chrome/content/scripts/jasminum.js b/chrome/content/scripts/jasminum.js index e7cbd0e..62098f0 100644 --- a/chrome/content/scripts/jasminum.js +++ b/chrome/content/scripts/jasminum.js @@ -123,7 +123,17 @@ Zotero.Jasminum = { }; }, - createPost: function (fileData) { + createPost: async function (fileData) { + var searchUrl = + "https://kns.cnki.net/kns/brief/result.aspx?dbprefix=SCDB&crossDbcodes=CJFQ,CDFD,CMFD,CPFD,IPFD,CCND,CCJD"; + var respText = await Zotero.Jasminum.promiseGet(searchUrl); + var dbCatalog = ""; + if (respText.includes("中国学术期刊网络出版总库")) { + dbCatalog = "中国学术期刊网络出版总库"; + } else { + dbCatalog = "中国学术文献网络出版总库"; + } + Zotero.debug("** Jasminum search dbCatalog: " + dbCatalog); // Create a search string. static_post_data = { action: "", @@ -191,17 +201,6 @@ Zotero.Jasminum = { return { dbname: dbname[1], filename: filename[1], dbcode: dbcode[1] }; }, - parseRef: function (targetID) { - var postData = - "formfilenames=" + - encodeURIComponent( - targetID.dbname + "!" + targetID.filename + "!1!0," - ) + - "&hid_kLogin_headerUrl=/KLogin/Request/GetKHeader.ashx%3Fcallback%3D%3F" + - "&hid_KLogin_FooterUrl=/KLogin/Request/GetKHeader.ashx%3Fcallback%3D%3F" + - "&CookieName=FileNameS"; - }, - promiseGet: function (url) { Zotero.debug("** Jasminum create http get."); return new Promise(function (resolve, reject) { @@ -228,7 +227,7 @@ Zotero.Jasminum = { }, searchPrepare: async function (fileData) { - var searchData = Zotero.Jasminum.createPost(fileData); + var searchData = await Zotero.Jasminum.createPost(fileData); var SEARCH_HANDLE_URL = "https://kns.cnki.net/kns/request/SearchHandler.ashx"; var url = SEARCH_HANDLE_URL + "?" + searchData; @@ -442,8 +441,9 @@ Zotero.Jasminum = { item.attachmentContentType && item.attachmentContentType === "application/pdf" && item.parentItem.getField("libraryCatalog") && - item.parentItem.getField("libraryCatalog").includes("CNKI") - ); // Contain Chinese + item.parentItem.getField("libraryCatalog").includes("CNKI") && + item.parentItem.itemTypeID === 7 + ); }, getChapterUrl: async function (itemUrl) { @@ -478,19 +478,16 @@ Zotero.Jasminum = { getBookmark: async function (item) { // demo url https://kreader.cnki.net/Kreader/buildTree.aspx?dbCode=cdmd&FileName=1020622678.nh&TableName=CMFDTEMP&sourceCode=GHSFU&date=&year=2020&period=&fileNameList=&compose=&subscribe=&titleName=&columnCode=&previousType=_&uid= var parentItem = item.parentItem; - var parentItemType = parentItem.itemTypeID; // theis = 7 var itemUrl = ""; var itemChapterUrl = ""; if ( - parentItemType === 7 && parentItem.getField("extra") && parentItem.getField("extra").includes("cnki") ) { Zotero.debug("1"); itemChapterUrl = parentItem.getField("extra"); } else if ( - parentItemType === 7 && parentItem.getField("url") && parentItem.getField("url").includes("cnki") ) { @@ -658,8 +655,10 @@ Zotero.Jasminum = { } creators[i] = creator; } - item.setCreators(creators); - item.saveTx(); + if (creators != item.getCreators()) { + item.setCreators(creators); + item.saveTx(); + } } }, }; diff --git a/install.rdf b/install.rdf index fde2c2b..042c36a 100644 --- a/install.rdf +++ b/install.rdf @@ -10,11 +10,6 @@ chrome://jasminum/skin/icon.png true Xingzhong Lin -