From 0cd3021cf3f1cad63ca4479f794380410c599e16 Mon Sep 17 00:00:00 2001 From: Simon Kornblith Date: Wed, 30 Aug 2006 21:56:52 +0000 Subject: [PATCH] closes #241, improved date handling - Scholar.strToDate() accepts a string date and returns an object containing year, month, day, and part - capture access date whenever URL is captured - updated Zotero.dot to use new namespaces --- Zotero.dot.dmg | Bin 39912 -> 41087 bytes .../chromeFiles/content/scholar/xpcom/cite.js | 133 +++++++++--------- .../content/scholar/xpcom/scholar.js | 87 ++++++++++++ .../content/scholar/xpcom/translate.js | 5 + scrapers.sql | 8 +- 5 files changed, 160 insertions(+), 73 deletions(-) diff --git a/Zotero.dot.dmg b/Zotero.dot.dmg index d3bb3703105bd6b9456f3d85d4fbe62d46d292a4..a2070dada13ecb200d274beea96dbeacd840a7ad 100644 GIT binary patch delta 34854 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 IcixTv1;S3d`Tzg` delta 33660 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 hN`b}$EtwoYzk`Kmy&A`4LFRf]*\?>/g, ""); -} - -CSL.prototype._init = function() { +/* + * initializes CSL interpreter + */ +CSL.init = function() { if(!CSL._xmlLang) { // get XML lang var localeService = Components.classes['@mozilla.org/intl/nslocaleservice;1']. @@ -326,12 +319,30 @@ CSL.prototype._init = function() { req.send(null); // get default terms - var locales = new XML(this._cleanXML(req.responseText)); - CSL._defaultTerms = this._parseLocales(locales); + var locales = new XML(CSL._cleanXML(req.responseText)); + CSL._defaultTerms = CSL._parseLocales(locales); } } -CSL.prototype._parseLocales = function(termXML) { +/* + * returns an array of short or long month strings + */ +CSL.getMonthStrings = function(form) { + CSL.init(); + return CSL._defaultTerms[form]["_months"]; +} + +/* + * removes parse instructions from XML + */ +CSL._cleanXML = function(xml) { + return xml.replace(/<\?[^>]*\?>/g, ""); +} + +/* + * parses locale strings into CSL._defaultTerms + */ +CSL._parseLocales = function(termXML) { // return defaults if there are no terms if(!termXML.length()) { return (CSL._defaultTerms ? CSL._defaultTerms : {}); @@ -403,7 +414,17 @@ CSL.prototype._parseLocales = function(termXML) { } } } else { - termArray[form][name] = term.text().toString(); + if(name.substr(0, 6) == "month-") { + // place months into separate array + if(!termArray[form]["_months"]) { + termArray[form]["_months"] = new Array(); + } + var monthIndex = parseInt(name.substr(6),10)-1; + var term = term.text().toString(); + termArray[form]["_months"][monthIndex] = term[0].toUpperCase()+term.substr(1).toLowerCase(); + } else { + termArray[form][name] = term.text().toString(); + } } } @@ -550,8 +571,8 @@ CSL.prototype._parseEtAl = function(etAl, bibCitElement) { for each(var etAlElement in etAl) { if(etAlElement.@position == "subsequent") { bibCitElement.subsequentEtAl = new Object(); - bibCitElement.subsequentEtAl.minCreators = parseInt(etAlElement['@min-authors']); - bibCitElement.subsequentEtAl.useFirst = parseInt(etAlElement['@use-first']); + bibCitElement.subsequentEtAl.minCreators = parseInt(etAlElement['@min-authors'], 10); + bibCitElement.subsequentEtAl.useFirst = parseInt(etAlElement['@use-first'], 10); } else { var parseElement = etAlElement; } @@ -560,8 +581,8 @@ CSL.prototype._parseEtAl = function(etAl, bibCitElement) { var parseElement = etAl; } - bibCitElement.etAl.minCreators = parseInt(parseElement['@min-authors']); - bibCitElement.etAl.useFirst = parseInt(parseElement['@use-first']); + bibCitElement.etAl.minCreators = parseInt(parseElement['@min-authors'], 10); + bibCitElement.etAl.useFirst = parseInt(parseElement['@use-first'], 10); } } @@ -764,46 +785,6 @@ CSL.prototype._getTerm = function(term, plural, form) { return this._terms[form][term]; } -/* - * process the date "string" into a useful object - */ -CSL.prototype._processDate = function(string) { - var date = new Object(); - - var dateRe = /^([0-9]{4})-([0-9]{2})-([0-9]{2})$/; - var m = dateRe.exec(string); - if(m) { // sql date - var jsDate = new Date(m[1], m[2]-1, m[3], false, false, false); - } else { // not an sql date - var yearRe = /^[0-9]+$/; - if(yearRe.test(string)) { // is a year - date.year = string; - return date; - } else { // who knows what this is - var jsDate = new Date(string) - } - } - - if(isNaN(jsDate.valueOf())) { // couldn't parse - // get year and say other parts are month - var yearRe = /^(.*)([0-9]{4})(.*)$/ - var m = yearRe.exec(string); - - if(m) { - date.year = m[2]; - date.month = m[1]; - if(m[2] && m[3]) date.month += " "; - date.month += m[3]; - } - } else { - date.year = jsDate.getFullYear(); - date.month = jsDate.getMonth(); - date.day = jsDate.getDay(); - } - - return date; -} - /* * escapes a string for a given format */ @@ -972,15 +953,19 @@ CSL.prototype._formatDate = function(element, date, format) { string += date.disambiguation; } } - } else if(child.name == "month" && date.month) { - if(format == "compare") { - string = this._lpad(date.month+1, "0", 2); - } else { - if(element.form == "short") { - string = CSL._monthsShort[date.month]; + } else if(child.name == "month") { + if(date.month) { + if(format == "compare") { + string = this._lpad(date.month+1, "0", 2); } else { - string = CSL._months[date.month]; + if(element.form == "short") { + string = this._terms["short"]["_months"][date.month]; + } else { + string = this._terms["long"]["_months"][date.month]; + } } + } else if(date.part && format != "compare") { + string = date.part; } } else if(child.name == "day" && date.day) { if(format == "compare") { @@ -1518,6 +1503,9 @@ CSL.prototype._getTypeFromItem = function(item) { return [CSL._optionalTypeMappings[scholarType], CSL._fallbackTypeMappings[scholarType]]; } +/* + * separate creators object into authors, editors, and translators + */ CSL.prototype._separateItemCreators = function(item) { var authors = new Array(); var editors = new Array(); @@ -1543,6 +1531,13 @@ CSL.prototype._separateItemCreators = function(item) { return [authors, editors, translators]; } + +/* + * return an object containing year, month, and day + */ +CSL.prototype._processDate = function(string) { + return Scholar.strToDate(string); +} /* * END SCHOLAR-SPECIFIC CODE */ \ No newline at end of file diff --git a/chrome/chromeFiles/content/scholar/xpcom/scholar.js b/chrome/chromeFiles/content/scholar/xpcom/scholar.js index f0f6b81cf1..0bee3678c6 100644 --- a/chrome/chromeFiles/content/scholar/xpcom/scholar.js +++ b/chrome/chromeFiles/content/scholar/xpcom/scholar.js @@ -35,10 +35,12 @@ var Scholar = new function(){ this.randomString = randomString; this.getRandomID = getRandomID; this.moveToUnique = moveToUnique; + this.strToDate = strToDate; // Public properties this.version; this.platform; + this.isMac; /* * Initialize the extension @@ -424,6 +426,91 @@ var Scholar = new function(){ file.moveTo(newFile.parent, newName); return file; } + + /* + * converts a string to an object containing: + * day: integer form of the day + * month: integer form of the month (indexed from 0, not 1) + * year: 4 digit year (or, year + BC/AD/etc.) + * part: anything that does not fall under any of the above categories + * (e.g., "Summer," etc.) + */ + function strToDate(string) { + var date = new Object(); + + // skip empty things + if(!string) { + return date; + } + + // get short month strings from CSL interpreter + var months = CSL.getMonthStrings("short"); + + string = string.replace(/^\s+/, "").replace(/\s+$/, "").replace(/\s+/, " "); + + var dateRe = /^([0-9]{4})[\-\/]([0-9]{2})[\-\/]([0-9]{2})$/; + var m = dateRe.exec(string); + if(m) { // sql date + Scholar.debug("DATE: used form 1: SQL"); + var jsDate = new Date(m[1], m[2]-1, m[3], false, false, false); + } else { // not an sql date + var yearRe = /^((?:circa |around |about |c\.? ?)[0-9]{1,4}(?: ?B\.? ?C\.?(?: ?E\.?)?| ?C\.? ?E\.?| ?A\.? ?D\.?)|[0-9]{4})$/i; + if(yearRe.test(string)) { + // is just a year + Scholar.debug("DATE: used form 2: year-only"); + date.year = string; + return date; + } + + // who knows what this is, but try JavaScript's date handling first + var jsDate = new Date(string) + } + + if(!isNaN(jsDate.valueOf())) { + Scholar.debug("DATE: retrieved from JavaScript"); + // got a javascript date + date.year = jsDate.getFullYear(); + date.month = jsDate.getMonth(); + date.day = jsDate.getDate(); + return date; + } + + // no javascript date. time for cruder things. + + // first, see if we have anything resembling a year + var yearRe = /^(.*)\b((?:circa |around |about |c\.? ?)[0-9]{1,4}(?: ?B\.? ?C\.?(?: ?E\.?)?| ?C\.? ?E\.?| ?A\.? ?D\.?)|[0-9]{4})\b(.*)$/i; + + var m = yearRe.exec(string); + if(m) { + date.year = m[2]; + date.part = m[1]+m[3]; + Scholar.debug("DATE: got year ("+date.year+", "+date.part+")"); + + // then, see if have anything resembling a month anywhere + var monthRe = new RegExp("^(.*)\\b("+months.join("|")+")[^ ]* (.*)$", "i"); + var m = monthRe.exec(date.part); + if(m) { + date.month = months.indexOf(m[2][0].toUpperCase()+m[2].substr(1).toLowerCase()); + date.part = m[1]+m[3]; + Scholar.debug("DATE: got month ("+date.month+", "+date.part+")"); + + // then, see if there's a day + var dayRe = /^(.*)\b([0-9]{1,2})\b(.*)$/i; + var m = dayRe.exec(date.part); + if(m) { + date.day = m[2]; + date.part = m[1]+m[3]; + Scholar.debug("DATE: got day ("+date.day+", "+date.part+")"); + } + } + } + + if(date.part) { + date.part = date.part.replace(/^[^A-Za-z0-9]+/, "").replace(/[^A-Za-z0-9]+$/, ""); + } + + return date; + } }; diff --git a/chrome/chromeFiles/content/scholar/xpcom/translate.js b/chrome/chromeFiles/content/scholar/xpcom/translate.js index 50c48f57bc..42967bc612 100644 --- a/chrome/chromeFiles/content/scholar/xpcom/translate.js +++ b/chrome/chromeFiles/content/scholar/xpcom/translate.js @@ -1035,6 +1035,11 @@ Scholar.Translate.prototype._itemDone = function(item) { // makes looping through easier item.itemType = item.complete = undefined; + // automatically set access date if URL is set + if(item.url && !item.accessDate) { + item.accessDate = (new Date()).toLocaleString(); + } + var fieldID, field; for(var i in item) { // loop through item fields diff --git a/scrapers.sql b/scrapers.sql index 56b09d728b..ddec970d8c 100644 --- a/scrapers.sql +++ b/scrapers.sql @@ -1,4 +1,4 @@ --- 65 +-- 66 -- Set the following timestamp to the most recent scraper update date REPLACE INTO "version" VALUES ('repository', STRFTIME('%s', '2006-08-15 15:42:00')); @@ -6076,7 +6076,7 @@ REPLACE INTO "csl" VALUES('http://purl.org/net/xbiblio/csl/styles/apa.csl', '200 '); -REPLACE INTO "csl" VALUES('http://purl.org/net/xbiblio/csl/styles/chicago-note.csl', '2006-08-29 23:05:00', 'Chicago Manual of Style (Note)', +REPLACE INTO "csl" VALUES('http://purl.org/net/xbiblio/csl/styles/chicago-note.csl', '2006-08-30 17:40:00', 'Chicago Manual of Style (Note)', '