qwerteeparser
Version:
Parse qwertee daily shirt from rss
72 lines (56 loc) • 1.58 kB
JavaScript
/*
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;