From cb6b6c754027a336fc7e8aff926e902e9f89c89b Mon Sep 17 00:00:00 2001 From: Jiawei Duan Date: Sun, 16 Jun 2024 08:05:29 -0700 Subject: [PATCH 1/6] crossref api --- src/chrome/content/journal.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/chrome/content/journal.js b/src/chrome/content/journal.js index e398fd9..a84f049 100644 --- a/src/chrome/content/journal.js +++ b/src/chrome/content/journal.js @@ -38,9 +38,9 @@ Journal = { return null; } - var url = 'http://dx.doi.org/' + doi; - const headers = new Headers({'Accept': 'application/vnd.citationstyles.csl+json'}); - var requestInfo = { method: 'GET', headers }; + var url = 'https://api.crossref.org/works/' + doi; + // const headers = new Headers({'Accept': 'application/vnd.citationstyles.csl+json'}); + var requestInfo = { method: 'GET' }; return Utilities.fetchWithTimeout(url, requestInfo, 3000) .then(response => { if (!response.ok) { @@ -59,6 +59,7 @@ Journal = { } }) .then(dataJson => { + dataJson = dataJson.message; var Title = Utilities.safeGetFromJson(dataJson, ["title"]); var Authors = this.generateAuthors(Utilities.safeGetFromJson(dataJson, ["author"])); var Publication = Utilities.safeGetFromJson(dataJson, ["container-title"]); @@ -66,7 +67,7 @@ Journal = { var Issue = Utilities.safeGetFromJson(dataJson, ["issue"]); var Pages = Utilities.safeGetFromJson(dataJson, ["page"]); var PublishDate = this.generateDate(Utilities.safeGetFromJson(dataJson, ["published", "date-parts"])); - var JournalAbbr = Utilities.safeGetFromJson(dataJson, ["container-title-short"]); + var JournalAbbr = Utilities.safeGetFromJson(dataJson, ["short-container-title"]); var Language = Utilities.safeGetFromJson(dataJson, ["language"]); return { "Title": Title ? Title : "", From 83cb60b5c25f292b3c39a9f5b3eb6b2fd50ab586 Mon Sep 17 00:00:00 2001 From: Jiawei Duan Date: Sun, 16 Jun 2024 08:33:01 -0700 Subject: [PATCH 2/6] corrections --- src/chrome/content/journal.js | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/chrome/content/journal.js b/src/chrome/content/journal.js index a84f049..87c9cdd 100644 --- a/src/chrome/content/journal.js +++ b/src/chrome/content/journal.js @@ -1,4 +1,9 @@ -Journal = { +Journal = { + + isObject(obj) { + return obj !== null && typeof obj === 'object'; + }, + generateAuthors (authors) { var newAuthorList = []; if (authors) { @@ -60,14 +65,14 @@ Journal = { }) .then(dataJson => { dataJson = dataJson.message; - var Title = Utilities.safeGetFromJson(dataJson, ["title"]); + var Title = Utilities.safeGetFromJson(dataJson, ["title", 0]); if (isObject(Title)) Title = Title[0]; var Authors = this.generateAuthors(Utilities.safeGetFromJson(dataJson, ["author"])); - var Publication = Utilities.safeGetFromJson(dataJson, ["container-title"]); + var Publication = Utilities.safeGetFromJson(dataJson, ["container-title"]); if (isObject(Publication)) Publication = Publication[0]; var Volume = Utilities.safeGetFromJson(dataJson, ["volume"]); var Issue = Utilities.safeGetFromJson(dataJson, ["issue"]); var Pages = Utilities.safeGetFromJson(dataJson, ["page"]); var PublishDate = this.generateDate(Utilities.safeGetFromJson(dataJson, ["published", "date-parts"])); - var JournalAbbr = Utilities.safeGetFromJson(dataJson, ["short-container-title"]); + var JournalAbbr = Utilities.safeGetFromJson(dataJson, ["short-container-title"]); if (isObject(JournalAbbr)) JournalAbbr = JournalAbbr[0]; var Language = Utilities.safeGetFromJson(dataJson, ["language"]); return { "Title": Title ? Title : "", From ecb768d3f5e76d672e00c0bee5a5182eec0c10b1 Mon Sep 17 00:00:00 2001 From: Jiawei Duan Date: Sun, 16 Jun 2024 08:33:28 -0700 Subject: [PATCH 3/6] corrections --- src/chrome/content/journal.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/chrome/content/journal.js b/src/chrome/content/journal.js index 87c9cdd..dfd0e91 100644 --- a/src/chrome/content/journal.js +++ b/src/chrome/content/journal.js @@ -65,14 +65,14 @@ Journal = { }) .then(dataJson => { dataJson = dataJson.message; - var Title = Utilities.safeGetFromJson(dataJson, ["title", 0]); if (isObject(Title)) Title = Title[0]; + var Title = Utilities.safeGetFromJson(dataJson, ["title", 0]); if (this.isObject(Title)) Title = Title[0]; var Authors = this.generateAuthors(Utilities.safeGetFromJson(dataJson, ["author"])); - var Publication = Utilities.safeGetFromJson(dataJson, ["container-title"]); if (isObject(Publication)) Publication = Publication[0]; + var Publication = Utilities.safeGetFromJson(dataJson, ["container-title"]); if (this.isObject(Publication)) Publication = Publication[0]; var Volume = Utilities.safeGetFromJson(dataJson, ["volume"]); var Issue = Utilities.safeGetFromJson(dataJson, ["issue"]); var Pages = Utilities.safeGetFromJson(dataJson, ["page"]); var PublishDate = this.generateDate(Utilities.safeGetFromJson(dataJson, ["published", "date-parts"])); - var JournalAbbr = Utilities.safeGetFromJson(dataJson, ["short-container-title"]); if (isObject(JournalAbbr)) JournalAbbr = JournalAbbr[0]; + var JournalAbbr = Utilities.safeGetFromJson(dataJson, ["short-container-title"]); if (this.isObject(JournalAbbr)) JournalAbbr = JournalAbbr[0]; var Language = Utilities.safeGetFromJson(dataJson, ["language"]); return { "Title": Title ? Title : "", From ad45b6a4dcfab6b8c703c00bcf2699c078588e44 Mon Sep 17 00:00:00 2001 From: Jiawei Duan Date: Sun, 16 Jun 2024 08:39:49 -0700 Subject: [PATCH 4/6] corrections --- src/chrome/content/journal.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/chrome/content/journal.js b/src/chrome/content/journal.js index dfd0e91..1e84cd8 100644 --- a/src/chrome/content/journal.js +++ b/src/chrome/content/journal.js @@ -71,7 +71,7 @@ Journal = { var Volume = Utilities.safeGetFromJson(dataJson, ["volume"]); var Issue = Utilities.safeGetFromJson(dataJson, ["issue"]); var Pages = Utilities.safeGetFromJson(dataJson, ["page"]); - var PublishDate = this.generateDate(Utilities.safeGetFromJson(dataJson, ["published", "date-parts"])); + var PublishDate = this.generateDate(Utilities.safeGetFromJson(dataJson, ["published-print", "date-parts"])); var JournalAbbr = Utilities.safeGetFromJson(dataJson, ["short-container-title"]); if (this.isObject(JournalAbbr)) JournalAbbr = JournalAbbr[0]; var Language = Utilities.safeGetFromJson(dataJson, ["language"]); return { From daed86c41970a773d293f9636c78670b63921416 Mon Sep 17 00:00:00 2001 From: Jiawei Duan Date: Sun, 16 Jun 2024 08:46:09 -0700 Subject: [PATCH 5/6] decoding the HTML entities --- src/chrome/content/journal.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/chrome/content/journal.js b/src/chrome/content/journal.js index 1e84cd8..ff6bc08 100644 --- a/src/chrome/content/journal.js +++ b/src/chrome/content/journal.js @@ -4,6 +4,12 @@ Journal = { return obj !== null && typeof obj === 'object'; }, + decodeHTMLEntities(text) { + let textarea = document.createElement('textarea'); + textarea.innerHTML = text; + return textarea.textContent; + }, + generateAuthors (authors) { var newAuthorList = []; if (authors) { @@ -75,9 +81,9 @@ Journal = { var JournalAbbr = Utilities.safeGetFromJson(dataJson, ["short-container-title"]); if (this.isObject(JournalAbbr)) JournalAbbr = JournalAbbr[0]; var Language = Utilities.safeGetFromJson(dataJson, ["language"]); return { - "Title": Title ? Title : "", + "Title": Title ? self.decodeHTMLEntities(Title) : "", "Authors": Authors ? Authors : "", - "Publication": Publication ? Publication : "", + "Publication": Publication ? self.decodeHTMLEntities(Publication) : "", "Volume": Volume ? Volume : "", "Issue": Issue ? Issue : "", "Pages": Pages ? Pages : "", From a51bbcf1c7f3e3f7e53aececcb01e3103d5f2da5 Mon Sep 17 00:00:00 2001 From: Jiawei Duan Date: Sun, 16 Jun 2024 08:51:30 -0700 Subject: [PATCH 6/6] corrections --- src/chrome/content/journal.js | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/chrome/content/journal.js b/src/chrome/content/journal.js index ff6bc08..348e707 100644 --- a/src/chrome/content/journal.js +++ b/src/chrome/content/journal.js @@ -71,19 +71,22 @@ Journal = { }) .then(dataJson => { dataJson = dataJson.message; - var Title = Utilities.safeGetFromJson(dataJson, ["title", 0]); if (this.isObject(Title)) Title = Title[0]; + var Title = Utilities.safeGetFromJson(dataJson, ["title", 0]); var Authors = this.generateAuthors(Utilities.safeGetFromJson(dataJson, ["author"])); - var Publication = Utilities.safeGetFromJson(dataJson, ["container-title"]); if (this.isObject(Publication)) Publication = Publication[0]; + var Publication = Utilities.safeGetFromJson(dataJson, ["container-title"]); var Volume = Utilities.safeGetFromJson(dataJson, ["volume"]); var Issue = Utilities.safeGetFromJson(dataJson, ["issue"]); var Pages = Utilities.safeGetFromJson(dataJson, ["page"]); var PublishDate = this.generateDate(Utilities.safeGetFromJson(dataJson, ["published-print", "date-parts"])); - var JournalAbbr = Utilities.safeGetFromJson(dataJson, ["short-container-title"]); if (this.isObject(JournalAbbr)) JournalAbbr = JournalAbbr[0]; + var JournalAbbr = Utilities.safeGetFromJson(dataJson, ["short-container-title"]); var Language = Utilities.safeGetFromJson(dataJson, ["language"]); + if (this.isObject(Title)) Title = Title[0]; Title = this.decodeHTMLEntities(Title); + if (this.isObject(Publication)) Publication = Publication[0]; Publication = this.decodeHTMLEntities(Publication); + if (this.isObject(JournalAbbr)) JournalAbbr = JournalAbbr[0]; JournalAbbr = this.decodeHTMLEntities(JournalAbbr); return { - "Title": Title ? self.decodeHTMLEntities(Title) : "", + "Title": Title ? Title : "", "Authors": Authors ? Authors : "", - "Publication": Publication ? self.decodeHTMLEntities(Publication) : "", + "Publication": Publication ? Publication : "", "Volume": Volume ? Volume : "", "Issue": Issue ? Issue : "", "Pages": Pages ? Pages : "",