Advanced Usage¶
This page provide advanced usage you can do in this package.
Create Custom Site Parser¶
Do you have your favorite manga website and preferring to download manga from there, but not supported in this package? Just create your own! What you must do are:
- Make it inherit
Manga - Override all
abstractmethodand have return value as same assuper().__doc__. - Override method
filter_chaptersif it doesn’t work in your custom parser.
Use Custom Site Parser¶
Just pass your custom parser in parameter parser
if you use main API (info, get, and download), or
if you use Mannou, please
see Mannou section.:
>>> from your_module import YourParser
>>> url = 'https://manganelo.com/manga/aiura'
>>> info = mannou.download(url, parser=YourParser)
AniList¶
Anilist is the main class
for communicating with AniList API, basic usage:
>>> from mannou import anilist
>>> a = anilist.AniList('Aiura')
Now, a is an Anilist object.
You can use method json to return JSON from AniList API.:
>>> a.json()
{
'data': {
'Media': {
'id': 75980,
...
'siteUrl': 'https://anilist.co/manga/75980
}
}
}
Or you can use method info to return parsed data as :obj: dict.:
>>> a.info()
{
'id': ['75980'],
...
'siteUrl': 'https://anilist.co/manga/75980
}
If you are not satisfied with the default result,
you can modify attribute query as you wish.
But in order to do so, you must familiar with Anilist API
and how GraphQL works.:
>>> a.query = """
... query ($name: String) {
... Media (search: $name, type: MANGA) {
... ...
... }
... }
... """ # Your long long query
>>> a.json() # The result will be follow your query.
For further detail, please read this:: * AniList API Documentation * GraphQL
Mannou¶
Mannou is the main class
for downloading manga. Basic usage:
>>> from mannou.mannou import Mannou
>>> url = 'https://manganelo.com/manga/aiura'
>>> m = Mannou(url)
If you have your custom parser, you can pass it
in parameter parser directly:
>>> m = Mannou(url, parser=YourParser)
It will change value of attribute parser
to your custom parser. You can set it like this too:
>>> m.parser = YourParser
You can also append your custom parser in attribute parsers.
parsers is containing list of available parser in this package.:
>>> m.parsers.append(YourParser)
then set it automatically by calling set_parser method:
>>> m.set_parser()
By default, every manga will be saved it ~/Manga or
%USERPROFILE%\Manga. You can override it by modify root attribute.
Please remember root attribute must be Path object.:
>>> import pathlib
>>> m.root = pathlib.Path.home().joinpath('Comic') # ~/Comic or %USERPROFILE%\\Comic
If preparation have already completed, download your manga by:
>>> m.download()
It will download every chapter in https://manganelo.com/manga/aiura.
You can limit it by using parameter start and end:
>>> m.download(3, 7)
or be explicit:
>>> m.download(start=3, end=7)
It will download only chapter 3 to chapter 7.