UNPKG

leagueofcomicgeeks

Version:

Unofficial Node.js library for interacting with League of Comic Geeks

49 lines (40 loc) 1.45 kB
/* eslint-disable no-console */ const _ = require('lodash'); const moment = require('moment'); const lofcg = require('../'); const weeks = 10; const wednesday = moment().day(3); const filter = 'star wars'; const range = _.range(weeks); const data = []; const filterUnwanted = function (list) { const tradePaperback = ' tp'; const hardCover = ' hc'; const variant = ' variant'; return _.filter(list, function ({ name = '' }) { const matches = name.match(/#\d+\w?(.*)?/i); return !name.toLowerCase().endsWith(tradePaperback) && !name.toLowerCase().endsWith(hardCover) && !name.toLowerCase().endsWith(variant) && (_.isNull(matches) || _.isUndefined(matches[1])); }); }; const outputresults = function (list) { if (list.length < range.length) return; const starWarsComics = _.filter(_.flattenDeep(list), ({ name = '' }) => name.toLowerCase().indexOf(filter) > -1); const mainIssues = _.orderBy(filterUnwanted(starWarsComics), ['name', 'releaseDate'], ['asc', 'asc']); console.log(JSON.stringify(mainIssues, null, 4)); }; range.forEach(function (count) { const date = wednesday.clone().add(count, 'weeks').format('YYYY-MM-DD'); // Get new comics lofcg.newComics.get(date, (err, newComics) => { if (err) { data.push(err); console.log('An error has occurred getting new comics:', err); return; } data.push(newComics); outputresults(data); }); });