ebookdownloader

package module
v1.7.0 Latest Latest
Warning

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

Go to latest
Published: Jan 26, 2020 License: MIT Imports: 16 Imported by: 0

README

ebookdownloader

网文下载器

Build Status

ebookdl 网文下载器,go语言版本

安装方法

go get github.com/sndnvaps/ebookdownloader/cli
go get github.com/sndnvaps/ebookdownloader/gui
go get github.com/sndnvaps/ebookdownloader/http-server

使用方法

.\ebookdownloader.exe --bookid=0_642 --txt #只生成txt文本
.\ebookdownloader.exe --bookid=0_642 --mobi #只生成mobi电子书
.\ebookdownloader.exe --bookid=0_642 --txt --mobi #生成txt 和 mobi
.\ebookdownloader.exe --bookid=0_642 --txt --awz3 #生成txt 和 awz3
.\ebookdownloader.exe --proxy="http://proxyip:proxyport" --bookid=0_642 --mobi #生成mobi电子书,在下载章节的过程中使用 Proxy
.\ebookdownloader.exe --ebhost=xsbiquge.com --bookid=0_642 --txt --mobi #使用xsbiquge.com做为下载源,生成txt 和 mobi
.\ebookdownloader.exe --ebhost=999xs.com --bookid=0_642 --txt --mobi #使用999xs.com做为下载源,生成txt 和 mobi
.\ebookdownloader.exe --ebhost=23us.la --bookid=127064 --pv #新功能,用于打印小说的分卷信息,此时不下载小说任何内容
.\ebookdownloader.exe --help #显示帮助信息

依赖程序

1. kindlegen.exe 支持windows平台
2. kindlegenLinux 支持Linux 平台
3. kindlegenMac 支持 Mac平台
4. cli/gui 两个项目,都需要在当前项目的根目录运行
5. gui程序,需要依赖 https://github.com/akavel/rsrc ,项目来生成图标
6. qemu-i386-static-armhf 支持在linux arm平台上运行 kindlegenLinux
7. qemu-i386-static-arm64 支持在linux arm64平台上运行 kindlegenLinux

懒人模式,直接下载编译好的程序

这里下载你需要的版本

更新日志

  2020.01.26 go版本
            1. 添加 http-server版本,初始化
            2. 添加qemu-i386-static 支持arm,arm64平台上生成mobi,azw3格式电子书
            3. 更新版本到 v1.6.9

  2020.01.24 go版本
            1. 版本更新到 v1.6.3
            2. 更新到 v1.6.4 用于测试 Travis-ci
  2020.01.23 go版本 更新
             1. 使用 github.com/AllenDang/giu 库,重新构建 gui界面
             2. 编译命令 cd gui;build.[cmd|sh]。文件生成后,会复制到根目录
             
  2020.01.22 go版本 更新
             1. 分离出命令行版本cli,编译命令 cd cli;build.[cmd|sh]。文件生成后,会复制到根目录
             2. 界面版本gui,立项目
             3. 添加go mod支持

  2020.01.13 go版本 更新
             1. 修复潜在问题,无法生成 ./outputs目录
             2. 修复azw3后序出错问题,已经可以在 calibre中阅读
             3. 版本升级为 v1.6.1
             感谢 @Biercenter 的反馈

  2020.01.08 go版本 更新
             1. 版本升级为 v1.6.0
             2. 完成生成二级目录功能(目前只有顶点小说网支持这个功能)
             3. 修改下载章节的方法,现在使用 gorountine,多并发下载
             
  2020.01.06 go版本 更新
             1. 添加顶点小说 23us.la支持
             2. 初始支持把分卷信息写入相应的volumes结构体当中(还没有正式测试生成二级目录功能)
             
  2020.01.05 go版本 更新
             1. 实现二级目录直接写入 tpl_*.html文件当中
             2. 添加tpl/tpl_volume.html 用于生成目录分卷
             3. 实现mobi格式二级目录的生成(网站捉取二级目录部分,正在努力实现)

  2020.01.04 go版本 更新
             1. 初始化 kindle二级目录支持代码(具体功能还在实现)
             2. 更新ebookdl_test.go: 实例化 二级目录txt支持
             
  2020.01.03 go版本 更新
              1. 修改生成电子书的压缩比为-c2,使生成的文件更小
              2. 添加生成awz3格式支持(注意,--mobi,--awz3只能使用一个,不能同时使用)
              3. 修改封面的引用方法

  2019.12.29 go版本 完成实现 999xs.com平台的小说下载接口

  2019.12.27 go版本 实现不同小说平台的interface{}接口,方便加入新的小说网站

  2019.12.25 go版本 修改小说名字排版方式为坚排

  2019.12.22 go版本添加 
             1. 简单代码测试
             2. 使用图片格式的封面,方便后面使用 calibre更换封面

  2019.12.9 go版本添加 代理支持

  2019.12.8 go版本添加 Linux,Mac系统支持

  2019.12.6 go版本添加 进度条功能

  2019.12.5 添加go语言版本支持
  
  2019.8.22 python版本初始化

To Do List

 [√]  1.添加生成封面功能
 [√]  2. 添加不同平台的接口实现
 [√]  3. 添加生成二级目录的方法(已经添加相应的实例)
 [√]  4. 添加界面版本gui
 [√]  5. 添加http-server,做为后端
 [√]  6. 添加linux arm,arm64平台支持

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AsycChapter added in v1.6.0

func AsycChapter(ResultChan chan chan Chapter, chapter chan Chapter)

AsycChapter

func GenerateCover added in v1.3.0

func GenerateCover(this BookInfo)

