| 1 | REPLACE INTO translators VALUES ('ee07b804-12a9-4fa3-8f83-cce177f68dfc', '1.0.0b3r1', '', '2007-08-07 10:33:28', '0', '100', '4', 'DSpace', 'Ramesh Srigiriraju', '', |
|---|
| 2 | 'function detectWeb(doc, url) { |
|---|
| 3 | var namespace=doc.documentElement.namespaceURI; |
|---|
| 4 | var nsResolver=namespace?function(prefix) { |
|---|
| 5 | return (prefix=="x")?namespace:null; |
|---|
| 6 | }:null; |
|---|
| 7 | var xpath=''//tr[@class="navigationBarItem"]/td/a[contains(@href, "/mydspace")]''; |
|---|
| 8 | if(doc.evaluate(xpath, doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()) { |
|---|
| 9 | var singpath=''//center/table[@class="itemDisplayTable"]''; |
|---|
| 10 | if(doc.evaluate(singpath, doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()) |
|---|
| 11 | return "book"; |
|---|
| 12 | var searchpath=''//h3[text()="Item hits:"]''; |
|---|
| 13 | var browsdate=''//form[@method="get"][@action="browse-date"]''; |
|---|
| 14 | var browstitl=''//form[@method="get"][@action="browse-title"]''; |
|---|
| 15 | var other=''//tr/th[@class="oddRowEvenCol"]''; |
|---|
| 16 | if(doc.evaluate(searchpath, doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext() |
|---|
| 17 | ||doc.evaluate(browsdate, doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext() |
|---|
| 18 | ||doc.evaluate(browstitl, doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext() |
|---|
| 19 | ||doc.evaluate(other, doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()) |
|---|
| 20 | return "multiple"; |
|---|
| 21 | } |
|---|
| 22 | }', |
|---|
| 23 | 'function scrape(doc) { |
|---|
| 24 | var namespace=doc.documentElement.namespaceURI; |
|---|
| 25 | var nsResolver=namespace?function(prefix) { |
|---|
| 26 | return (prefix=="x")?namespace:null; |
|---|
| 27 | }:null; |
|---|
| 28 | var singpath=''//center/table[@class="itemDisplayTable"]''; |
|---|
| 29 | if(doc.evaluate(singpath, doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()) { |
|---|
| 30 | var labelpath=''//tr/td[@class="metadataFieldLabel"]''; |
|---|
| 31 | var labels=doc.evaluate(labelpath, doc, nsResolver, XPathResult.ANY_TYPE, null); |
|---|
| 32 | var valpath=''//tr/td[@class="metadataFieldValue"]''; |
|---|
| 33 | var values=doc.evaluate(valpath, doc, nsResolver, XPathResult.ANY_TYPE, null); |
|---|
| 34 | var temp |
|---|
| 35 | var newItem=new Zotero.Item("book"); |
|---|
| 36 | while(temp=labels.iterateNext()) { |
|---|
| 37 | var field=temp.textContent; |
|---|
| 38 | field=Zotero.Utilities.cleanString(field); |
|---|
| 39 | var temp2=values.iterateNext(); |
|---|
| 40 | var value=temp2.textContent; |
|---|
| 41 | if(field.substring(0, 5)=="Title") |
|---|
| 42 | newItem.title=value; |
|---|
| 43 | else if(field.substring(0, 6)=="Author") { |
|---|
| 44 | var authtext=temp2.innerHTML; |
|---|
| 45 | authtext=authtext.replace(/<br>/g, "\n"); |
|---|
| 46 | var authors=authtext.split("\n"); |
|---|
| 47 | for(var i=0; i<=authors.length-1; i++) { |
|---|
| 48 | var comma=authors[i].indexOf(","); |
|---|
| 49 | if(comma!=-1) |
|---|
| 50 | newItem.creators.push({lastName:authors[i].substring(0, comma), |
|---|
| 51 | firstName:authors[i].substring(comma+2), creatorType:"author"}); |
|---|
| 52 | else |
|---|
| 53 | newItem.creators.push({lastName:authors[i], creatorType:"author"}); |
|---|
| 54 | } |
|---|
| 55 | } |
|---|
| 56 | else if(field.substring(0, 4)=="URI") |
|---|
| 57 | newItem.url=value; |
|---|
| 58 | else if(field.substring(0, 10)=="Issue Date") |
|---|
| 59 | newItem.date=value; |
|---|
| 60 | else if(field.substring(0, 9)=="Publisher") |
|---|
| 61 | newItem.publisher=value; |
|---|
| 62 | else if(field.substring(0, 8)=="Abstract") |
|---|
| 63 | newItem.abstract=value; |
|---|
| 64 | else if(field.substring(0, 11)=="Description") { |
|---|
| 65 | var pullre=new RegExp("\\|Pages ([^\\|]+)\\|"); |
|---|
| 66 | Zotero.debug(pullre); |
|---|
| 67 | var matches=pullre.exec(value); |
|---|
| 68 | if(matches) |
|---|
| 69 | newItem.pages=matches[1]; |
|---|
| 70 | } |
|---|
| 71 | } |
|---|
| 72 | var pdfpath=''//tr[td/text()="Adobe PDF"]/td/a''; |
|---|
| 73 | var pdflink=doc.evaluate(pdfpath, doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); |
|---|
| 74 | if(pdflink) |
|---|
| 75 | newItem.attachments.push({url:pdflink.href, title:newItem.title, mimeType:"application/pdf"}); |
|---|
| 76 | newItem.complete(); |
|---|
| 77 | } |
|---|
| 78 | } |
|---|
| 79 | function doWeb(doc, url) { |
|---|
| 80 | var namespace=doc.documentElement.namespaceURI; |
|---|
| 81 | var nsResolver=namespace?function(prefix) { |
|---|
| 82 | return (prefix=="x")?namespace:null; |
|---|
| 83 | }:null; |
|---|
| 84 | var singpath=''//center/table[@class="itemDisplayTable"]''; |
|---|
| 85 | if(doc.evaluate(singpath, doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()) |
|---|
| 86 | scrape(doc); |
|---|
| 87 | var searchpath=''//h3[text()="Item hits:"]''; |
|---|
| 88 | var browsdate=''//form[@method="get"][@action="browse-date"]''; |
|---|
| 89 | var browstitl=''//form[@method="get"][@action="browse-title"]''; |
|---|
| 90 | var other=''//tr/th[@class="oddRowEvenCol"]''; |
|---|
| 91 | if(doc.evaluate(searchpath, doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext() |
|---|
| 92 | ||doc.evaluate(browsdate, doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext() |
|---|
| 93 | ||doc.evaluate(browstitl, doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext() |
|---|
| 94 | ||doc.evaluate(other, doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()) { |
|---|
| 95 | var headerpath=''//tr[th/@class="oddRowEvenCol"]/th''; |
|---|
| 96 | var headers=doc.evaluate(headerpath, doc, nsResolver, XPathResult.ANY_TYPE, null); |
|---|
| 97 | var header; |
|---|
| 98 | var index=1; |
|---|
| 99 | while(header=headers.iterateNext()) |
|---|
| 100 | if(header.textContent.substring(0, 5)=="Title") |
|---|
| 101 | break; |
|---|
| 102 | else |
|---|
| 103 | index++; |
|---|
| 104 | var titlpath=''//tbody[tr/th/@class="oddRowOddCol"]/tr/td[''+index+'']//a''; |
|---|
| 105 | var titles=doc.evaluate(titlpath, doc, nsResolver, XPathResult.ANY_TYPE, null); |
|---|
| 106 | var title; |
|---|
| 107 | var items=new Array(); |
|---|
| 108 | while(title=titles.iterateNext()) |
|---|
| 109 | items[title.href]=title.textContent; |
|---|
| 110 | items=Zotero.selectItems(items); |
|---|
| 111 | var urls=new Array(); |
|---|
| 112 | for(var link in items) |
|---|
| 113 | urls.push(link); |
|---|
| 114 | Zotero.Utilities.processDocuments(urls, function(doc) { |
|---|
| 115 | scrape(doc); |
|---|
| 116 | }, function() { |
|---|
| 117 | Zotero.done(); |
|---|
| 118 | }); |
|---|
| 119 | } |
|---|
| 120 | Zotero.wait(); |
|---|
| 121 | }'); |
|---|