manga-parser
Version:
A parser for manga online sources
177 lines (106 loc) • 7.95 kB
Markdown
# Manga Parser
[](https://www.npmjs.com/package/manga-parser) [](https://travis-ci.org/na-ji/node-manga-parser) [](https://codecov.io/gh/na-ji/node-manga-parser) [](https://gemnasium.com/github.com/na-ji/node-manga-parser) [](https://github.com/prettier/prettier)
Manga Parser is a parser for online manga sources. It provides a simple API to extract data about manga hosted and their chapters. More sources are going to be added.
The library is based on [Tachiyomi](https://github.com/inorichi/tachiyomi) for Android.
## Supported sources
- [ReadMangaToday](http://www.readmanga.today/)
- [Mangafox](http://mangafox.me/)
- [Mangahere](http://www.mangahere.co/)
## Contributing
All contributions are welcome. If you do not know how to code, but still want to see another source to be added, just open an issue.
## Documentation
To use the `Parser`, just import it in your project
```javascript
// ES6 syntax
import { Parser } from 'manga-parser';
// CommonJS syntax
const Parser = require('manga-parser').Parser;
```
Most of the `Parser` methods require the `catalogName`, you can find this name on each [catalog class](https://github.com/na-ji/node-manga-parser/tree/master/src/sites).
### Usage Examples
```javascript
import { Parser } from 'manga-parser';
Parser.getPopularMangaList('readmangatoday').then(paginator => {
console.log(paginator);
let manga = paginator.mangas[0];
return Parser.getMangaDetail('readmangatoday', manga);
}).then(manga => {
console.log(manga);
return Parser.getChapterList('readmangatoday', manga);
}).then(chapters => {
console.log(chapters);
let chapter = chapters[0];
return Parser.getPageList('readmangatoday', chapter);
}).then(pages => {
console.log(pages);
let page = pages[0];
return Parser.getImageURL('readmangatoday', page);
}).then(imageURL => {
console.log(imageURL);
});
```
```javascript
import { Parser } from 'manga-parser';
Parser.searchManga('readmangatoday', 'naruto').then(paginator => {
console.log(paginator);
});
```
### Parser Class
<!-- Generated by documentation.js. Update this documentation by updating the source code. -->
#### getPopularMangaList
Fetch the popular mangas on the catalog
**Parameters**
- `catalogName` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)**
- `page` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** Page to fetch (optional, default `null`)
Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)<{mangas: [Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)<Manga>, hasNext: [boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean), nextUrl: [string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String), nextPage: [number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)}>**
#### getLatestUpdatesList
Fetch the latest updated manga on the catalog
**Parameters**
- `catalogName` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)**
- `page` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** Page to fetch (optional, default `null`)
Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)<{mangas: [Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)<Manga>, hasNext: [boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean), nextUrl: [string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String), nextPage: [number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)}>**
#### searchManga
Search for Manga from a catalog
**Parameters**
- `catalogName` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)**
- `query` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)**
- `page` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)?** (optional, default `null`)
Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)<{mangas: [Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)<Manga>, hasNext: [boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean), nextUrl: [string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)?, nextPage: [number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)?}>**
#### getMangaDetail
Fetch every information for a Manga
**Parameters**
- `catalogName` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)**
- `manga` **Manga**
Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)<Manga>**
#### getChapterList
Fetch the list of chapters for Manga
**Parameters**
- `catalogName` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)**
- `manga` **Manga**
Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)<[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)<Chapter>>**
#### getChapterListByVolumes
Fetch the list of chapters for a Manga sorted by volumes
**Parameters**
- `catalogName` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)**
- `manga` **Manga**
Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)<{}>**
#### getPageList
Fetch every pages URL for a manga
**Parameters**
- `catalogName` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)**
- `chapter` **Chapter**
Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)<[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)>>**
#### getImageURL
Fetch the image URL from a page URL
**Parameters**
- `catalogName` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)**
- `pageURL` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)**
Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)<[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)>**
#### getCatalogs
Return the list of catalogs
Returns **{name: AbstractCatalog}**
#### getCatalog
Return a catalog
**Parameters**
- `catalogName` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)**
Returns **AbstractCatalog**