commit 5c6a050fa745c8381f69968da45e546ebdf47375
parent 032e0439a1ebfa51cde5b9e4f0c9281bb02dc024
Author: Simon Kornblith <simon@simonster.com>
Date: Thu, 11 Sep 2008 17:13:24 +0000
Fix issues in converted translators
Diffstat:
2 files changed, 135 insertions(+), 0 deletions(-)
diff --git a/translators/CiteBase.js b/translators/Citebase.js
diff --git a/translators/Unidade de Biologia da Conservaçao.js b/translators/Unidade de Biologia da Conservaçao.js
@@ -0,0 +1,134 @@
+{
+ "translatorID":"587aa172-af1a-4cab-b188-2b6d392cae5c",
+ "translatorType":4,
+ "label":"Unidade de Biologia da Conservaçao",
+ "creator":"Giovanni Manghi and Michael Berkowitz",
+ "target":"http://www.ubc.uevora.pt/",
+ "minVersion":"1.0",
+ "maxVersion":"",
+ "priority":100,
+ "inRepository":true,
+ "lastUpdated":"2008-09-08 18:40:46"
+}
+
+function detectWeb(doc, url) {
+ if(doc.title == "UBC: referencia bibliografica") {
+ return "book";
+ } else if (doc.evaluate('//tr[@class]/td/a', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) {
+ return "multiple";
+ }
+}
+
+function doWeb(doc, url) {
+ if (detectWeb(doc, url) == "multiple") {
+ var xpath = '//tr[@class]/td/a';
+ var items = doc.evaluate(xpath, doc, null, XPathResult.ANY_TYPE, null);
+ var next_item;
+ var arts = new Object();
+ while (next_item = items.iterateNext()) {
+ arts[next_item.href] = Zotero.Utilities.trimInternal(next_item.textContent);
+ }
+ arts = Zotero.selectItems(arts);
+ var newDocs = new Array();
+ for (var i in arts) {
+ newDocs.push(i);
+ }
+ Zotero.debug(newDocs);
+ Zotero.Utilities.processDocuments(newDocs, function(newDoc) { scrape(newDoc, newDoc.location.href); }, function() {Zotero.done();});
+ } else {
+ scrape(doc,url);
+ }
+}
+
+
+function scrape(doc,url) {
+ var xpath = "/html/body/div/div/div[3]/div[3]/table/tbody/tr/td"
+ var xpathurl ="/html/body/div/div/div[3]/div[3]/table/tbody/tr/td/a[1]"
+ var allRefText = Zotero.Utilities.cleanString(doc.evaluate(xpath, doc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent);
+ var allRefTexturl = Zotero.Utilities.cleanString(doc.evaluate(xpathurl, doc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent);
+
+
+
+
+// bib data scraper code here
+
+function getItem(reftext,re) {
+ var item = reftext.match(re);
+ // Zotero.debug(item[1]);
+ return item[1];
+}
+
+var TipoRe = "Type:(.*?)Title";
+var tipoo = getItem(allRefText,TipoRe);
+
+var titleRe = "Title:(.*?)Author";
+var title = getItem(allRefText,titleRe);
+
+var authorsRe = "Author.*?: (.*?)Journal";
+var authors = getItem(allRefText,authorsRe);
+
+var journalRe = "Journal:(.*?)Year";
+var journal = getItem(allRefText,journalRe);
+
+var yearRe = "Year:(.*?)Volume";
+var year = getItem(allRefText,yearRe);
+
+var volRe = "Volume:(.*?)Number";
+var vol = getItem(allRefText,volRe);
+
+var numRe = "Number:(.*?)Pages";
+var num = getItem(allRefText,numRe);
+
+var pageRe = "Pages:(.*?)Abstract";
+var page = getItem(allRefText,pageRe);
+
+var abstractRe = "Abstract:(.*?)Keywords";
+var abstract = getItem(allRefText,abstractRe);
+
+var keyRe = "Keywords:(.*?)Link";
+var key = getItem(allRefText,keyRe);
+
+
+
+
+// zotero entry creation code here
+
+itemTypeMap = {
+ article:"journalArticle",
+ book:"book",
+ conference:"conferencePaper",
+ inproceedings:"conferencePaper",
+ inbook:"bookSection",
+ incollection:"bookSection",
+ mastersthesis:"thesis",
+ other:"journalArticle",
+ phdthesis:"thesis",
+ proceedings:"conferencePaper"
+};
+
+if (itemTypeMap[tipoo]) {
+ tipooo = itemTypeMap[tipoo];
+} else {
+ tipooo = 'document';
+}
+
+var newArticle = new Zotero.Item(tipooo);
+
+ var aus = authors.split(",");
+ for (var i=0; i< aus.length ; i++) {
+ newArticle.creators.push(Zotero.Utilities.cleanAuthor(aus[i],"author"));
+ }
+
+ newArticle.title = title;
+ newArticle.publicationTitle = journal;
+ newArticle.date = year;
+ newArticle.volume = vol;
+ newArticle.issue = num;
+ newArticle.pages = page;
+ newArticle.abstractNote = abstract;
+ newArticle.keywords = key;
+ newArticle.url = url;
+
+
+newArticle.complete();
+}
+\ No newline at end of file