diff --git a/chrome/content/zotero/xpcom/translate.js b/chrome/content/zotero/xpcom/translate.js
index 1c365f2b5..9206f36ad 100644
--- a/chrome/content/zotero/xpcom/translate.js
+++ b/chrome/content/zotero/xpcom/translate.js
@@ -1026,8 +1026,7 @@ Zotero.Translate.prototype._itemTagsAndSeeAlso = function(item, newItem) {
} else if(typeof(tag) == "object") {
// also accept objects
if(tag.tag) {
- var type = (tag.isAutomatic ? 1 : 0);
- newItem.addTag(tag.tag, type);
+ newItem.addTag(tag.tag, tag.type ? tag.type : 0);
}
}
}
@@ -1302,8 +1301,12 @@ Zotero.Translate.prototype._itemDone = function(item, attachedTo) {
} else if(typeof(tag) == "object") {
// also accept objects
if(tag.tag) {
- var type = (tag.isAutomatic ? 1 : 0);
- newItem.addTag(tag.tag, type);
+ if(this.type == "import") {
+ newItem.addTag(tag.tag, tag.type ? tag.type : 0);
+ } else {
+ // force web imports to automatic
+ newItem.addTag(tag.tag, 1);
+ }
}
}
}
@@ -1416,7 +1419,7 @@ Zotero.Translate.prototype._import = function() {
*/
Zotero.Translate.prototype._importConfigureIO = function() {
if(this._storage) {
- if(this.configOptions.dataMode == "rdf") {
+ if(this.configOptions.dataMode && this.configOptions.dataMode == "rdf") {
this._rdf = new Object();
// read string out of storage stream
@@ -1440,7 +1443,7 @@ Zotero.Translate.prototype._importConfigureIO = function() {
} else {
var me = this;
- if(this.configOptions.dataMode == "rdf") {
+ if(this.configOptions.dataMode && this.configOptions.dataMode == "rdf") {
if(!this._rdf) {
this._rdf = new Object()
@@ -1500,7 +1503,7 @@ Zotero.Translate.prototype._importConfigureIO = function() {
}
var str = new Object();
- if(this.configOptions.dataMode == "line") { // line by line reading
+ if(this.configOptions.dataMode && this.configOptions.dataMode == "line") { // line by line reading
this._inputStream.QueryInterface(Components.interfaces.nsILineInputStream);
this._sandbox.Zotero.read = function() {
@@ -1722,7 +1725,7 @@ Zotero.Translate.prototype._exportConfigureIO = function() {
// attach to stack of streams to close at the end
this._streams.push(fStream);
- if(this.configOptions.dataMode == "rdf") { // rdf io
+ if(this.configOptions.dataMode && this.configOptions.dataMode == "rdf") { // rdf io
this._rdf = new Object();
// create data source
@@ -1914,7 +1917,7 @@ Zotero.Translate.prototype._exportGetCollection = function() {
*/
Zotero.Translate.prototype._initializeInternalIO = function() {
if(this.type == "import" || this.type == "export") {
- if(this.configOptions.dataMode == "rdf") {
+ if(this.configOptions.dataMode && this.configOptions.dataMode == "rdf") {
this._rdf = new Object();
// use an in-memory data source for internal IO
this._rdf.dataSource = Components.classes["@mozilla.org/rdf/datasource;1?name=in-memory-datasource"].
@@ -1950,7 +1953,7 @@ Zotero.Translate.prototype._storageFunctions = function(read, write) {
if(read) {
// set up read methods
- if(this.configOptions.dataMode == "line") { // line by line reading
+ if(this.configOptions.dataMode && this.configOptions.dataMode == "line") { // line by line reading
var lastCharacter;
this._sandbox.Zotero.read = function() {
diff --git a/scrapers.sql b/scrapers.sql
index ef7681f27..02185371e 100644
--- a/scrapers.sql
+++ b/scrapers.sql
@@ -1,4 +1,4 @@
--- 193
+-- 194
-- ***** BEGIN LICENSE BLOCK *****
--
@@ -7048,7 +7048,7 @@ REPLACE INTO translators VALUES ('af4cf622-eaca-450b-bd45-0f4ba345d081', '1.0.0b
Zotero.wait();
}');
-REPLACE INTO translators VALUES ('0e2235e7-babf-413c-9acf-f27cce5f059c', '1.0.0b3.r1', '', '2007-03-22 14:50:00', 1, 50, 3, 'MODS', 'Simon Kornblith', 'xml',
+REPLACE INTO translators VALUES ('0e2235e7-babf-413c-9acf-f27cce5f059c', '1.0.0b3.r1', '', '2007-03-22 15:55:00', 1, 50, 3, 'MODS', 'Simon Kornblith', 'xml',
'Zotero.addOption("exportNotes", true);
function detectImport() {
@@ -7314,7 +7314,7 @@ function doExport() {
/** TAGS **/
for(var j in item.tags) {
- mods.subject += {item.tags[j]};
+ mods.subject += {item.tags[j].tag};
}
@@ -7651,7 +7651,7 @@ function doImport() {
}
}');
-REPLACE INTO translators VALUES ('14763d24-8ba0-45df-8f52-b8d1108e7ac9', '1.0.0b4.r1', '', '2007-03-16 23:28:15', 1, 25, 2, 'Zotero RDF', 'Simon Kornblith', 'rdf',
+REPLACE INTO translators VALUES ('14763d24-8ba0-45df-8f52-b8d1108e7ac9', '1.0.0b4.r1', '', '2007-03-22 15:55:00', 1, 25, 2, 'Zotero RDF', 'Simon Kornblith', 'rdf',
'Zotero.configure("getCollections", true);
Zotero.configure("dataMode", "rdf");
Zotero.addOption("exportNotes", true);
@@ -7680,8 +7680,18 @@ function generateSeeAlso(resource, seeAlso) {
}
function generateTags(resource, tags) {
- for(var j in tags) {
- Zotero.RDF.addStatement(resource, n.dc+"subject", tags[j], true);
+ Zotero.debug("processing tags");
+ for each(var tag in tags) {
+ if(tag.type == 1) {
+ var tagResource = Zotero.RDF.newResource();
+ // set tag type and value
+ Zotero.RDF.addStatement(tagResource, rdf+"type", n.z+"AutomaticTag", false);
+ Zotero.RDF.addStatement(tagResource, rdf+"value", tag.tag, true);
+ // add relationship to resource
+ Zotero.RDF.addStatement(resource, n.dc+"subject", tagResource, false);
+ } else {
+ Zotero.RDF.addStatement(resource, n.dc+"subject", tag.tag, true);
+ }
}
}
@@ -7902,8 +7912,8 @@ function generateItem(item, zoteroType, resource) {
}
// seeAlso and tags
- if(item.seeAlso) generateSeeAlso(resource, value);
- if(item.tags) generateTags(resource, value);
+ if(item.seeAlso) generateSeeAlso(resource, item.seeAlso);
+ if(item.tags) generateTags(resource, item.tags);
for(var property in item.uniqueFields) {
var value = item[property];
@@ -8192,7 +8202,7 @@ REPLACE INTO translators VALUES ('6e372642-ed9d-4934-b5d1-c11ac758ebb7', '1.0.0b
}
}');
-REPLACE INTO translators VALUES ('5e3ad958-ac79-463d-812b-a86a9235c28f', '1.0.0b3.r1', '', '2007-03-16 23:28:15', 1, 100, 1, 'RDF', 'Simon Kornblith', 'rdf',
+REPLACE INTO translators VALUES ('5e3ad958-ac79-463d-812b-a86a9235c28f', '1.0.0b3.r1', '', '2007-03-22 15:55:00', 1, 100, 1, 'RDF', 'Simon Kornblith', 'rdf',
'Zotero.configure("dataMode", "rdf");
function detectImport() {
@@ -8325,6 +8335,15 @@ function processTags(node, newItem) {
for each(var subject in subjects) {
if(typeof(subject) == "string") { // a regular tag
newItem.tags.push(subject);
+ } else {
+ // a call number
+ var type = Zotero.RDF.getTargets(subject, rdf+"type");
+ if(type) {
+ type = Zotero.RDF.getResourceURI(type[0]);
+ if(type == n.z+"AutomaticTag") {
+ newItem.tags.push({tag:getFirstResults(subject, [rdf+"value"], true), type:1});
+ }
+ }
}
}
}
@@ -8674,12 +8693,14 @@ function importItem(newItem, node, type) {
for each(var subject in subjects) {
if(typeof(subject) == "string") { // a regular tag
newItem.tags.push(subject);
- } else { // a call number
+ } else { // a call number or automatic tag
var type = Zotero.RDF.getTargets(subject, rdf+"type");
if(type) {
type = Zotero.RDF.getResourceURI(type[0]);
if(Zotero.Utilities.inArray(type, callNumberTypes)) {
newItem.callNumber = getFirstResults(subject, [rdf+"value"], true);
+ } else if(type == n.z+"AutomaticTag") {
+ newItem.tags.push({tag:getFirstResults(subject, [rdf+"value"], true), type:1});
}
}
}
@@ -8763,7 +8784,7 @@ function doImport() {
}
}');
-REPLACE INTO translators VALUES ('32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7', '1.0.0b3.r1', '', '2007-03-20 17:45:00', '1', '100', '3', 'RIS', 'Simon Kornblith', 'ris',
+REPLACE INTO translators VALUES ('32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7', '1.0.0b3.r1', '', '2007-03-22 15:55:00', '1', '100', '3', 'RIS', 'Simon Kornblith', 'ris',
'Zotero.configure("dataMode", "line");
Zotero.addOption("exportNotes", true);
@@ -9152,8 +9173,8 @@ function doExport() {
}
// tags
- for(var j in item.tags) {
- addTag("KY", item.tags[j]);
+ for each(var tag in item.tags) {
+ addTag("KW", tag.tag);
}
// pages
@@ -9182,7 +9203,7 @@ function doExport() {
}
}');
-REPLACE INTO translators VALUES ('881f60f2-0802-411a-9228-ce5f47b64c7d', '1.0.0b3.r1', '', '2007-03-21 18:00:00', 1, 100, 3, 'EndNote/Refer/BibIX', 'Simon Kornblith', 'txt',
+REPLACE INTO translators VALUES ('881f60f2-0802-411a-9228-ce5f47b64c7d', '1.0.0b3.r1', '', '2007-03-22 15:55:00', 1, 100, 3, 'EndNote/Refer/BibIX', 'Simon Kornblith', 'txt',
'Zotero.configure("dataMode", "line");
function detectImport() {
@@ -9439,13 +9460,17 @@ function doExport() {
// tags
if(item.tags) {
- addTag("K", item.tags.join("\r\n"));
+ var keywordTag = "";
+ for each(var tag in item.tags) {
+ keywordTag += "\r\n"+tag.tag;
+ }
+ addTag("K", keywordTag.substr(2));
}
Zotero.write("\r\n");
}
}');
-REPLACE INTO translators VALUES ('9cb70025-a888-4a29-a210-93ec52da40d4', '1.0.0b3.r1', '', '2007-03-21 18:05:00', 1, 100, 3, 'BibTeX', 'Simon Kornblith', 'bib',
+REPLACE INTO translators VALUES ('9cb70025-a888-4a29-a210-93ec52da40d4', '1.0.0b3.r1', '', '2007-03-22 15:55:00', 1, 100, 3, 'BibTeX', 'Simon Kornblith', 'bib',
'Zotero.configure("dataMode", "block");
function detectImport() {
@@ -9957,7 +9982,11 @@ function doExport() {
}
if(item.tags && item.tags.length) {
- writeField("keywords", item.tags.join(","));
+ var tagString = "";
+ for each(var tag in item.tags) {
+ tagString += ","+tag.tag;
+ }
+ writeField("keywords", tagString.substr(1));
}
if(item.pages) {
writeField("pages", item.pages);
@@ -9967,7 +9996,7 @@ function doExport() {
}
}');
-REPLACE INTO translators VALUES ('a6ee60df-1ddc-4aae-bb25-45e0537be973', '1.0.0b3.r1', '', '2007-03-22 15:00:00', 1, 100, 1, 'MARC', 'Simon Kornblith', 'marc',
+REPLACE INTO translators VALUES ('a6ee60df-1ddc-4aae-bb25-45e0537be973', '1.0.0b3.r1', '', '2007-03-22 15:55:00', 1, 100, 1, 'MARC', 'Simon Kornblith', 'marc',
'function detectImport() {
var marcRecordRegexp = /^[0-9]{5}[a-z ]{3}$/
var read = Zotero.read(8);