ebookdownloader

package module
v1.7.5 Latest Latest
Warning

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

Go to latest
Published: Mar 17, 2020 License: GPL-3.0 Imports: 23 Imported by: 0

README

ebookdownloader

网文下载器

GitHub license

Build Statusrelease_versionDownload Count

Donate on PayPal

godoc

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=999xs.com --bookid=0_642 --txt --mobi --meta #使用999xs.com做为下载源,生成txt,mobi电子书,并生成meta.json文件于小说目录当中
.\ebookdownloader.exe --ebhost=23us.la --bookid=127064 --pv #新功能,用于打印小说的分卷信息,此时不下载小说任何内容
.\ebookdownloader.exe --bookid=0_0642 --json #生成json格式的小说数据
.\ebookdownloader.exe conv --json=".\outputs\我是谁-sndnvaps\我是谁-sndnvaps.json" --txt --mobi #新功能,转换json格式到txt,mobi格式
.\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
8. http-server 项目依赖:
      github.com/ajvb/kala 项目,用于任务控制和管理
      kala需要与ebookdownloader_cli运行在同一个目录里面

后端服务器 API接口

主要目的是部署在vps上面,就可以方便随时下载小说了

API接口文档 ebookdownloader_http_api

配置文件ebdl_conf.ini

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

墙里面使用gitee

gitee ebookdownloader release page

墙外面使用github

github ebookdownloader release page


❤️ 赞助

如果你觉得EbookDownloader项目对你有帮助。你可以给我来一杯啤酒!

PayPal打赏 微信打赏Pay BTC打赏
paypal.me/sndnvaps 给sndnvaps来一杯啤酒 bc1qs4zkl0fgh8csu7qn
q547hymn0pxr68qrqw
szst3e304grayanm4se
8asf8

支持的小说网站

网站名 网址 是否支持 备注
笔趣阁 https://www.xsbiquge.com/
笔趣阁 https://www.biduo.cc/
笔趣阁 https://www.biquwu.cc/ 网站的速度比较慢
999小说 https://www.999xs.com/
顶点小说网 https://www.booktxt.net/
顶点小说网 https://www.23us.la × 因为网站原因无法打开,暂定无法使用

更新日志

CHANGELOG


To Do List

 [√]  1. 添加生成封面功能
 [√]  2. 添加不同平台的接口实现
 [√]  3. 添加生成二级目录的方法(已经添加相应的实例)
 [√]  4. 添加界面版本gui
 [√]  5. 添加http-server,做为后端
 [√]  6. 添加linux arm,arm64平台支持
 [√]  7. 需要限制并发数量,因为vps性能有限 -> 目前限制的并发数量为(300+49)*2 = 698
 [ ]  8. 使用boltdb记录小说数据(小说下载网站,bookid,uuid->NewV5格式,cover.jpg,mobi,azw3,txt,epub等位置及md5验证信息)
 [√]  9. 添加https://www.biduo.cc/ 小说网站支持
 [√]  10. 添加 https://www.booktxt.net/ 顶点小说网支持
 [√]  11. 添加 https://www.biquwu.cc/ 笔趣阁小说网支持

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CreateMD5 added in v1.7.4

func CreateMD5(filename string) (md5Str string, err error)

CreateMD5 根据filename生成md5信息

func GenerateCover added in v1.3.0

func GenerateCover(this BookInfo)

GenerateCover 生成封面 cover.jpg

func KindlegenCmd added in v1.2.0

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

KindlegenCmd 执行外部kindlegen命令

func ReadAllString

func ReadAllString(filename string) string

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

func WriteFile

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

WriteFile 写入文件操作

Types

type BookInfo

type BookInfo struct {
	EBHost      string    `json:"ebook_host"` //下载小说的网站
	EBookID     string    `json:"ebook_id"`   //对应小说网站的bookid
	BookISBN    string    `json:"isbn"`       //生成一个isbn码
	BookUUID    string    `json:"uuid"`       //生成一个uuid码,准备用于boltdb
	Name        string    `json:"bookname"`
	Author      string    `json:"author"`
	Description string    `json:"novel_description"`
	IsMobi      bool      `json:"is_mobi"`    //当为true的时候生成mobi
	IsAzw3      bool      `json:"is_azw3"`    //当为true的时候生成azw3,
	HasVolume   bool      `json:"has_volume"` //是否有小说分卷,默认为false;当设置为true的时候,Volumes里面需要包含分卷信息
	Volumes     []Volume  `json:"volumes"`    //小说分卷信息,一般不设置
	Chapters    []Chapter `json:"chapters"`   //小说章节信息
}

BookInfo 小说信息

func LoadBookJSONData added in v1.7.2

func LoadBookJSONData(filename string) (BookInfo, error)

LoadBookJSONData 从文件中读取BookInfo信息,并返回

func (*BookInfo) ChangeVolumeState added in v1.6.0

func (this *BookInfo) ChangeVolumeState(hasVolume bool)

