var sciencedirect_suite = { url: 'http://www.sciencedirect.com/science/journal/03044211/36/1', //url: 'http://www.sciencedirect.com/science?_ob=DownloadURL&_method=finish&_acct=C000054237&_userid=1694017&_hubEid=1-s2.0-S0304421100X01344&count=0&md5=ee0b1e6f1c7cb9dc0fe92991ca599c15&JAVASCRIPT_ON=Y&format=cite-abs&citation-type=RIS&RETURN_URL=http%3A%2F%2Fwww.sciencedirect.com%2Fscience%2Fhome&citation-tye=BIBTEX', noConflict: true, ready: function() { /* open up journal_ids.lst and read them in? construct urls. */ //for serializing a form $.fn.serializeObject = function() { var o = {}; var a = this.serializeArray(); $.each(a, function() { if (o[this.name] !== undefined) { if (!o[this.name].push) { o[this.name] = [o[this.name]]; } o[this.name].push(this.value || ''); } else { o[this.name] = this.value || ''; } }); return o; }; _pjs.journal_volume_scraper = function(args) { var ssin = args[0]; var page_title = $("title").text(); var page_url = document.location.href; var journal_cover_url = "http://www.sciencedirect.com" + $($("[alt=\"About this Journal\"]")[0]).attr("src"); var issue_display_data = $("#issueDisplayData").find("h2").text(); //Volume 36, Issue 1, Pages 1-86 (1984) //Volume 36, Issue 1, Pages 1-86 (January 1984) //parse the volume number, edition number, dates, page numbers in issue_display_data var pieces = issue_display_data.split(","); var volume_number = pieces[0].split(" ")[1]; var issue_number = pieces[1].substr(1).split(" ")[1]; var page_numbers = pieces[2].substr(1).split(" ")[1]; var issue_month = null; var issue_year = null; var issue_date = null; //this is probably broken? if (pieces[3] == "Issue") { issue_number = pieces[3]; page_numbers = pieces[5]; if (pieces[6] != "Pages" && pieces.length == 7 && pieces[7] != undefined && pieces[7] != null) { issue_month = pieces[6].replace("(", "").replace(")", ""); issue_year = pieces[7].replace("(", "").replace(")", ""); issue_date = (pieces[6] + " " + pieces[7]); } } //before we attempt to download bibliographic data for this volume/edition var export_citation_candidates = $("[value=Export citations]"); if (export_citation_candidates.length == 0) { return {"status": "error", "message": "unable to find an 'export citations' link on the current page", "url": page_url}; } //grab and associate bibtex var prebibtex1_form = $("form[name=Tag]"); //because i am too lazy to type up the form myself var prebibtex1_data = prebibtex1_form.serializeObject(); //include some parameters so we know which item we're processig when we're on the next page prebibtex1_data["previous_url"] = page_url; prebibtex1_data["xssin_id"] = ssin; prebibtex1_data["xvolume_number"] = volume_number; prebibtex1_data["xissue_number"] = issue_number; prebibtex1_data["xissue_year"] = issue_year; prebibtex1_data["xissue_month"] = issue_month; prebibtex1_data["xpage_numbers"] = page_numbers; prebibtex1_data["xissue_display_data"] = issue_display_data; //this one is makes sciencedirect.com do what i want prebibtex1_data["export"] = "Export citations"; //turn these into url params var prebibtex1_data1 = $.param(prebibtex1_data); var prebibtex_url = "http://www.sciencedirect.com/science?" + prebibtex1_data1; _pjs.urls.push(prebibtex_url); //check if there's a "previous issue" link and add the form target to _pjs.urls var prev_links = $("a[title=Previous volume/issue]") var prev_link = null; if (prev_links.length > 0) { prev_link = "http://www.sciencedirect.com" + $(prev_links[0]).attr("href"); //_pjs.urls.push(prev_link); } var returnable = { "type": "issue_data", "ssin": ssin, "page_title": page_title, "page_url": page_url, "journal_cover_url": journal_cover_url, //journal cover image url "issue_display_data": issue_display_data, "issue_date": issue_date, "volume_number": volume_number, "issue_number": issue_number, "page_numbers": page_numbers, "issue_month": issue_month, "issue_year": issue_year, "prebibtex_url": prebibtex_url, "prev_link": prev_link, //previous issue url }; console.log("JSON: " + JSON.stringify(returnable)); return true; //returnable; } _pjs.urls = Array(); return true; }, moreUrls: function() { var more_urls = _pjs.urls; _pjs.urls = Array(); //this might not be necessary (it's probably blanked each time a page loads) return more_urls; }, scrapers: { "http://www.sciencedirect.com/science/journal/:ssin/:volume/:edition": function() { var ssin = args[0]; var volume = args[1]; var edition = args[2]; return _pjs.journal_volume_scraper(args); }, "http://www.sciencedirect.com/science/journal/:ssin": function() { return _pjs.journal_volume_scraper(args); }, /* this next one is for the pre-publication page */ "http://www.sciencedirect.com/science?_ob=PublicationURL:stuff": function() { function getUrlVars() { var vars = [], hash; var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); for(var i = 0; i < hashes.length; i++) { hash = hashes[i].split('='); vars.push(hash[0]); vars[hash[0]] = hash[1]; } return vars; } //get the page url from previous_url var page_vars = getUrlVars(); var previous_url = page_vars["previous_url"]; var ssin = page_vars["xssin_id"]; var issue_number = page_vars["xissue_number"]; var volume_number = page_vars["xvolume_number"]; var issue_year = page_vars["xissue_year"]; var issue_month = page_vars["xissue_month"]; var page_numbers = page_vars["xpage_numbers"]; var issue_display_data = page_vars["xissue_display_data"]; //get the form var citeform = $("form[name='exportCite']"); var citeform_data = citeform.serializeObject(); //we want abstracts with our citations (or just "cite") citeform_data["format"] = "cite-abs"; //BIBTEX, ASCII, REFWX, RIS citeform_data["citation-tye"] = "BIBTEX"; //turn these into url params var citeform_data1 = $.param(citeform_data); //http://www.sciencedirect.com/science?_ob=DownloadURL&_method=finish&_acct=C000228598&_userid=10 //&_hubEid=1-s2.0-S0304421100X01344&count=0&md5=b3a671de5390405eac6a1a884b1ebf1f //&JAVASCRIPT_ON=Y&format=cite&citation-type=RIS //&RETURN_URL=http%3A%2F%2Fwww.sciencedirect.com%2Fscience%2Fhome var bibtex_url = "http://www.sciencedirect.com/science?" + citeform_data1; //_pjs.urls.push(bibtex_url); var bibtex_json = { "type": "bibtex_url", "url": bibtex_url, "ssin": ssin, "issue_number": issue_number, "volume_number": volume_number, "issue_year": issue_year, "issue_month": issue_month, "page_numbers": page_numbers, "issue_display_data": issue_display_data, "citeform_data": citeform_data1, "previous_url": previous_url, "cookies": document.cookie, }; console.log("JSON: " + JSON.stringify(bibtex_json)); return true; /*{"type": "citation_url", "previous_url": previous_url, "url": document.location, }*/ }, //for downloading bibtex "http://www.sciencedirect.com/science?_ob=DownloadURL:stuff": function() { console.log("starting to download bibtex?"); }, }, }; pjs.addSuite(sciencedirect_suite); pjs.config({ //options: 'stdout', 'file' (set in config.logFile) or 'none' log: 'stdout', //options: 'json' or 'csv' format: 'json', //options: 'stdout' or 'file' (set in config.outFile) writer: 'file', outFile: 'output.json', });