Permalink
Join GitHub today
GitHub is home to over 36 million developers working together to host and review code, manage projects, and build software together.
Sign up
Fetching contributors…
Cannot retrieve contributors at this time
{ | |
"translatorID": "6f9aa90d-6631-4459-81ef-a0758d2e3921", | |
"label": "Blogger", | |
"creator": "Adam Crymble", | |
"target": "\\.blogspot\\.com", | |
"minVersion": "3.0", | |
"maxVersion": "", | |
"priority": 100, | |
"inRepository": true, | |
"translatorType": 4, | |
"browserSupport": "gcsibv", | |
"lastUpdated": "2016-09-05 23:14:05" | |
} | |
function detectWeb(doc, url) { | |
var result = doc.evaluate('//h3[contains(@class,"post-title") and contains(@class,"entry-title")]', doc, null, XPathResult.ANY_TYPE, null); | |
var entry = result.iterateNext(); | |
if (entry && result.iterateNext()) { | |
return "multiple"; | |
} else if (entry) { | |
return "blogPost"; | |
} else { | |
return false; | |
} | |
} | |
function getSearchResults(doc, checkOnly) { | |
var items = {}; | |
var found = false; | |
var rows = ZU.xpath(doc, '//h3[@class="post-title entry-title"]/a|//li[@class="archivedate expanded"]/ul[@class="posts"]/li/a'); | |
for (var i=0; i<rows.length; i++) { | |
var href = rows[i].href; | |
var title = ZU.trimInternal(rows[i].textContent); | |
if (!href || !title) continue; | |
if (checkOnly) return true; | |
found = true; | |
items[href] = title; | |
} | |
return found ? items : false; | |
} | |
//Blogger translator. Code by Adam Crymble | |
function scrape(doc, url) { | |
var tagsContent = new Array(); | |
var newItem = new Zotero.Item("blogPost"); | |
//title | |
if (ZU.xpathText(doc, '//h3[@class="post-title entry-title"]/a')) { | |
newItem.title = ZU.xpathText(doc, '//h3[@class="post-title entry-title"]/a'); | |
} else { | |
newItem.title = doc.title; | |
} | |
//author, if available | |
if (ZU.xpathText(doc, '//span[@class="post-author vcard"]//span[@class="fn"]')) { | |
var author = ZU.xpathText(doc, '//span[@class="post-author vcard"]//span[@class="fn"]').trim(); | |
var author = author.toLowerCase(); | |
if (author.match(/\sby\s/)) { | |
var shortenAuthor = author.indexOf(" by"); | |
author = author.substr(shortenAuthor + 3).replace(/^\s*|\s$/g, ''); | |
} | |
var words = author.split(/\s/); | |
for (var i in words) { | |
words[i] = words[i].substr(0, 1).toUpperCase() + words[i].substr(1).toLowerCase(); | |
} | |
author = words.join(" "); | |
newItem.creators.push(Zotero.Utilities.cleanAuthor(author, "author")); | |
} | |
//date, if available | |
newItem.date = ZU.xpathText(doc, '//h2[@class="date-header"]'); | |
//tags, if available | |
var tags = ZU.xpath(doc, '//span[@class="post-labels"]/a'); | |
for (var i = 0; i < tags.length; i++) { | |
newItem.tags.push(tags[i].textContent); | |
} | |
var blogTitle1 = doc.title.split(":"); | |
var cleanurl = url.replace(/[\?#].+/, ""); | |
newItem.blogTitle = blogTitle1[0]; | |
newItem.url=cleanurl; | |
newItem.attachments = [{url:cleanurl, title:"Blogspot Snapshot", mimeType: "text/html"}]; | |
newItem.complete(); | |
} | |
function doWeb(doc, url) { | |
var articles = new Array(); | |
if (detectWeb(doc, url) == "multiple") { | |
Zotero.selectItems(getSearchResults(doc, false), function(items) { | |
if (!items) { | |
return true; | |
} | |
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": "http://observationalepidemiology.blogspot.com/2011/10/tweet-from-matt-yglesias.html", | |
"items": [ | |
{ | |
"itemType": "blogPost", | |
"title": "A tweet from Matt Yglesias", | |
"creators": [ | |
{ | |
"firstName": "", | |
"lastName": "Joseph", | |
"creatorType": "author" | |
} | |
], | |
"date": "Monday, October 24, 2011", | |
"accessDate": "CURRENT_TIMESTAMP", | |
"blogTitle": "West Coast Stat Views (on Observational Epidemiology and more)", | |
"libraryCatalog": "Blogger", | |
"url": "http://observationalepidemiology.blogspot.com/2011/10/tweet-from-matt-yglesias.html", | |
"attachments": [ | |
{ | |
"title": "Blogspot Snapshot", | |
"mimeType": "text/html" | |
} | |
], | |
"tags": [ | |
"Mark", | |
"Matthew Yglesias" | |
], | |
"notes": [], | |
"seeAlso": [] | |
} | |
] | |
}, | |
{ | |
"type": "web", | |
"url": "http://observationalepidemiology.blogspot.com/", | |
"items": "multiple" | |
}, | |
{ | |
"type": "web", | |
"url": "http://argentina-politica.blogspot.com/2012/03/perciben-una-caida-en-la-imagen-de-la.html", | |
"items": [ | |
{ | |
"itemType": "blogPost", | |
"title": "Politica Argentina - Blog de Psicología Política de Federico González: Perciben una caída en la imagen de la Presidenta", | |
"creators": [ | |
{ | |
"firstName": "Federico", | |
"lastName": "Gonzalez", | |
"creatorType": "author" | |
} | |
], | |
"date": "domingo, 11 de marzo de 2012", | |
"blogTitle": "Politica Argentina - Blog de Psicología Política de Federico González", | |
"shortTitle": "Politica Argentina - Blog de Psicología Política de Federico González", | |
"url": "http://argentina-politica.blogspot.com/2012/03/perciben-una-caida-en-la-imagen-de-la.html", | |
"attachments": [ | |
{ | |
"title": "Blogspot Snapshot", | |
"mimeType": "text/html" | |
} | |
], | |
"tags": [ | |
"Cristina Kirchner", | |
"imagen" | |
], | |
"notes": [], | |
"seeAlso": [] | |
} | |
] | |
}, | |
{ | |
"type": "web", | |
"url": "http://utotherescue.blogspot.com/2013/11/the-heart-of-matter-humanities-do-more.html", | |
"items": [ | |
{ | |
"itemType": "blogPost", | |
"title": "National Humanities Report Reinforces Stereotypes about the Humanities ~ Remaking the University", | |
"creators": [ | |
{ | |
"firstName": "Michael", | |
"lastName": "Meranze", | |
"creatorType": "author" | |
} | |
], | |
"date": "Monday, November 25, 2013", | |
"blogTitle": "National Humanities Report Reinforces Stereotypes about the Humanities ~ Remaking the University", | |
"url": "http://utotherescue.blogspot.com/2013/11/the-heart-of-matter-humanities-do-more.html", | |
"attachments": [ | |
{ | |
"title": "Blogspot Snapshot", | |
"mimeType": "text/html" | |
} | |
], | |
"tags": [ | |
"Cuts", | |
"Development", | |
"Humanities", | |
"Liberal Arts", | |
"guest post" | |
], | |
"notes": [], | |
"seeAlso": [] | |
} | |
] | |
}, | |
{ | |
"type": "web", | |
"url": "https://jamsubuntu.blogspot.com/2009/01/unmount-command-not-found.html", | |
"items": [ | |
{ | |
"itemType": "blogPost", | |
"title": "Jam's Ubuntu Linux Blog: unmount: command not found", | |
"creators": [], | |
"date": "Wednesday, 7 January 2009", | |
"blogTitle": "Jam's Ubuntu Linux Blog", | |
"shortTitle": "Jam's Ubuntu Linux Blog", | |
"url": "https://jamsubuntu.blogspot.com/2009/01/unmount-command-not-found.html", | |
"attachments": [ | |
{ | |
"title": "Blogspot Snapshot", | |
"mimeType": "text/html" | |
} | |
], | |
"tags": [ | |
"Command Line" | |
], | |
"notes": [], | |
"seeAlso": [] | |
} | |
] | |
} | |
] | |
/** END TEST CASES **/ |