ChangeVolumeState 设置 是否包含分卷信息

func (BookInfo) GenerateEPUB added in v1.7.3

func (this BookInfo) GenerateEPUB() error

GenerateEPUB 生成ebpub小说

func (*BookInfo) GenerateISBN added in v1.7.4

func (this *BookInfo) GenerateISBN()

GenerateISBN GenerateISBN

func (BookInfo) GenerateJSON added in v1.7.2

func (this BookInfo) GenerateJSON() error

GenerateJSON 生成json格式的数据

func (BookInfo) GenerateMobi

func (this BookInfo) GenerateMobi()

GenerateMobi 生成mobi格式电子书

func (BookInfo) GenerateTxt

func (this BookInfo) GenerateTxt()

GenerateTxt 生成txt电子书

func (*BookInfo) GenerateUUID added in v1.7.4

func (this *BookInfo) GenerateUUID()

GenerateUUID 根据小说的作者名和小说名 生成uuid码,使用UUID_V5格式

func (BookInfo) ISBN added in v1.7.4

func (this BookInfo) ISBN() string

ISBN 返回小说的ISBN码

func (BookInfo) PrintVolumeInfo added in v1.6.0

func (this BookInfo) PrintVolumeInfo()

PrintVolumeInfo 用于打印 小说分卷信息

func (*BookInfo) SetISBN added in v1.7.4

func (this *BookInfo) SetISBN(value string)

SetISBN 对小说的ISBN码进行设置

func (*BookInfo) SetKindleEbookType added in v1.5.0

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

SetKindleEbookType 现在设置,mobi和awz3格式不能同时设置为true

func (BookInfo) Split added in v1.7.1

func (this BookInfo) Split() []BookInfo

Split BookInfo里面的Chapter,以300章为一组进行分割 当少于300章的里面,全部分为一卷;当有1000卷的时候,分为4卷; 当分割有n个卷的时候,剩下的章节大于50章,重开一个分卷,当少于50的时候,分割到最后一个分卷里面

func (BookInfo) UUID added in v1.7.4

func (this BookInfo) UUID() string

UUID 返回小说对应的uuid信息

func (BookInfo) VolumeState added in v1.6.0

func (this BookInfo) VolumeState() bool

VolumeState 返回 HasVolume的状态,true,false

type Chapter

type Chapter struct {
	Title   string `json:"title"`
	Content string `json:"content"`
	Link    string `json:"chapter_url_link"`
}

Chapter 定义小说章节信息

type EBookDLInterface added in v1.4.0

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

EBookDLInterface 小说下载器接口interface

type LatestReleasesInfo added in v1.7.3

type LatestReleasesInfo struct {
	URL string `json:"html_url"`
	Tag string `json:"tag_name"`
}

LatestReleasesInfo 获取最新的Releases信息

func UpdateCheck added in v1.7.3

func UpdateCheck() (obj LatestReleasesInfo, err error)

UpdateCheck 检查更新

func (LatestReleasesInfo) Compare added in v1.7.3

func (ri LatestReleasesInfo) Compare(CurVersion string) string

Compare 对版本进行对比

func (LatestReleasesInfo) String added in v1.7.3

func (ri LatestReleasesInfo) String() string

String ReleaseInfo String()

type Meta added in v1.7.1

type Meta struct {
	Ebhost      string `json:"ebhost"`
	Bookid      string `json:"bookid"`
	BookName    string `json:"bookname"`
	BookISBN    string `json:"isbn"`
	BookUUID    string `json:"uuid"`
	Author      string `json:"author"`
	CoverURL    string `json:"cover_url"`
	Description string `json:"description"`
	TxtURLPath  string `json:"txt_url_path"`
	MobiURLPath string `json:"mobi_url_path"`
	EPUBURLPath string `json:"epub_url_path"`
	AZW3URLPath string `json:"azw3_url_path"`
	TxtMD5      string `json:"txt_md5_info"`
	MobiMD5     string `json:"mobi_md5_info"`
	EPUBMD5     string `json:"epub_md5_info"`
	AZW3MD5     string `json:"azw3_md5_info"`
}

Meta 小说的metainfo

func GetMetaData added in v1.7.1

func GetMetaData(filename string) (Meta, error)

GetMetaData 从文件中读取meta信息,并返回

func (Meta) WriteFile added in v1.7.1

func (this Meta) WriteFile(filename string) error

WriteFile 把json数据写入 filename定义的文件中

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     `json:"prev_chapter_id"`
	PrevChapter   Chapter `json:"prev_chapter"`
	CurrentVolume string  `json:"current_volume_name"`
	NextChapterID int     `json:"next_chapter_id"`
	NextChapter   Chapter `json:"next_chapter"`
}

Volume 定义小说分卷信息

Directories

Path Synopsis
Package main Code generated by go-bindata.
Package main Code generated by go-bindata.

Jump to

Keyboard shortcuts

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