Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
112 lines (100 sloc) 3.83 KB
{
"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 **/
You can’t perform that action at this time.