Remove old Commons code
This commit is contained in:
parent
43c0ae9e8a
commit
2d0874dd66
1 changed files with 25 additions and 289 deletions
|
@ -45,6 +45,30 @@ Zotero.Commons = new function() {
|
|||
return Zotero.Prefs.get("commons.secretKey");
|
||||
});
|
||||
|
||||
this.RDF_TRANSLATOR = {
|
||||
'label': 'Zotero RDF',
|
||||
'target': 'rdf',
|
||||
'translatorID': '14763d24-8ba0-45df-8f52-b8d1108e7ac9',
|
||||
'displayOptions': {
|
||||
'exportFileData': true,
|
||||
'exportNotes': true
|
||||
}
|
||||
};
|
||||
|
||||
this.RDF_IMPORT_TRANSLATOR = {
|
||||
'translatorID': '5e3ad958-ac79-463d-812b-a86a9235c28f',
|
||||
}
|
||||
|
||||
this.ERROR_BUCKET_EXISTS = 1;
|
||||
|
||||
this.refreshNeeded = true;
|
||||
|
||||
var _buckets = {};
|
||||
var _bucketsLoading = false;
|
||||
var _bucketsLoaded = false;
|
||||
var _requestingItems = false;
|
||||
|
||||
|
||||
this.getBuckets = function (callback) {
|
||||
if (!this.enabled) {
|
||||
return _buckets;
|
||||
|
@ -148,30 +172,8 @@ Zotero.Commons = new function() {
|
|||
return _buckets;
|
||||
};
|
||||
|
||||
this.RDF_TRANSLATOR = {
|
||||
'label': 'Zotero RDF',
|
||||
'target': 'rdf',
|
||||
'translatorID': '14763d24-8ba0-45df-8f52-b8d1108e7ac9',
|
||||
'displayOptions': {
|
||||
'exportFileData': true,
|
||||
'exportNotes': true
|
||||
}
|
||||
};
|
||||
|
||||
this.RDF_IMPORT_TRANSLATOR = {
|
||||
'translatorID': '5e3ad958-ac79-463d-812b-a86a9235c28f',
|
||||
}
|
||||
|
||||
this.ERROR_BUCKET_EXISTS = 1;
|
||||
|
||||
this.refreshNeeded = true;
|
||||
|
||||
var _buckets = {};
|
||||
var _bucketsLoading = false;
|
||||
var _bucketsLoaded = false;
|
||||
var _requestingItems = false;
|
||||
|
||||
|
||||
// outdated
|
||||
this.createBucket = function (item, onBucketQueued, onBucketCreated, waitForCreation) {
|
||||
var headers = {
|
||||
"x-archive-auto-make-bucket":"1",
|
||||
|
@ -290,99 +292,6 @@ Zotero.Commons = new function() {
|
|||
}
|
||||
|
||||
|
||||
this.getNewBucketName = function () {
|
||||
return "zc-" + this.accessKey + "-" + Zotero.ID.getBigInt(9999999999);
|
||||
}
|
||||
|
||||
|
||||
this.getBucketFromItem = function (item) {
|
||||
return this.getBucketFromItemID(item.id);
|
||||
}
|
||||
|
||||
|
||||
this.getBucketFromItemID = function (itemID) {
|
||||
for each(var bucket in _buckets) {
|
||||
if (bucket.item.id == itemID) {
|
||||
return bucket;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
this.uploadItems = function (ids) {
|
||||
var items = Zotero.Items.get(ids);
|
||||
if (!items) {
|
||||
Zotero.debug("No items to upload");
|
||||
return;
|
||||
}
|
||||
|
||||
var itemsToUpload = false;
|
||||
for (var i=0, len=items.length; i<len; i++) {
|
||||
if (items[i].isRegularItem()) {
|
||||
itemsToUpload = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
var pr = Components.classes["@mozilla.org/network/default-prompt;1"]
|
||||
.getService(Components.interfaces.nsIPrompt);
|
||||
|
||||
if (!itemsToUpload) {
|
||||
Zotero.debug("No regular items to upload");
|
||||
pr.alert("", "Only items with bibliographic metadata can be added to the Zotero Commons.");
|
||||
return;
|
||||
}
|
||||
|
||||
var buttonFlags = (pr.BUTTON_POS_0) * (pr.BUTTON_TITLE_IS_STRING)
|
||||
+ (pr.BUTTON_POS_1) * (pr.BUTTON_TITLE_CANCEL);
|
||||
var index = pr.confirmEx(
|
||||
"Zotero Commons Upload",
|
||||
"By uploading items to Zotero Commons you agree to the terms of use at zotero.org and archive.org. "
|
||||
+ "Please make sure metadata for your item(s) is set properly."
|
||||
+ "\n\n "
|
||||
+ "Continue to upload items to the Internet Archive?",
|
||||
buttonFlags,
|
||||
"Upload",
|
||||
null, null, null, {}
|
||||
);
|
||||
|
||||
// if user chooses 'cancel', exit
|
||||
if (index != 0) return;
|
||||
|
||||
|
||||
var progressWin = new Zotero.ProgressWindow();
|
||||
|
||||
var tmpDir = Zotero.getTempDirectory();
|
||||
|
||||
// Create buckets one at a time, pulling items off a stack
|
||||
var process = function (items) {
|
||||
if (!items.length) {
|
||||
Zotero.debug("Commons: No more items to upload");
|
||||
return;
|
||||
}
|
||||
|
||||
let item = items.shift();
|
||||
|
||||
// Skip notes and attachments
|
||||
if (!item.isRegularItem()) {
|
||||
process(items);
|
||||
return;
|
||||
}
|
||||
|
||||
// TODO: check relations table to see if this item already has a bucket
|
||||
|
||||
// TODO: localize
|
||||
progressWin.changeHeadline("Uploading Items to IA");
|
||||
progressWin.addLines([item.getField('title')], [item.getImageSrc()]);
|
||||
progressWin.show();
|
||||
|
||||
}
|
||||
|
||||
process(items);
|
||||
}
|
||||
|
||||
|
||||
this.createAuthenticatedRequest = function (method, resource, headers, accessKey, secretKey, callback, data, sendAsBinary, noCache) {
|
||||
var url = Zotero.Commons.apiUrl + resource;
|
||||
|
||||
|
@ -487,60 +396,6 @@ Zotero.Commons = new function() {
|
|||
}
|
||||
|
||||
|
||||
/*
|
||||
function _createUniqueBucket(name, callback) {
|
||||
var uploadErrorMsg = "An error occurred uploading a file to the Internet Archive";
|
||||
|
||||
var bucket = new Zotero.Commons.Bucket(name);
|
||||
|
||||
bucket.create(function (success, error) {
|
||||
if (success) {
|
||||
callback(name);
|
||||
return;
|
||||
}
|
||||
|
||||
if (error == Zotero.Commons.ERROR_BUCKET_EXISTS) {
|
||||
var maxTries = 5;
|
||||
|
||||
// Append suffixes until we find a unique name
|
||||
var checkFunc = function (name, suffix, callback) {
|
||||
var bucket = new Zotero.Commons.Bucket(name);
|
||||
bucket.create(function (success, error) {
|
||||
if (success) {
|
||||
callback(name);
|
||||
return;
|
||||
}
|
||||
|
||||
if (error == Zotero.Commons.ERROR_BUCKET_EXISTS) {
|
||||
maxTries--;
|
||||
// If we've exceeded maxTries, just use a random suffix
|
||||
if (maxTries < 1) {
|
||||
suffix = Zotero.ID.getKey();
|
||||
name = name.replace(/\-[0-9]+$/, "-" + suffix);
|
||||
callback(name);
|
||||
return;
|
||||
}
|
||||
|
||||
suffix++;
|
||||
name = name.replace(/\-[0-9]+$/, "-" + suffix);
|
||||
checkFunc(name, suffix, callback);
|
||||
return;
|
||||
}
|
||||
|
||||
alert(uploadErrorMsg);
|
||||
});
|
||||
}
|
||||
|
||||
checkFunc(name + "-1", 1, callback);
|
||||
return;
|
||||
}
|
||||
|
||||
alert(uploadErrorMsg);
|
||||
});
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
this.debug = function (message, level) {
|
||||
Zotero.debug("Commons: " + message, level);
|
||||
}
|
||||
|
@ -868,125 +723,6 @@ Zotero.Commons.Bucket.prototype.refreshItems = function (callback) {
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get OCRed PDFs from files in this bucket
|
||||
*
|
||||
* @param {Function} callback Function to run after adding each file --
|
||||
* function is passed the new attachment item
|
||||
* (which due to a Zotero.Attachments.importFromURL()
|
||||
* limitation will still be downloading)
|
||||
*/
|
||||
Zotero.Commons.Bucket.prototype.syncFiles = function (callback) {
|
||||
// Find local item if it exists
|
||||
var rels = Zotero.Relations.getByURIs(null, this.relationPredicate, this.uri);
|
||||
if (!rels.length) {
|
||||
Zotero.debug("No local items linked to URI " + this.uri);
|
||||
return;
|
||||
}
|
||||
if (rels.length > 1) {
|
||||
throw ("Commons: More than one local item linked to remote bucket " + this.name);
|
||||
}
|
||||
var item = Zotero.URI.getURIItem(rels[0].subject);
|
||||
if (!item) {
|
||||
Zotero.debug("Linked local item not found for URI " + this.uri, 2);
|
||||
return;
|
||||
}
|
||||
|
||||
// Get array of possible attachment names
|
||||
var pdfFileNames = [];
|
||||
var pdfTitles = [];
|
||||
var ids = item.getAttachments();
|
||||
for each(var id in ids) {
|
||||
var attachment = Zotero.Items.get(id);
|
||||
var fileName = attachment.getFilename();
|
||||
if (!fileName || !fileName.match(/.+\.pdf$/)) {
|
||||
continue;
|
||||
}
|
||||
pdfFileNames.push(fileName);
|
||||
pdfTitles.push(attachment.getField('title'));
|
||||
}
|
||||
|
||||
if (this._requestingItems) {
|
||||
throw ("Commons: Already requesting items for bucket");
|
||||
}
|
||||
|
||||
this._requestingItems = true;
|
||||
|
||||
var self = this;
|
||||
|
||||
// Check for a full-text ("derived" in IA terms) OCRed version of the PDF,
|
||||
// and if found add it as an attachment to the corresponding Zotero client item
|
||||
Zotero.Utilities.HTTP.doGet(this.apiURI, function(xmlhttp) {
|
||||
if (xmlhttp.status != 200) {
|
||||
Zotero.debug(xmlhttp.status);
|
||||
Zotero.debug(xmlhttp.responseText);
|
||||
alert("Error loading data from the Internet Archive");
|
||||
self._requestingItems = false;
|
||||
return;
|
||||
}
|
||||
|
||||
Zotero.debug(xmlhttp.responseText);
|
||||
|
||||
// TODO: replace original PDF?
|
||||
|
||||
var contents = xmlhttp.responseXML.getElementsByTagName("Contents");
|
||||
|
||||
// loop through files listed in bucket contents file
|
||||
for(var i=0, len=contents.length; i<len; i++) {
|
||||
var IAFileName = contents[i].getElementsByTagName('Key')[0].textContent;
|
||||
// We care only about OCRed PDFs
|
||||
if (!IAFileName.match(/\_text.pdf$/)) {
|
||||
Zotero.debug("Skipping file " + IAFileName);
|
||||
continue;
|
||||
}
|
||||
|
||||
// Check if there's a relation for this PDF
|
||||
|
||||
var IAFileURI = self.downloadURI + "/" + IAFileName;
|
||||
var rels = Zotero.Relations.getByURIs(null, self.relationPredicate, IAFileURI);
|
||||
if (rels.length) {
|
||||
Zotero.debug("Commons: " + IAFileName + " has already been downloaded -- skipping");
|
||||
continue;
|
||||
}
|
||||
|
||||
var title = null;
|
||||
var baseName = null;
|
||||
for (var i in pdfFileNames) {
|
||||
var fn = pdfFileNames[i];
|
||||
var n = IAFileName.replace("_text.pdf", ".pdf");
|
||||
var pos = n.lastIndexOf(fn);
|
||||
if (pos == -1) {
|
||||
continue;
|
||||
}
|
||||
// Ignore if filename matches in the middle for some crazy reason
|
||||
if (pos + fn.length != n.length) {
|
||||
continue;
|
||||
}
|
||||
title = Zotero.localeJoin([pdfTitles[i], '(OCR)']);
|
||||
baseName = fn.match(/(.+)\.pdf/)[1];
|
||||
break;
|
||||
}
|
||||
|
||||
// If not, import PDF
|
||||
var newAttachment = Zotero.Attachments.importFromURL(
|
||||
IAFileURI, item.id, title, baseName, null, 'application/pdf'
|
||||
);
|
||||
if (!(newAttachment instanceof Zotero.Item)) {
|
||||
throw (newAttachment + " is not a Zotero.Item in Zotero.Commons.Bucket.syncFiles()");
|
||||
}
|
||||
|
||||
// Add a relation linking the new attachment to the IA file
|
||||
var uri = Zotero.URI.getItemURI(newAttachment);
|
||||
Zotero.Relations.add(null, uri, self.relationPredicate, IAFileURI);
|
||||
|
||||
callback(newAttachment);
|
||||
}
|
||||
|
||||
self._requestingItems = false;
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Zotero.Commons.Bucket.prototype.uploadItems = function (ids) {
|
||||
var items = Zotero.Items.get(ids);
|
||||
if (!items) {
|
||||
|
|
Loading…
Add table
Reference in a new issue