Documentation
¶
Index ¶
- func ClearBookNotExist()
- func ClearBookWhenStoreUrlNotExist(nowStoreUrls []string)
- func GenerateBookGroup()
- func GetAllBooksNumber() int
- type Book
- type BookInfo
- type BookInfos
- type BookMark
- type BookMarks
- type BookinfoWithBookMark
- type MarkType
- type PageInfo
- type PageInfos
- type StoreBookInfo
- type StoreInterface
- type SupportFileType
- type User
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ClearBookNotExist ¶ added in v1.1.0
func ClearBookNotExist()
ClearBookNotExist 检查内存中的书的源文件是否存在,不存在就删掉
func ClearBookWhenStoreUrlNotExist ¶ added in v1.1.7
func ClearBookWhenStoreUrlNotExist(nowStoreUrls []string)
ClearBookWhenStoreUrlNotExist 清理书库中不存在的书籍源对应的书籍,传入的是当前存在的书籍源
func GetAllBooksNumber ¶ added in v1.1.0
func GetAllBooksNumber() int
GetAllBooksNumber 获取书籍总数,不包括 BookGroup 类型
Types ¶
type Book ¶
Book 定义书籍结构
func NewBook ¶
func NewBook(bookPath string, modified time.Time, fileSize int64, storePath string, depth int, bookType SupportFileType) (*Book, error)
NewBook 初始化 Book,设置文件路径、书名、BookID 等
func (*Book) GetStoreID ¶ added in v1.1.0
GetStoreID 获取编码后的书库ID,StoreID是书库URL路径的 base62 编码
func (*Book) SortPagesByImageList ¶
SortPagesByImageList 根据给定的文件列表排序页面(用于 EPUB)
type BookInfo ¶
type BookInfo struct {
Author string `json:"author"` // 作者
BookID string `json:"id"` // 根据 BookPath 生成的唯一 ID
StoreUrl string `json:"store_url"` // 在哪个子书库
ChildBooksNum int `json:"child_books_num"` // 子书籍数量,只统计直接的子书籍
ChildBooksID []string `json:"child_books_id"` // 子书籍BookID
Cover PageInfo `json:"cover"` // 封面图
Deleted bool `json:"deleted"` // 源文件是否已删除
Depth int `json:"depth"` // 书籍深度
ExtractPath string `json:"extract_path"` // 解压路径,7z 用,JSON 不解析
ExtractNum int `json:"extract_num"` // 文件解压数
FileSize int64 `json:"file_size"` // 文件大小
BookPath string `json:"book_path"` // 文件绝对路径,JSON 不解析
ISBN string `json:"isbn"` // ISBN
BookComplete bool `json:"book_complete"` // 书籍是否阅读完成
InitComplete bool `json:"init_complete"` // 是否初始化完成(todo:7z解压)
Modified time.Time `json:"modified_time"` // 修改时间
NonUTF8Zip bool `json:"non_utf_8_zip"` // 是否为特殊编码 zip
PageCount int `json:"page_count"` // 总页数
ParentFolder string `json:"parent_folder"` // 父文件夹
Press string `json:"press"` // 出版社
PublishedAt string `json:"published_at"` // 出版日期
Title string `json:"title"` // 书名
Type SupportFileType `json:"type"` // 书籍类型
ZipTextEncoding string `json:"zip_text_encoding"` // zip 文件编码
}
BookInfo 与 Book 唯一的区别是没有 AllPageInfo,而是封面图 URL,减小 JSON 文件的大小
func (*BookInfo) GetAllChildBooksNum ¶ added in v1.1.0
GetAllChildBooksNum 递归获取所有子书籍的数量
type BookInfos ¶ added in v1.1.0
type BookInfos []BookInfo
BookInfos 表示 BookInfo 的列表,排序用 在 Go 中,方法接收器必须是命名类型,这是为了确保类型具有一个唯一的标识和类型身份,从而可以在包级作用域中明确地定义和调用这些方法。 使用类型别名 BookInfos []BookInfo 来提供排序方法,这样可以确保 BookInfos 具有明确的类型身份,并且可以在包级作用域中使用和扩展。
type BookMark ¶ added in v1.1.0
type BookMark struct {
Type MarkType `json:"mark_type"` // 书签类型,auto 表示自动书签,user 表示用户书签
BookID string `json:"book_id"` // 书籍 ID
BookStoreID string `json:"book_store_id"` // 书籍所属书库 ID
PageIndex int `json:"page_index"` // 书签页码,从 0 开始,理论上不会超过 PageCount - 1 ,但是现实中可能会有
Description string `json:"description"` // 用户添加的备注
CreatedAt time.Time `json:"created_at"` // 创建时间
UpdatedAt time.Time `json:"updated_at"` // 更新时间
}
type BookMarks ¶ added in v1.1.0
type BookMarks []BookMark
func (*BookMarks) GetLastReadPage ¶ added in v1.1.0
func (*BookMarks) GetLastReadTime ¶ added in v1.1.5
func (*BookMarks) SortBookmarks ¶ added in v1.1.0
SortBookmarks 根据 sortBy 参数对 BookInfos 进行排序
type BookinfoWithBookMark ¶ added in v1.1.8
type PageInfo ¶ added in v1.1.0
type PageInfo struct {
Name string `json:"name"` // 用于解压的压缩文件内文件路径,或图片名,为了适应特殊字符,经过一次转义
Path string `json:"path"` // 文件路径
Size int64 `json:"size"` // 文件大小
ModTime time.Time `json:"mod_time"` // 修改时间
Url string `json:"url"` // 远程用户读取图片的URL,为了适应特殊字符,经过转义
PageNum int `json:"page_num"` // 图片在原始文件中的页码位置,这个字段不解析。用来按照原始顺序排序
Blurhash string `json:"-"` // `json:"blurhash"` //blurhash占位符。扫描图片生成(tools.GetImageDataBlurHash)
Height int `json:"-"` // 暂时用不着 这个字段不解析`json:"height"` //blurhash用,图片高
Width int `json:"-"` // 暂时用不着 这个字段不解析`json:"width"` //blurhash用,图片宽
ImgType string `json:"-"` // 这个字段不解析
InsertHtml string `json:"-"` // 这个字段不解析
}
PageInfo 单个媒体文件的信息
type PageInfos ¶ added in v1.1.0
type PageInfos []PageInfo
PageInfos 定义页面列表,排序用 在 Go 中,方法接收器必须是命名类型,这是为了确保类型具有一个唯一的标识和类型身份,从而可以在包级作用域中明确地定义和调用这些方法。 使用类型别名 PageInfos []PageInfo 来提供排序方法,这样可以确保 PageInfos 具有明确的类型身份,并且可以在包级作用域中使用和扩展。
func (*PageInfos) SortImages ¶ added in v1.1.0
SortImages 根据 sortBy 参数对 PageInfos 进行排序
type StoreBookInfo ¶ added in v1.1.0
type StoreInterface ¶ added in v1.1.0
type StoreInterface interface {
StoreBook(b *Book) error
GetBook(id string) (*Book, error)
DeleteBook(id string) error
ListBooks() ([]*Book, error)
GenerateBookGroup() error
StoreBookMark(mark *BookMark) error
GetBookMarks(bookID string) (*BookMarks, error)
}
StoreInterface 书库相关基本操作接口 x6
var IStore StoreInterface
type SupportFileType ¶
type SupportFileType string
const ( TypeDir SupportFileType = "dir" TypeZip SupportFileType = ".zip" TypeRar SupportFileType = ".rar" TypeBooksGroup SupportFileType = "book_group" TypeCbz SupportFileType = ".cbz" TypeCbr SupportFileType = ".cbr" TypeTar SupportFileType = ".tar" TypeEpub SupportFileType = ".epub" TypePDF SupportFileType = ".pdf" TypeHTML SupportFileType = ".html" TypeVideo SupportFileType = "video" TypeAudio SupportFileType = "audio" TypeUnknownFile SupportFileType = "unknown" )
书籍类型
func GetBookTypeByFilename ¶
func GetBookTypeByFilename(filename string) SupportFileType
GetBookTypeByFilename 初始化Book时,取得BookType