{ "translatorID": "add79dfd-7951-4c72-af1d-ce1d50aa4fb4", "label": "informIT database", "creator": "Adam Crymble, Sebastian Karcher", "target": "^https?://www\\.informit\\.com", "minVersion": "2.1.9", "maxVersion": "", "priority": 100, "inRepository": true, "translatorType": 4, "browserSupport": "gcsibv", "lastUpdated": "2012-10-15 10:37:49" } function detectWeb(doc, url) { if (doc.title.match("Search Results")) { return "multiple"; } else if (doc.location.href.match("topics")) { return "multiple"; } else if (doc.location.href.match("product")) { return "book"; } else if (doc.location.href.match("guides")) { return "book"; } else if (doc.location.href.match("-978")) { return "book"; }else if (doc.location.href.match("library")) { return "bookSection"; } else if (doc.location.href.match(/articles\/article/)) { return "bookSection"; } } //informIT database translator. Code by Adam Crymble function scrape(doc, url) { var dataTags = new Object(); //FOR GUIDES if (doc.location.href.match("guides")) { var newItem = new Zotero.Item("book"); newItem.title = doc.evaluate('//h1', doc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent; var authors = doc.evaluate('//div[@class="titling"]/p/a', doc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent; } //FOR ARTICLES if (doc.location.href.match(/articles\/article/)) { var newItem = new Zotero.Item("bookSection"); var contents = doc.evaluate('//div[@id="articleHeader"]/ul/li', doc, null, XPathResult.ANY_TYPE, null); var xPathCount = doc.evaluate('count (//div[@id="articleHeader"]/ul/li)', doc, null, XPathResult.ANY_TYPE, null); var authors = contents.iterateNext().textContent.substr(3); if (doc.evaluate('//div[@class="relatedBook"]/p/a', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) { newItem.bookTitle = doc.evaluate('//div[@class="relatedBook"]/p/a', doc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent; } newItem.date = contents.iterateNext().textContent; var rights1; if (xPathCount.numberValue> 2) { newItem.rights = contents.iterateNext().textContent; } newItem.title = doc.evaluate('//h1', doc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent; } else if (doc.evaluate('//ul[@class="bibliography"]/li', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) { //FOR STORE BOOKS var newItem = new Zotero.Item("book"); var contents = doc.evaluate('//ul[@class="bibliography"]/li', doc, null, XPathResult.ANY_TYPE, null); var xPathCount = doc.evaluate('count (//ul[@class="bibliography"]/li)', doc, null, XPathResult.ANY_TYPE, null); for (i=0; i0 && noMoreAuthor != 1) { for (var i = 0; i < authors.length; i++) { newItem.creators.push(Zotero.Utilities.cleanAuthor(authors[i], "author")); } } newItem.url = doc.location.href; if (newItem.publisher) newItem.publisher = Zotero.Utilities.trimInternal(newItem.publisher); newItem.complete(); } function doWeb(doc, url) { var articles = new Array(); if (detectWeb(doc, url) == "multiple") { var items = new Object(); var next_title; //xPath for Topics pages, else xPaths for regular search pages. if (doc.location.href.match("topics")) { var titles = doc.evaluate('//div[@class="productList articles"]/dl/dt/a', doc, null, XPathResult.ANY_TYPE, null); } else { var titles = doc.evaluate('//div[@class="searchresult"]/ul/li/a', doc, null, XPathResult.ANY_TYPE, null); var chapters = doc.evaluate('//dt/a', doc, null, XPathResult.ANY_TYPE, null); } while (next_title = titles.iterateNext()) { items[next_title.href] = next_title.textContent; } if (doc.title.match("Search Results")) { while (next_title = chapters.iterateNext()) { items[next_title.href] = next_title.textContent; } } Zotero.selectItems(items, function (items) { if (!items) { return true; } for (var i in items) { articles.push(i); } Zotero.Utilities.processDocuments(articles, scrape, function () {}); }); } else { scrape(doc, url) } } /** BEGIN TEST CASES **/ var testCases = [ { "type": "web", "url": "http://www.informit.com/articles/article.aspx?p=1756412", "items": [ { "itemType": "bookSection", "creators": [ { "firstName": "Jeffrey", "lastName": "Hughes", "creatorType": "author" } ], "notes": [], "tags": [], "seeAlso": [], "attachments": [], "date": "Nov 3, 2011", "title": "Your iPhone and iPad App Marketing Strategy: Grand Slam or Base Hits?", "url": "http://www.informit.com/articles/article.aspx?p=1756412", "libraryCatalog": "informIT database", "accessDate": "CURRENT_TIMESTAMP", "shortTitle": "Your iPhone and iPad App Marketing Strategy" } ] }, { "type": "web", "url": "http://www.informit.com/store/marketing-your-new-business-9780132371780", "items": [ { "itemType": "book", "creators": [ { "firstName": "Bruce", "lastName": "Barringer", "creatorType": "author" } ], "notes": [], "tags": [], "seeAlso": [], "attachments": [], "date": "Aug 12, 2010", "publisher": "FT Press. Part of the FT Press Delivers Elements series.", "numPages": "8", "edition": "1st", "ISBN": "0-13-237178-2, 978-0-13-237178-0", "title": "Marketing Your New Business", "url": "http://www.informit.com/store/marketing-your-new-business-9780132371780", "libraryCatalog": "informIT database", "accessDate": "CURRENT_TIMESTAMP" } ] }, { "type": "web", "url": "http://www.informit.com/search/index.aspx?query=marketing&imageField.x=0&imageField.y=0", "items": "multiple" } ] /** END TEST CASES **/