Documentation
¶
Index ¶
- Variables
- func DeleteBookJson(book *model.Book) error
- func GetBookInfoListByBookFolder(book *model.Book) (*model.BookInfos, error)
- func GetChildBooksInfo(BookID string) (*model.BookInfos, error)
- func SaveMetaJson(book *model.Book) error
- func TopOfShelfInfo(sortBy string) ([]model.StoreBookInfo, error)
- type Store
- type StoreInRam
- func (ramStore *StoreInRam) AddStore(storeURL string) error
- func (ramStore *StoreInRam) DeleteBook(id string) error
- func (ramStore *StoreInRam) DeleteBookMark(bookID string, markType model.MarkType, pageIndex int) error
- func (ramStore *StoreInRam) GenerateBookGroup() (e error)
- func (ramStore *StoreInRam) GetArchiveBooks() []*model.Book
- func (ramStore *StoreInRam) GetBook(id string) (*model.Book, error)
- func (ramStore *StoreInRam) GetBookMarks(bookID string) (*model.BookMarks, error)
- func (ramStore *StoreInRam) GetParentBookID(childID string) (string, error)
- func (ramStore *StoreInRam) ListBooks() ([]*model.Book, error)
- func (ramStore *StoreInRam) LoadBooks() error
- func (ramStore *StoreInRam) SaveAllBooksMetaJson() error
- func (ramStore *StoreInRam) StoreBook(b *model.Book) error
- func (ramStore *StoreInRam) StoreBookMark(mark *model.BookMark) error
- func (ramStore *StoreInRam) StoreBookToSubStore(storeURL string, b *model.Book) error
- func (ramStore *StoreInRam) StoreBooks(books []*model.Book) error
- type StoreInfo
Constants ¶
This section is empty.
Variables ¶
var RamStore = &StoreInRam{ StoreInfo: StoreInfo{ BackendURL: "comigo://main", Name: "Comigo StoreInfo", Description: "Comigo Main book store", }, ChildStores: sync.Map{}, }
RamStore 扫描后生成。可以有多个子书库。内部使用并发安全的 sync.Map 存储书籍和书组
Functions ¶
func GetBookInfoListByBookFolder ¶ added in v1.2.30
GetBookInfoListByBookFolder 根据当前书籍的真实父目录获取同目录书籍列表。 ParentFolder 只保存展示用目录名,不能作为分组 key;这里使用 StoreUrl + BookPath 父目录避免同名目录串组。
func GetChildBooksInfo ¶
GetChildBooksInfo 根据 ID 获取书籍列表
func SaveMetaJson ¶ added in v1.2.30
SaveMetaJson 将单本书籍信息保存为 JSON 文件
func TopOfShelfInfo ¶
func TopOfShelfInfo(sortBy string) ([]model.StoreBookInfo, error)
TopOfShelfInfo 获取顶层书架信息
Types ¶
type Store ¶
type Store struct {
StoreInfo
BookMap sync.Map // 拥有的书籍,key是BookID,存储 *Book 与 *BooksGroup
BookMarksMap sync.Map // 书签,key是BookID,存储 BookMarks
}
Store 对应某个扫描路径的子书库,目前只支持本地书库
func (*Store) GenerateBookGroup ¶
GenerateBookGroup 分析书库中已有书籍的路径,生成书籍组信息
type StoreInRam ¶
type StoreInRam struct {
StoreInfo
ChildStores sync.Map // key为路径 存储 *Store
PendingBookmarks sync.Map // 待迁移的书签,key为BookID,value为model.BookMarks
}
StoreInRam 内存书库,扫描后生成。可以有多个子书库。
func (*StoreInRam) AddStore ¶
func (ramStore *StoreInRam) AddStore(storeURL string) error
AddStore 创建一个新书库
func (*StoreInRam) DeleteBook ¶
func (ramStore *StoreInRam) DeleteBook(id string) error
func (*StoreInRam) DeleteBookMark ¶ added in v1.2.12
func (ramStore *StoreInRam) DeleteBookMark(bookID string, markType model.MarkType, pageIndex int) error
DeleteBookMark 删除指定书籍的特定书签 根据 bookID + markType + pageIndex 唯一确定一个书签
func (*StoreInRam) GenerateBookGroup ¶
func (ramStore *StoreInRam) GenerateBookGroup() (e error)
GenerateBookGroup 分析所有子书库,并并生成书籍组
func (*StoreInRam) GetArchiveBooks ¶
func (ramStore *StoreInRam) GetArchiveBooks() []*model.Book
GetArchiveBooks 获取所有压缩包格式的书籍
func (*StoreInRam) GetBook ¶
func (ramStore *StoreInRam) GetBook(id string) (*model.Book, error)
GetBook 根据 BookID 获取书籍 GetBookByID 根据 BookID 获取书籍
func (*StoreInRam) GetBookMarks ¶
func (ramStore *StoreInRam) GetBookMarks(bookID string) (*model.BookMarks, error)
func (*StoreInRam) GetParentBookID ¶
func (ramStore *StoreInRam) GetParentBookID(childID string) (string, error)
GetParentBookID 通过子书籍 ID 获取所属书组 ID。 找不到父书组时返回空字符串和错误,调用方应按“没有父级”处理。
func (*StoreInRam) ListBooks ¶
func (ramStore *StoreInRam) ListBooks() ([]*model.Book, error)
ListBooks 列出所有书籍
func (*StoreInRam) SaveAllBooksMetaJson ¶ added in v1.2.30
func (ramStore *StoreInRam) SaveAllBooksMetaJson() error
SaveAllBooksMetaJson 保存书籍信息到本地硬盘(JSON 文件)
func (*StoreInRam) StoreBook ¶
func (ramStore *StoreInRam) StoreBook(b *model.Book) error
StoreBook 添加一本书,并在内存入库成功后持久化 metadata。
func (*StoreInRam) StoreBookMark ¶
func (ramStore *StoreInRam) StoreBookMark(mark *model.BookMark) error
func (*StoreInRam) StoreBookToSubStore ¶ added in v1.2.30
func (ramStore *StoreInRam) StoreBookToSubStore(storeURL string, b *model.Book) error
StoreBookToSubStore 将某一本书,放到BookMap里面去
func (*StoreInRam) StoreBooks ¶ added in v1.2.30
func (ramStore *StoreInRam) StoreBooks(books []*model.Book) error
StoreBooks 添加多本书