comicgeeks
v1.1.0
Published
A NodeJS module to get data from League of Comic Geeks
Downloads
14
Maintainers
Readme
comicgeeks
A NodeJS module to get data from League of Comic Geeks
npm install comicgeeks
Features
- Fetching weekly release lists
- Fetching search results
- Fetching user pull lists
- Fetching user collections
- Fetching user wish lists
- Filter by publisher, comic format, etc
- Sort by pull count, community rating, price, alphabetically, etc
Usage
View the full documentation here.
Every method to retrieve data is prefixed with fetch
:
fetchReleases
fetchSearchResults
fetchPulls
fetchCollection
fetchWishList
Each method returns a Promise that resolves with the data. Here are a few examples:
const { fetchReleases, FilterTypes } = require('comicgeeks');
// ES Module or TypeScript: import { fetchReleases, FilterTypes } from 'comicgeeks';
// Fetch regular, digital, and annual DC Comics issues that released on 2020-12-15, and sort them alphabetically
fetchReleases('2020-12-15', {
publishers: ['DC Comics'],
filter: [
FilterTypes.Regular,
FilterTypes.Digital,
FilterTypes.Annual
],
sort: SortTypes.AlphaAsc
})
// Resolves to an array of objects
.then(console.log)
.catch(console.error);
The return objects will look something like this:
{
name: 'Batman #105',
publisher: 'DC Comics',
url: 'https://leagueofcomicgeeks.com/comic/9430629/batman-105',
cover: 'https://s3.amazonaws.com/comicgeeks/comics/covers/large-9430629.jpg?1612100060',
description: 'GHOST STORIES, PART 4 Batman battles Ghost-Maker in the no-holds-barred, bloody conclusion of this epic tale…winner take Gotham City! And the outcome is not what you’re expecting! The future of Gotham City and the fate of...',
price: '$3.99',
rating: 84,
pulls: 9288,
potw: 2
}
Let's try search results.
const { fetchSearchResults, CollectionTypes } = require('comicgeeks');
// Search for 'batman' in issue format
fetchSearchResults('batman', CollectionTypes.Issue)
// Will resolve to an array of objects, similar to the one above
.then(console.log)
.catch(console.error);
When fetching user specific data, things become a bit more complicated. Each method will take the user's ID as the first parameter. There is a helper method, fetchUser
to retrieve the ID from a username.
const { fetchUser } = require('comicgeeks');
fetchUser('maruf99')
.then(console.log)
.catch(console.error);
/*
{
id: 122444,
name: 'maruf99',
url: 'https://leagueofcomicgeeks.com/profile/maruf99',
avatar: 'https://s3.amazonaws.com/comicgeeks/avatars/large-122444.jpg?t=1609863575'
}
*/
Let's try fetching a pull list, collection, and wish list.
const {
CollectionTypes,
fetchCollection,
fetchPulls,
fetchUser,
fetchWishList,
SortTypes
} = require('comicgeeks');
fetchUser('maruf99')
// async/await syntax
.then(async user => {
// Fetch the collection
const collection = await fetchCollection(user.id, CollectionTypes.Series, {
sort: SortTypes.AlphaAsc
});
// Fetch the pull list and order by most pulled
const pullList = await fetchPulls(user.id, '2021-01-05', {
sort: SortTypes.MostPulled
});
// Fetch the wish list and order by price
const wishList = await fetchWishList(user.id, CollectionTypes.Series, {
sort: SortTypes.HighPrice
});
// Do stuff with the data
})
.catch(console.error);