https://github.com/marufamd/comicgeeks
A NodeJS module to get data from League of Comic Geeks
https://github.com/marufamd/comicgeeks
comic leagueofcomicgeeks nodejs
Last synced: 6 months ago
JSON representation
A NodeJS module to get data from League of Comic Geeks
- Host: GitHub
- URL: https://github.com/marufamd/comicgeeks
- Owner: marufamd
- License: mit
- Created: 2021-02-08T04:47:40.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2024-10-14T17:03:30.000Z (about 1 year ago)
- Last Synced: 2024-10-19T14:40:01.755Z (12 months ago)
- Topics: comic, leagueofcomicgeeks, nodejs
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/comicgeeks
- Size: 139 KB
- Stars: 5
- Watchers: 3
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# comicgeeks
A NodeJS module to get data from League of Comic Geeks
```bash
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](https://marufamd.github.io/comicgeeks/).
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:
```js
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:
```js
{
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.
```js
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.
```js
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.
```js
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);
```