zotero/translators/The Economist.js

208 lines
5.5 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"translatorID": "6ec8008d-b206-4a4c-8d0a-8ef33807703b",
"label": "The Economist",
"creator": "Michael Berkowitz",
"target": "^https?://(www\\.)?economist\\.com/",
"minVersion": "3.0",
"maxVersion": "",
"priority": 100,
"inRepository": true,
"translatorType": 4,
"browserSupport": "gcsibv",
"lastUpdated": "2020-10-31 11:08:32"
}
function detectWeb(doc, url) {
var m = url.match(/^https?:\/\/[^/]+\/[^/]*\/[^/]*\/\d+/);
//Z.debug(m)
if (url.includes('/node/') || m) {
return "magazineArticle";
}
if (getSearchResults(doc, url, true)) {
return "multiple";
}
return false;
}
function scrape(doc, url) {
var newItem = new Zotero.Item("magazineArticle");
newItem.ISSN = "0013-0613";
newItem.url = url;
newItem.publicationTitle = "The Economist";
// Headline
var title = text('h1 *[itemprop=headline]');
// As of 10/2020 these meta tags seem to be removed from the DOM after page load,
// so this won't work
if (!title) title = ZU.xpathText(doc, '//meta[@property="og:title"]/@content');
if (!title) {
try {
title = JSON.parse(text('script#__NEXT_DATA__')).props.pageProps.content.headline;
}
catch (e) {}
}
newItem.title = title;
if (doc.evaluate('//div[@class="clear"][@id="pay-barrier"]/div[@class="col-right"]', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) {
newItem.extra = "(Subscription only)";
newItem.complete();
return;
}
//get abstract
var abstract = ZU.xpathText(doc, '//h1[@class="rubric"]');
if (!abstract) abstract = ZU.xpathText(doc, '//*[@itemprop="description"]');
newItem.abstractNote = abstract;
//get date and extra stuff
newItem.date = ZU.xpathText(doc, '//time[@itemtype="http://schema.org/DateTime"]/@datetime');
newItem.attachments = [{
document: doc,
title: "The Economist Snapshot",
mimeType: "text/html"
}];
newItem.complete();
}
function getSearchResults(doc, url, checkOnly) {
var items = {};
var found = false;
var rows;
if (url.includes('/search?')) {
rows = ZU.xpath(doc, '//a[@class="search-result"]');
}
else {
rows = doc.querySelectorAll('a.headline-link');
}
for (let i = 0; i < rows.length; i++) {
var href = rows[i].href;
let [subhead, head] = rows[i].innerText.split(/\n/);
let title = ZU.trimInternal(subhead);
if (head) {
title = ZU.trimInternal(head) + ' — ' + title;
}
if (!href || !title) continue;
if (checkOnly) return true;
found = true;
items[href] = title;
}
return found ? items : false;
}
function doWeb(doc, url) {
if (detectWeb(doc, url) == "multiple") {
Zotero.selectItems(getSearchResults(doc, url, false), function (items) {
if (!items) {
return;
}
var articles = [];
for (var i in items) {
articles.push(i);
}
ZU.processDocuments(articles, scrape);
});
}
else {
scrape(doc, url);
}
}
/** BEGIN TEST CASES **/
var testCases = [
{
"type": "web",
"url": "https://www.economist.com/asia/2011/11/12/dreams-and-realities",
"items": [
{
"itemType": "magazineArticle",
"title": "Dreams and realities",
"creators": [],
"date": "2011-11-12T00:00:00Z",
"ISSN": "0013-0613",
"abstractNote": "A battle over American-led free trade brews in Asia",
"libraryCatalog": "The Economist",
"publicationTitle": "The Economist",
"url": "https://www.economist.com/asia/2011/11/12/dreams-and-realities",
"attachments": [
{
"title": "The Economist Snapshot",
"mimeType": "text/html"
}
],
"tags": [],
"notes": [],
"seeAlso": []
}
]
},
{
"type": "web",
"url": "https://www.economist.com/printedition/2013-12-07",
"items": "multiple"
},
{
"type": "web",
"url": "https://www.economist.com/sections/united-states",
"items": "multiple"
},
{
"type": "web",
"url": "https://www.economist.com/search?q=mannheim",
"items": "multiple"
},
{
"type": "web",
"url": "https://www.economist.com/international/2017/08/19/the-e-mail-larry-page-should-have-written-to-james-damore",
"items": [
{
"itemType": "magazineArticle",
"title": "The e-mail Larry Page should have written to James Damore",
"creators": [],
"date": "2017-08-19T00:00:00Z",
"ISSN": "0013-0613",
"abstractNote": "Last week this newspaper said Alphabets boss should write a “detailed, ringing rebuttal” of a viral anti-diversity memo sent at Google. Here is how we imagine it",
"libraryCatalog": "The Economist",
"publicationTitle": "The Economist",
"url": "https://www.economist.com/international/2017/08/19/the-e-mail-larry-page-should-have-written-to-james-damore",
"attachments": [
{
"title": "The Economist Snapshot",
"mimeType": "text/html"
}
],
"tags": [],
"notes": [],
"seeAlso": []
}
]
},
{
"type": "web",
"url": "https://www.economist.com/democracy-in-america/2017/11/15/the-justices-dive-into-new-abortion-controversy",
"items": [
{
"itemType": "magazineArticle",
"title": "The justices dive into new abortion controversy",
"creators": [],
"date": "2017-11-15T07:47:30Z",
"ISSN": "0013-0613",
"abstractNote": "Can a state require pro-life pregnancy centres to alert women of government-funded abortions?",
"libraryCatalog": "The Economist",
"publicationTitle": "The Economist",
"url": "https://www.economist.com/democracy-in-america/2017/11/15/the-justices-dive-into-new-abortion-controversy",
"attachments": [
{
"title": "The Economist Snapshot",
"mimeType": "text/html"
}
],
"tags": [],
"notes": [],
"seeAlso": []
}
]
}
]
/** END TEST CASES **/