www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | Submodules | README | LICENSE

commit d662466ff614dc29cd33810b388aff528f9fef9c
parent a2e1a83de7dd813c4223db4108d69c811bf56f16
Author: Dan Stillman <dstillman@zotero.org>
Date:   Mon,  1 Sep 2008 06:09:56 +0000

Merged revisions 3306,3309 from 1.0 branch via svnmerge


Diffstat:
Mchrome/content/zotero/xpcom/zotero.js | 68--------------------------------------------------------------------
Mcomponents/zotero-protocol-handler.js | 36++++++++++++++++++------------------
Mscrapers.sql | 5+++--
3 files changed, 21 insertions(+), 88 deletions(-)

diff --git a/chrome/content/zotero/xpcom/zotero.js b/chrome/content/zotero/xpcom/zotero.js @@ -43,8 +43,6 @@ var Zotero = new function(){ this.getStorageDirectory = getStorageDirectory; this.getZoteroDatabase = getZoteroDatabase; this.getTempDirectory = getTempDirectory; - this.convertChromeURLToFile = convertChromeURLToFile; - this.convertChromeURLToFileURL = convertChromeURLToFileURL; this.chooseZoteroDirectory = chooseZoteroDirectory; this.debug = debug; this.log = log; @@ -397,72 +395,6 @@ var Zotero = new function(){ } - /** - * Get a file from a chrome://zotero URL - * - * Currently only works for skin URLs - * - * @param {String} chromeURI - * @return {nsIFile} - */ - function convertChromeURLToFile(chromeURL) { - var ios = Components.classes["@mozilla.org/network/io-service;1"]. - getService(Components.interfaces.nsIIOService); - var uri = ios.newURI(chromeURL, null, null); - uri.QueryInterface(Components.interfaces.nsIStandardURL); - - if (uri.scheme != 'chrome') { - throw ("URI " + uri.spec + - " not a chrome URI in Zotero.convertChromeURLToFileURL()"); - } - - if (uri.host != 'zotero') { - throw ("URI " + uri.spec + - " not a Zotero chrome URI in Zotero.convertChromeURLToFileURL()"); - } - - var parts = uri.path.substr(1).split('/'); - - // Auto-expand URL if necessary - var chromeReg = Components.classes["@mozilla.org/chrome/chrome-registry;1"] - .getService(Components.interfaces.nsIChromeRegistry); - uri = chromeReg.convertChromeURL(uri); - - var file = this.getInstallDirectory(); - file.append('chrome'); - - switch (parts[0]) { - case 'skin': - file.append('skin'); - file.append('default'); - file.append('zotero'); - - for (var i=1; i<parts.length; i++) { - file.append(parts[i]); - } - break; - - default: - throw ("Chrome URI part '" + parts[0] - + "' not implemented in Zotero.convertChromeURLToFileURL()") - } - - return file; - } - - - /** - * @param {String} chromeURI - * @return {nsIURL} file:// nsIURL - */ - function convertChromeURLToFileURL(chromeURL) { - var ios = Components.classes["@mozilla.org/network/io-service;1"]. - getService(Components.interfaces.nsIIOService); - var file = this.convertChromeURLToFile(chromeURL); - return ios.newFileURI(file).spec; - } - - function chooseZoteroDirectory(forceRestartNow, useProfileDir) { var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"] .getService(Components.interfaces.nsIWindowMediator); diff --git a/components/zotero-protocol-handler.js b/components/zotero-protocol-handler.js @@ -647,41 +647,41 @@ function ChromeExtensionHandler() { // Proxy annotation icons if (id.match(/^annotation.*\.(png|html|css|gif)$/)) { var chromeURL = 'chrome://zotero/skin/' + id; - var file = Zotero.convertChromeURLToFile(chromeURL); - if (!file.exists()) { - Zotero.debug(file.path + " not found"); - Components.utils.reportError(file.path + " not found"); - return _errorChannel("File not found"); - } + var ios = Components.classes["@mozilla.org/network/io-service;1"]. + getService(Components.interfaces.nsIIOService); + var uri = ios.newURI(chromeURL, null, null); + var chromeReg = Components.classes["@mozilla.org/chrome/chrome-registry;1"] + .getService(Components.interfaces.nsIChromeRegistry); + var fileURI = chromeReg.convertChromeURL(uri); } else { return _errorChannel("Attachment id not an integer"); } } - if (!file) { + if (!fileURI) { var item = Zotero.Items.get(id); if (!item) { return _errorChannel("Item not found"); } var file = item.getFile(); - } - - if (!file) { - return _errorChannel("File not found"); - } - - if (fileName) { - file = file.parent; - file.append(fileName); - if (!file.exists()) { + if (!file) { return _errorChannel("File not found"); } + if (fileName) { + file = file.parent; + file.append(fileName); + if (!file.exists()) { + return _errorChannel("File not found"); + } + } } var ph = Components.classes["@mozilla.org/network/protocol;1?name=file"]. createInstance(Components.interfaces.nsIFileProtocolHandler); - var fileURI = ph.newFileURI(file); + if (!fileURI) { + var fileURI = ph.newFileURI(file); + } var channel = ioService.newChannelFromURI(fileURI); return channel; } diff --git a/scrapers.sql b/scrapers.sql @@ -22,7 +22,7 @@ -- Set the following timestamp to the most recent scraper update date -REPLACE INTO version VALUES ('repository', STRFTIME('%s', '2008-08-29 04:10:00')); +REPLACE INTO version VALUES ('repository', STRFTIME('%s', '2008-09-01 06:00:00')); REPLACE INTO translators VALUES ('96b9f483-c44d-5784-cdad-ce21b984fe01', '1.0.0b4.r1', '', '2008-08-22 20:30:00', '1', '100', '4', 'Amazon.com', 'Sean Takats and Michael Berkowitz', '^https?://(?:www\.)?amazon', 'function detectWeb(doc, url) { @@ -220,7 +220,7 @@ REPLACE INTO translators VALUES ('96b9f483-c44d-5784-cdad-ce21b984fe01', '1.0.0b Zotero.wait(); }'); -REPLACE INTO translators VALUES ('aee2323e-ce00-4fcc-a949-06eb1becc98f', '1.0.0b4.r1', '', '2007-08-27 05:00:00', '0', '100', '4', 'Epicurious', 'Sean Takats', '^https?://www\.epicurious\.com/(?:tools/searchresults|recipes/food/views)', +REPLACE INTO translators VALUES ('aee2323e-ce00-4fcc-a949-06eb1becc98f', '1.0.0', '', '2008-09-01 06:00:00', '0', '100', '4', 'Epicurious', 'Sean Takats', '^https?://www\.epicurious\.com/(?:tools/searchresults|recipes/food/views)', 'function detectWeb(doc, url){ var namespace = doc.documentElement.namespaceURI; var nsResolver = namespace ? function(prefix) { @@ -255,6 +255,7 @@ function scrape(doc){ var xpath = ''//title''; var title = doc.evaluate(xpath, doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent; + title = Zotero.Utilities.trimInternal(title); title = title.substring(0, title.indexOf(" Recipe at Epicurious.com")); newItem.title = title;