- Timestamp:
- 2022-07-29T22:19:12+12:00 (21 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
other-projects/bib-stinky/trunk/nodejs-server/public/doi-stinky.user.js
r36322 r36349 7 7 // @author Dave Nichols 8 8 // @author Mike Twidale 9 // @require https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js10 // @match https://www.cs.waikato.ac.nz/*11 // @match https://search.crossref.org/*12 // @grant GM_xmlhttpRequest13 // @connect bibstinky.sowemustthink.space14 // @connect bib-stinky.so-we-must-think.space9 // @require https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js 10 // @match https://www.cs.waikato.ac.nz/* 11 // @match https://search.crossref.org/* 12 // @grant GM_xmlhttpRequest 13 // @connect bibstinky.sowemustthink.space 14 // @connect bib-stinky.so-we-must-think.space 15 15 // ==/UserScript== 16 16 17 //alert(" foo");17 //alert("Testing, Testing!"); 18 18 19 19 (function() { 20 'use strict';20 'use strict'; 21 21 22 var $ = window.jQuery; 22 var $ = window.jQuery; 23 24 function createCrossCheckDOICallack(doi) 25 { 26 return function(responseDetails) { 27 var returned_json_str = responseDetails.responseText; 28 //console.log(returned_json_str); 29 var doi_rec = JSON.parse(returned_json_str); 30 31 var totalHits = doi_rec.totalHits; 32 if (doi_rec.totalHits == 0) { 33 // Remove it 34 var doi_id = "doistinky-" + doi.replaceAll("/","SLASH"); 35 console.log("No match found in Core => remove DOI " + doi); 36 //console.log("Removing: id=" + doi_id); 37 $('#'+doi_id).remove(); 38 } 39 else if (totalHits == 1) { 40 var result = doi_rec.results[0]; 41 console.log("Match found in Core for DOI " + doi + " => Investigate Title = " + result.title); 42 } 43 else { 44 console.error("Error: API returned more than one DOI metadata record for doi: " + doi); 45 } 46 } 47 } 48 49 function crossCheckDOIs(doi_list,doi_href_list) 50 { 51 console.log("Cross-checking #" + doi_list.length + " DOIs"); 52 53 for (var i=0; i<doi_list.length; i++) { 54 var doi = doi_list[i]; 55 var encoded_doi = encodeURIComponent(doi); 56 57 var crossCheckDOICallback = createCrossCheckDOICallack(doi); 58 59 console.log("cross-checking doi: " + doi); 60 GM_xmlhttpRequest ( { 61 method: 'GET', 62 url: 'https://bibstinky.sowemustthink.space/api/get-doi?coreDOI='+encoded_doi, 63 onload: crossCheckDOICallback 64 }); 65 66 } 67 } 68 23 69 24 70 var doi_list = []; 71 var doi_href_list = []; 72 25 73 var doi_pattern = /^http(?:s)?:\/\/doi.org\/(.*)$/i; 26 74 … … 31 79 var doi_id = doi_pattern_matches[1]; 32 80 doi_list.push(doi_id); 81 doi_href_list.push(href); 33 82 } 34 83 }); … … 64 113 65 114 if (doi_list.length > 0) { 66 $('#doiStinkyInfo').append(doi_list.join(",")); 115 if (doi_list.length == 1) { 116 $('#doiStinkyInfo').html("Cross-checking extracted DOI:"); 117 } 118 else { 119 $('#doiStinkyInfo').html("Cross-checking extracted DOIs:"); 120 } 121 var $doi_list_div = $('<div>'); 122 123 for (var i=0; i<doi_list.length; i++) { 124 var doi = doi_list[i]; 125 var doi_id = doi.replaceAll("/","SLASH"); 126 var $a_tag = $('<a>'); 127 $a_tag.attr("id","doistinky-"+ doi_id); 128 $a_tag.attr("href","https://doi.org/"+doi); 129 $a_tag.append(doi); 130 131 if (i>0) { 132 $doi_list_div.append(", "); 133 } 134 $doi_list_div.append($a_tag); 135 136 } 137 $('#doiStinkyInfo').append($doi_list_div); 138 139 crossCheckDOIs(doi_list,doi_href_list); 140 67 141 } 68 142 else { 69 143 $('#doiStinkyInfo').append("No DOIs detected on the page"); 70 144 } 145 71 146 } 72 147 } );
Note:
See TracChangeset
for help on using the changeset viewer.