diff --git a/Hardcore Gamer.js b/Hardcore Gamer.js new file mode 100644 index 0000000000..918c69ead4 --- /dev/null +++ b/Hardcore Gamer.js @@ -0,0 +1,173 @@ +{ + "translatorID": "f986be20-2870-41ae-be81-3649be4ce4e2", + "label": "Hardcore Gamer", + "creator": "czar", + "target": "^https?://(www\\.)?hardcoregamer\\.com", + "minVersion": "3.0", + "maxVersion": "", + "priority": 100, + "inRepository": true, + "translatorType": 4, + "browserSupport": "gcsibv", + "lastUpdated": "2018-07-08 01:13:37" +} + +/* + ***** BEGIN LICENSE BLOCK ***** + + Copyright © 2018 czar + http://en.wikipedia.org/wiki/User_talk:Czar + + This file is part of Zotero. + + Zotero is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Zotero is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with Zotero. If not, see . + + ***** END LICENSE BLOCK ***** +*/ + + +// attr()/text() v2 per https://github.com/zotero/translators/issues/1277 +function attr(docOrElem,selector,attr,index){var elem=index?docOrElem.querySelectorAll(selector).item(index):docOrElem.querySelector(selector);return elem?elem.getAttribute(attr):null;}function text(docOrElem,selector,index){var elem=index?docOrElem.querySelectorAll(selector).item(index):docOrElem.querySelector(selector);return elem?elem.textContent:null;} + + +function detectWeb(doc, url) { + if (/\d{4}\/\d{2}\/\d{2}\//.test(url)) { + return "blogPost"; + } else if (getSearchResults(doc, true)) { + return "multiple"; + } +} + + +function scrape(doc, url) { + var translator = Zotero.loadTranslator('web'); + translator.setTranslator('951c027d-74ac-47d4-a107-9c3069ab7b48'); // embedded metadata (EM) + translator.setDocument(doc); + + translator.setHandler('itemDone', function (obj, item) { // corrections to EM + item.itemType = "blogPost"; + item.blogTitle = "Hardcore Gamer"; + item.title = text(doc,'h1.entry-title'); + var authorMetadata = text(doc,'a[rel="author"]') + if (authorMetadata) { // only found single authors to support + item.creators.push(ZU.cleanAuthor(authorMetadata.replace(/\son\s.*/,''), "author")); + } + item.date = authorMetadata.replace(/.*\son\s/,''); + item.complete(); + }); + + translator.getTranslatorObject(function(trans) { + trans.doWeb(doc, url); + }); +} + + +function getSearchResults(doc, checkOnly) { + var items = {}; + var found = false; + var rows = doc.querySelectorAll('h2.slider-excerpt, .featured-image-single, .header-thumb, h1.entry-title'); + var links = doc.querySelectorAll('h2.slider-excerpt a, .featured-image-single a, .header-thumb a, h1.entry-title a'); + for (let i=0; i