mangadownloader

package module
v0.0.0-...-fadea7d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 18, 2017 License: MIT Imports: 15 Imported by: 0

README

Manga Downloader

A manga downloader written in Go (Golang).

GoDoc Build Status(Travis is blocked on some websites...)

Features

Usage

Usage:
Pass urls (manga/chapter/page) as argument.

Options: (pass them BEFORE the arguments, Go's "flag" package is not really smart...)
  -cbz=false: CBZ
  -httpretry=5: Http retry
  -out="": Output directory
  -pagedigitcount=4: Page digit count
  -parallelchapter=4: Parallel chapter
  -parallelpage=8: Parallel page

Examples:

./mangadownloader http://www.mangareader.net/97/gantz.html
./mangadownloader http://mangafox.me/manga/berserk/c134/1.html

TODO

  • More services
    • animea
    • unixmanga
    • goodmanga
    • mangacraze
    • mangago
    • anymanga
    • mangainn
    • mangaeden
    • mangable
    • deliciousmanga
    • mangastream
  • Fix download freeze
  • Tests
  • Documentation
  • Sync
  • Input file
  • Concurrency for input
  • Progress
  • User agent
  • Improve error handling
  • Improve http error codes

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Chapter

type Chapter struct {
	Url     *url.URL
	Service Service
}

func (*Chapter) Name

func (chapter *Chapter) Name() (string, error)

func (*Chapter) Pages

func (chapter *Chapter) Pages() ([]*Page, error)

type Manga

type Manga struct {
	Url     *url.URL
	Service Service
}

func (*Manga) Chapters

func (manga *Manga) Chapters() ([]*Chapter, error)

func (*Manga) Name

func (manga *Manga) Name() (string, error)

type MangaDownloader

type MangaDownloader struct {
	Services  map[string]Service
	HttpRetry int
}

func CreateDefaultMangeDownloader

func CreateDefaultMangeDownloader() *MangaDownloader

func NewMangaDownloader

func NewMangaDownloader() *MangaDownloader

func (*MangaDownloader) DownloadChapter

func (md *MangaDownloader) DownloadChapter(chapter *Chapter, out string, options *Options) error

func (*MangaDownloader) DownloadManga

func (md *MangaDownloader) DownloadManga(manga *Manga, out string, options *Options) error

func (*MangaDownloader) DownloadPage

func (md *MangaDownloader) DownloadPage(page *Page, out string, filename string, options *Options) error

func (*MangaDownloader) HttpGet

func (md *MangaDownloader) HttpGet(u *url.URL) (response *http.Response, err error)

func (*MangaDownloader) HttpGetHtml

func (md *MangaDownloader) HttpGetHtml(u *url.URL) (*html.Node, error)

func (*MangaDownloader) HttpGetHtmlDoc

func (md *MangaDownloader) HttpGetHtmlDoc(u *url.URL) (*goquery.Document, error)

func (*MangaDownloader) Identify

func (md *MangaDownloader) Identify(u *url.URL) (interface{}, error)

type MangaFoxService

type MangaFoxService struct {
	Md *MangaDownloader
}

func (*MangaFoxService) ChapterName

func (service *MangaFoxService) ChapterName(chapter *Chapter) (string, error)

func (*MangaFoxService) ChapterPages

func (service *MangaFoxService) ChapterPages(chapter *Chapter) ([]*Page, error)

func (*MangaFoxService) Identify

func (service *MangaFoxService) Identify(u *url.URL) (interface{}, error)

func (*MangaFoxService) MangaChapters

func (service *MangaFoxService) MangaChapters(manga *Manga) ([]*Chapter, error)

func (*MangaFoxService) MangaName

func (service *MangaFoxService) MangaName(manga *Manga) (string, error)

func (*MangaFoxService) PageImageUrl

func (service *MangaFoxService) PageImageUrl(page *Page) (*url.URL, error)

func (*MangaFoxService) String

func (service *MangaFoxService) String() string

func (*MangaFoxService) Supports

func (service *MangaFoxService) Supports(u *url.URL) bool

type MangaHereService

type MangaHereService struct {
	Md *MangaDownloader
}

func (*MangaHereService) ChapterName

func (service *MangaHereService) ChapterName(chapter *Chapter) (string, error)

func (*MangaHereService) ChapterPages

func (service *MangaHereService) ChapterPages(chapter *Chapter) ([]*Page, error)

func (*MangaHereService) Identify

func (service *MangaHereService) Identify(u *url.URL) (interface{}, error)

func (*MangaHereService) MangaChapters

func (service *MangaHereService) MangaChapters(manga *Manga) ([]*Chapter, error)

func (*MangaHereService) MangaName

func (service *MangaHereService) MangaName(manga *Manga) (string, error)

func (*MangaHereService) PageImageUrl

func (service *MangaHereService) PageImageUrl(page *Page) (*url.URL, error)

func (*MangaHereService) String

func (service *MangaHereService) String() string

func (*MangaHereService) Supports

func (service *MangaHereService) Supports(u *url.URL) bool

type MangaReaderService

type MangaReaderService struct {
	Md *MangaDownloader
}

func (*MangaReaderService) ChapterName

func (service *MangaReaderService) ChapterName(chapter *Chapter) (string, error)

func (*MangaReaderService) ChapterPages

func (service *MangaReaderService) ChapterPages(chapter *Chapter) ([]*Page, error)

func (*MangaReaderService) Identify

func (service *MangaReaderService) Identify(u *url.URL) (interface{}, error)

func (*MangaReaderService) MangaChapters

func (service *MangaReaderService) MangaChapters(manga *Manga) ([]*Chapter, error)

func (*MangaReaderService) MangaName

func (service *MangaReaderService) MangaName(manga *Manga) (string, error)

func (*MangaReaderService) PageImageUrl

func (service *MangaReaderService) PageImageUrl(page *Page) (*url.URL, error)

func (*MangaReaderService) String

func (service *MangaReaderService) String() string

func (*MangaReaderService) Supports

func (service *MangaReaderService) Supports(u *url.URL) bool

type MangaWallService

type MangaWallService struct {
	Md *MangaDownloader
}

func (*MangaWallService) ChapterName

func (service *MangaWallService) ChapterName(chapter *Chapter) (string, error)

func (*MangaWallService) ChapterPages

func (service *MangaWallService) ChapterPages(chapter *Chapter) ([]*Page, error)

func (*MangaWallService) Identify

func (service *MangaWallService) Identify(u *url.URL) (interface{}, error)

func (*MangaWallService) MangaChapters

func (service *MangaWallService) MangaChapters(manga *Manga) ([]*Chapter, error)

func (*MangaWallService) MangaName

func (service *MangaWallService) MangaName(manga *Manga) (string, error)

func (*MangaWallService) PageImageUrl

func (service *MangaWallService) PageImageUrl(page *Page) (*url.URL, error)

func (*MangaWallService) String

func (service *MangaWallService) String() string

func (*MangaWallService) Supports

func (service *MangaWallService) Supports(u *url.URL) bool

type MultiError

type MultiError []error

func (MultiError) Error

func (errs MultiError) Error() string

type Options

type Options struct {
	Cbz             bool
	PageDigitCount  int
	ParallelChapter int
	ParallelPage    int
}

type Page

type Page struct {
	Url     *url.URL
	Service Service
}

func (*Page) ImageUrl

func (page *Page) ImageUrl() (*url.URL, error)

type Service

type Service interface {
	Supports(*url.URL) bool
	Identify(*url.URL) (interface{}, error)
	MangaName(*Manga) (string, error)
	MangaChapters(*Manga) ([]*Chapter, error)
	ChapterName(*Chapter) (string, error)
	ChapterPages(*Chapter) ([]*Page, error)
	PageImageUrl(*Page) (*url.URL, error)
}

type TenMangaService

type TenMangaService struct {
	Md *MangaDownloader
}

func (*TenMangaService) ChapterName

func (service *TenMangaService) ChapterName(chapter *Chapter) (string, error)

func (*TenMangaService) ChapterPages

func (service *TenMangaService) ChapterPages(chapter *Chapter) ([]*Page, error)

func (*TenMangaService) Identify

func (service *TenMangaService) Identify(u *url.URL) (interface{}, error)

func (*TenMangaService) MangaChapters

func (service *TenMangaService) MangaChapters(manga *Manga) ([]*Chapter, error)

func (*TenMangaService) MangaName

func (service *TenMangaService) MangaName(manga *Manga) (string, error)

func (*TenMangaService) PageImageUrl

func (service *TenMangaService) PageImageUrl(page *Page) (*url.URL, error)

func (*TenMangaService) String

func (service *TenMangaService) String() string

func (*TenMangaService) Supports

func (service *TenMangaService) Supports(u *url.URL) bool

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL