112 lines
3.8 KiB
JavaScript
112 lines
3.8 KiB
JavaScript
|
{
|
||
|
"translatorID": "0cc8e259-106e-4793-8c26-6ec8114a9160",
|
||
|
"label": "SlideShare",
|
||
|
"creator": "Michael Berkowitz",
|
||
|
"target": "^https?://[^/]*slideshare\\.net/",
|
||
|
"minVersion": "3.0",
|
||
|
"maxVersion": "",
|
||
|
"priority": 100,
|
||
|
"inRepository": true,
|
||
|
"translatorType": 4,
|
||
|
"browserSupport": "gcsibv",
|
||
|
"lastUpdated": "2017-01-01 15:33:29"
|
||
|
}
|
||
|
|
||
|
function scrape(doc, url) {
|
||
|
var item = new Zotero.Item("presentation");
|
||
|
item.title = ZU.xpathText(doc, '(//meta[@name="title" or @property="og:title"]/@content)[1]') ||
|
||
|
ZU.xpathText(doc, '/html/head/title');
|
||
|
|
||
|
var creator = ZU.xpathText(doc, '//div[@itemprop="author"]//span[@itemprop="name"]');
|
||
|
if (creator && creator.trim())
|
||
|
item.creators.push({lastName:creator.trim(), creatorType:'author'});
|
||
|
|
||
|
item.abstractNote = ZU.xpathText(doc, '//p[@id="slideshow-description-paragraph"]');
|
||
|
|
||
|
var tags = ZU.xpathText(doc, '//meta[contains(@name, "slideshow_tag")]/@content');
|
||
|
if (tags) tags = tags.split(/\s*,\s*/);
|
||
|
for (var i in tags) {
|
||
|
item.tags.push(tags[i].trim());
|
||
|
}
|
||
|
|
||
|
var rights = ZU.xpathText(doc, '//div[contains(@class, "license-container")]');
|
||
|
if (rights && rights.trim()) item.rights = rights.trim()
|
||
|
|
||
|
item.type = ZU.xpathText(doc, '//div[contains(@class, "categories-container")]//a[1]');
|
||
|
|
||
|
var date = ZU.xpathText(doc, '//meta[@property = "slideshare:created_at"]/@content');
|
||
|
if (date) item.date = date;
|
||
|
item.url = url;
|
||
|
item.libraryCatalog = "SlideShare";
|
||
|
|
||
|
var loggedin = !doc.getElementById('login_link');
|
||
|
var pdfurl = ZU.xpathText(doc, '//li[@class="action-download"]/a/@href');
|
||
|
if (loggedin && pdfurl) {
|
||
|
//is this always pdf?
|
||
|
item.attachments.push({url:pdfurl, title:"SlideShare Slide Show", mimeType:"application/pdf"});
|
||
|
}
|
||
|
|
||
|
item.complete();
|
||
|
}
|
||
|
|
||
|
function detectWeb(doc, url) {
|
||
|
if (url.indexOf("/search/") != -1 &&
|
||
|
ZU.xpath(doc, '//div[contains(@class, "searchResults")]\
|
||
|
//div[./a[contains(@class, "slideshow-title")]]').length) {
|
||
|
return "multiple";
|
||
|
} else if ((ZU.xpathText(doc, '//meta[@name="og_type"]/@content') && ZU.xpathText(doc, '//meta[@name="og_type"]/@content') == 'article') || (ZU.xpathText(doc, '//meta[@name="og_type"]/@content') && ZU.xpathText(doc, '//meta[@name="og_type"]/@content').search(/presentation/)!=-1)) {
|
||
|
return "presentation";
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function doWeb(doc, url) {
|
||
|
if (detectWeb(doc, url) == "multiple") {
|
||
|
var links = ZU.xpath(doc,'//div[contains(@class, "searchResults")]\
|
||
|
//div[./a[contains(@class, "title-link")]]');
|
||
|
Zotero.selectItems( ZU.getItemArray(doc, links, 'from_search=', null),
|
||
|
function(items) {
|
||
|
if (!items) return true;
|
||
|
|
||
|
var shows = new Array();
|
||
|
for (var i in items) {
|
||
|
shows.push(i);
|
||
|
}
|
||
|
ZU.processDocuments(shows, scrape)
|
||
|
});
|
||
|
} else {
|
||
|
scrape(doc, url);
|
||
|
}
|
||
|
}
|
||
|
/** BEGIN TEST CASES **/
|
||
|
var testCases = [
|
||
|
{
|
||
|
"type": "web",
|
||
|
"url": "https://www.slideshare.net/eby/zotero-and-you-or-bibliography-on-the-semantic-web",
|
||
|
"items": [
|
||
|
{
|
||
|
"itemType": "presentation",
|
||
|
"title": "Zotero and You, or Bibliography on the Semantic Web",
|
||
|
"creators": [
|
||
|
{
|
||
|
"lastName": "eby",
|
||
|
"creatorType": "author"
|
||
|
}
|
||
|
],
|
||
|
"date": "2008-03-06 10:51:58 UTC",
|
||
|
"abstractNote": "Representatives from the Center for History and New Media will introduce Zotero, a free and open source extension for Firefox that allows you to collect, organize and archive your research materials. After a brief demo and explanation, we will discuss best practices for making your projects \"Zotero ready\" and other opportunities to integrate with your digital projects through the Zotero API.",
|
||
|
"presentationType": "Business",
|
||
|
"url": "https://www.slideshare.net/eby/zotero-and-you-or-bibliography-on-the-semantic-web",
|
||
|
"attachments": [],
|
||
|
"tags": [],
|
||
|
"notes": [],
|
||
|
"seeAlso": []
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"type": "web",
|
||
|
"url": "https://www.slideshare.net/search/slideshow?searchfrom=header&q=zotero",
|
||
|
"items": "multiple"
|
||
|
}
|
||
|
]
|
||
|
/** END TEST CASES **/
|