生成封面 cover.jpg

func KindlegenCmd added in v1.2.0

func KindlegenCmd(args ...string) *exec.Cmd

func ReadAllString

func ReadAllString(filename string) string

读取文件内容,并存入string,最终返回

func TestContainVolume added in v1.6.0

func TestContainVolume(src string) bool

检测是 第一个 dt标签是否包含 “正文卷”,如果不包含就表示是分卷

func WriteFile

func WriteFile(filename string, data []byte) error

Types

type BookInfo

type BookInfo struct {
	Name        string
	Author      string
	Description string
	IsMobi      bool      //当为true的时候生成mobi
	IsAzw3      bool      //当为true的时候生成azw3,
	HasVolume   bool      //是否有小说分卷,默认为false;当设置为true的时候,Volumes里面需要包含分卷信息
	Volumes     []Volume  //小说分卷信息,一般不设置
	Chapters    []Chapter //小说章节信息
}

func (*BookInfo) ChangeVolumeState added in v1.6.0

func (this *BookInfo) ChangeVolumeState(hasVolume bool)

设置 是否包含分卷信息 func ChangeVolumeState

func (BookInfo) GenerateMobi

func (this BookInfo) GenerateMobi()

生成mobi格式电子书

func (BookInfo) GenerateTxt

func (this BookInfo) GenerateTxt()

生成txt电子书

func (BookInfo) PrintVolumeInfo added in v1.6.0

func (this BookInfo) PrintVolumeInfo()

func (*BookInfo) SetKindleEbookType added in v1.5.0

func (this *BookInfo) SetKindleEbookType(isMobi bool, isAzw3 bool)

设置生成mobi格式,或者生成awz3格式 现在设置,mobi和awz3格式不能同时设置为true

func (BookInfo) VolumeState added in v1.6.0

func (this BookInfo) VolumeState() bool

返回 HasVolume的状态,true,false

type Chapter

type Chapter struct {
	Title   string
	Content string
	Link    string
}

type EBookDLInterface added in v1.4.0

type EBookDLInterface interface {
	GetBookInfo(bookid string, proxy string) BookInfo //获取小说的所有信息,包含小说名,作者,简介等信息
	DownloaderChapter(ResultChan chan chan Chapter, pc ProxyChapter, wg *sync.WaitGroup)
	DownloadChapters(Bi BookInfo, proxy string) BookInfo
}

interface

type Ebook23US added in v1.6.0

type Ebook23US struct {
	Url string
}

顶点小说网 23us.la

func New23US added in v1.6.0

func New23US() Ebook23US

func (Ebook23US) DownloadChapters added in v1.6.0

func (this Ebook23US) DownloadChapters(Bi BookInfo, proxy string) BookInfo

根据每个章节的 url连接,下载每章对应的内容Content当中

func (Ebook23US) DownloaderChapter added in v1.6.0

func (this Ebook23US) DownloaderChapter(ResultChan chan chan Chapter, pc ProxyChapter, wg *sync.WaitGroup)

func DownloaderChapter(ResultChan chan chan Chapter)

func (Ebook23US) GetBookInfo added in v1.6.0

func (this Ebook23US) GetBookInfo(bookid string, proxy string) BookInfo

type Ebook999XS added in v1.4.0

type Ebook999XS struct {
	Url string
}

999小说网 999xs.com

func New999XS added in v1.4.0

func New999XS() Ebook999XS

func (Ebook999XS) DownloadChapters added in v1.4.0

func (this Ebook999XS) DownloadChapters(Bi BookInfo, proxy string) BookInfo

根据每个章节的 url连接,下载每章对应的内容Content当中

func (Ebook999XS) DownloaderChapter added in v1.6.0

func (this Ebook999XS) DownloaderChapter(ResultChan chan chan Chapter, pc ProxyChapter, wg *sync.WaitGroup)

func DownloaderChapter(ResultChan chan chan Chapter)

func (Ebook999XS) GetBookInfo added in v1.4.0

func (this Ebook999XS) GetBookInfo(bookid string, proxy string) BookInfo

func (Ebook999XS) GetChapterContent added in v1.4.0

func (this Ebook999XS) GetChapterContent(pc ProxyChapter) Chapter

type EbookXSBiquge added in v1.4.0

type EbookXSBiquge struct {
	Url string
}

新笔趣阁 xsbiquge.com

func NewXSBiquge added in v1.4.0

func NewXSBiquge() EbookXSBiquge

func (EbookXSBiquge) DownloadChapters added in v1.4.0

func (this EbookXSBiquge) DownloadChapters(Bi BookInfo, proxy string) BookInfo

根据每个章节的 url连接,下载每章对应的内容Content当中

func (EbookXSBiquge) DownloaderChapter added in v1.6.0

func (this EbookXSBiquge) DownloaderChapter(ResultChan chan chan Chapter, pc ProxyChapter, wg *sync.WaitGroup)

func DownloaderChapter(ResultChan chan chan Chapter)

func (EbookXSBiquge) GetBookInfo added in v1.4.0

func (this EbookXSBiquge) GetBookInfo(bookid string, proxy string) BookInfo

func (EbookXSBiquge) GetChapterContent added in v1.4.0

func (this EbookXSBiquge) GetChapterContent(pc ProxyChapter) Chapter

type ProxyChapter added in v1.3.0

type ProxyChapter struct {
	Proxy string
	C     Chapter
}

type Volume added in v1.6.0

type Volume struct {
	PrevChapterId int
	PrevChapter   Chapter
	CurrentVolume string
	NextChapterId int
	NextChapter   Chapter
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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