tmal
Version:
tuna's myanimelist parser
33 lines (31 loc) • 1.29 kB
JavaScript
const cheerio = require('cheerio');
const _ = require('lodash');
const baseUrl = require('../utils').baseUrl;
const fetch = require('../utils').fetch;
const S = require('string');
const getCharacterPics = (href) => {
return fetch(href+'/pictures').then(body => {
const $ = cheerio.load(body);
const images = $('a[href*="images/characters"]');
return _.map(images,(t) => {
return $(t).find('img').attr('src');
});
});
};
module.exports.getCharacter = (id,href) => {
return fetch(href).then(body => {
const $ = cheerio.load(body);
const h1 = $('h1');
return getCharacterPics(href).then(pictures => {
return {
image_url : $('a[href*="character/'+id+'/'+_.split(href,'/')[5]+'/pictures"]').find('img').attr('src'),
nickname : S(h1.text().trim()).between('"','"').s.trim(),
name : h1.text().trim().replace('"'+S(h1.text().trim()).between('"','"').s+'"','').replace(/\s{2,}/g, ' ').trim(),
description : null, /* TODO: parse char description */
mangaography : null,
animeography : null,
pictures : pictures
}
});
});
};