Skip to content

Commit

Permalink
Asyncify and improve short titles
Browse files Browse the repository at this point in the history
  • Loading branch information
adam3smith committed Apr 24, 2023
1 parent 6dcd97b commit b2fd308
Showing 1 changed file with 21 additions and 14 deletions.
35 changes: 21 additions & 14 deletions Dataverse.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
"inRepository": true,
"translatorType": 4,
"browserSupport": "gcsibv",
"lastUpdated": "2023-04-20 18:10:33"
"lastUpdated": "2023-04-24 16:02:02"
}

/*
Expand Down Expand Up @@ -68,18 +68,20 @@ function getSearchResults(doc, checkOnly) {
return found ? items : false;
}

function doWeb(doc, url) {
if (detectWeb(doc, url) == "multiple") {
Zotero.selectItems(getSearchResults(doc, false), function (items) {
if (items) ZU.processDocuments(Object.keys(items), scrape);
});
async function doWeb(doc, url) {
if (detectWeb(doc, url) == 'multiple') {
let items = await Zotero.selectItems(getSearchResults(doc, false));
if (!items) return;
for (let url of Object.keys(items)) {
await scrape(await requestDocument(url));
}
}
else {
scrape(doc, url);
await scrape(doc, url);
}
}

function scrape(doc, url) {
async function scrape(doc, url = doc.location.href) {
let jsonLD = text(doc, 'script[type="application/ld+json"]');
// Z.debug(jsonLD)
let schema = JSON.parse(jsonLD);
Expand All @@ -89,26 +91,31 @@ function scrape(doc, url) {
license = schema.license.text;
}
let version = schema.version;
var translator = Zotero.loadTranslator('web');
let translator = Zotero.loadTranslator('web');
// Embedded Metadata
translator.setTranslator('951c027d-74ac-47d4-a107-9c3069ab7b48');
translator.setDocument(doc);

translator.setHandler('itemDone', function (obj, item) {
translator.setHandler('itemDone', (_obj, item) => {
item.libraryCatalog = text(doc, '#breadcrumbLnk0');
// we commonly have two colons in titles. The first one just labels the data as data
if (/^(Replication )?[Dd]ata for:/.test(item.title)) {
item.shortTitle = item.title.match(/(^(Replication )?[Dd]ata for:.*?)(:|$)/)[1];
}
if (license) {
item.rights = ZU.cleanTags(license).trim();
}
if (version && version > 1) item.versionNumber = version;
item.complete();
});

translator.getTranslatorObject(function (trans) {
trans.itemType = datasetType;
trans.doWeb(doc, url);
});
let em = await translator.getTranslatorObject();
em.itemType = datasetType;
await em.doWeb(doc, url);
}



Check warning on line 118 in Dataverse.js

View workflow job for this annotation

GitHub Actions / Lint, Check, Test

More than 2 blank lines not allowed
/** BEGIN TEST CASES **/
var testCases = [
{
Expand Down

0 comments on commit b2fd308

Please sign in to comment.