store

package
v1.3.0 Latest Latest
Warning

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

Go to latest
Published: Jun 20, 2026 License: MIT Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var RamStore = &StoreInRam{
	StoreInfo: StoreInfo{
		BackendURL:  "comigo://main",
		Name:        "Comigo StoreInfo",
		Description: "Comigo Main book store",
	},

	ChildStores: sync.Map{},
}

RamStore 扫描后生成。可以有多个子书库。内部使用并发安全的 sync.Map 存储书籍和书组

Functions

func DeleteBookJson

func DeleteBookJson(book *model.Book) error

DeleteBookJson 删除书籍对应的 JSON 文件

func GetBookInfoListByBookFolder added in v1.2.30

func GetBookInfoListByBookFolder(book *model.Book) (*model.BookInfos, error)

GetBookInfoListByBookFolder 根据当前书籍的真实父目录获取同目录书籍列表。 ParentFolder 只保存展示用目录名,不能作为分组 key;这里使用 StoreUrl + BookPath 父目录避免同名目录串组。

func GetChildBooksInfo

func GetChildBooksInfo(BookID string) (*model.BookInfos, error)

GetChildBooksInfo 根据 ID 获取书籍列表

func SaveMetaJson added in v1.2.30

func SaveMetaJson(book *model.Book) error

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

func (store *Store) GenerateBookGroup() error

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) LoadBooks

func (ramStore *StoreInRam) LoadBooks() error

LoadBooks 从本地路径加载书籍信息

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 添加多本书

type StoreInfo

type StoreInfo struct {
	BackendURL  string // 本地书库文件夹路径,或远程书库URL
	Name        string
	Description string
}

StoreInfo 书库基本信息

Jump to

Keyboard shortcuts

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