UNPKG

qwerteeparser

Version:
72 lines (56 loc) 1.58 kB
/* Parser for QWERTEE */ var request = require('request'); var parseString = require('xml2js').parseString; var dateparser = require('datetojson'); var SHIRT_NUMBER = 3; var URL = 'https://www.qwertee.com/rss'; var options = { url: 'https://www.qwertee.com/rss' }; var QwerteeParser = function(n, opt){ SHIRT_NUMBER = n; if(opt != undefined) options = opt; options.url = URL; } function getDataByDescription(data){ var d = data[0].split("<br>"); for(var i = 0; i < d.length; i++) d[i] = d[i].trim(); var ret; ret = { author : d[0].replace('By ', ''), img1 : d[2].replace('<img src=\"', '').replace('" alt="">',''), img2 : d[3].replace('<img src=\"', '').replace('" alt="">','') } return ret; } QwerteeParser.prototype.getShirts = function(callback){ request(options, function (error, response, body) { if(error){ callback(false); } if(response.statusCode !== 200){ callback(false); } var str = new Array(); parseString(body, function (err, result) { for(var i = 0; i < SHIRT_NUMBER; i++){ var current = result.rss.channel[0].item[i]; var inf = getDataByDescription(current.description); var d = dateparser("ddd, DD MMM YYYY HH:mm:ss ZZ", current.pubDate[0]); str.push({ site: "QWERTEE", name: current.title[0], date: d.month+"/"+d.day+"/"+d.year, link: current.guid[0], img: inf.img1, img_shirt: inf.img2, author: inf.author }); } callback(str); }); }); } module.exports = QwerteeParser;