sqlc

package
v1.3.10 Latest Latest
Warning

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

Go to latest
Published: Nov 3, 2026 License: MIT Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CloseDatabase

func CloseDatabase()

func ConvertCommaSeparatedString

func ConvertCommaSeparatedString(nullString sql.NullString) []string

ConvertCommaSeparatedString 将英文逗号分隔的字符串转换为 []string

func FromSQLCBook

func FromSQLCBook(sqlcBook Book) *model.Book

FromSQLCBook 将sqlc.Book转换为model.Book

func FromSQLCBookmark

func FromSQLCBookmark(sqlcBookmark Bookmark) model.BookMark

FromSQLCBookmark 将 sqlc.Bookmark 转换为 model.BookMark

func FromSQLCBookmarks

func FromSQLCBookmarks(sqlcBookmarks []Bookmark) model.BookMarks

FromSQLCBookmarks 批量转换 sqlc.Bookmark 为 model.BookMarks

func FromSQLCBooks

func FromSQLCBooks(sqlcBooks []Book, pagesMap map[string][]model.PageInfo, bookmarksMap map[string]model.BookMarks) []*model.Book

FromSQLCBooks 批量转换sqlc.Book为model.Book

func FromSQLCPageInfo

func FromSQLCPageInfo(sqlcPageInfo PageInfo) model.PageInfo

FromSQLCPageInfo 将sqlc.PageInfo转换为model.PageInfo

func FromSQLCPageInfos

func FromSQLCPageInfos(sqlcPageInfos []PageInfo) []model.PageInfo

FromSQLCPageInfos 批量转换sqlc.PageInfo为model.PageInfo

func OpenDatabase

func OpenDatabase(options DBOptions) error

OpenDatabase 根据配置选择 SQLite 或 PostgreSQL 后端。

Types

type Book

type Book struct {
	ID               int64
	Title            string
	BookID           string
	Owner            sql.NullString
	BookPath         string
	StoreUrl         string
	Type             string
	ChildBooksNum    sql.NullInt64
	ChildBooksID     sql.NullString
	Depth            sql.NullInt64
	ParentFolder     sql.NullString
	PageCount        sql.NullInt64
	LastReadPage     sql.NullInt64
	FileSize         sql.NullInt64
	Author           sql.NullString
	Isbn             sql.NullString
	Press            sql.NullString
	PublishedAt      sql.NullString
	ExtractPath      sql.NullString
	ModifiedTime     sql.NullTime
	ExtractNum       sql.NullInt64
	BookComplete     sql.NullBool
	InitComplete     sql.NullBool
	NonUtf8zip       sql.NullBool
	ZipTextEncoding  sql.NullString
	CreatedByVersion sql.NullString
	IsRemote         sql.NullBool
	RemoteUrl        sql.NullString
	RemoteBookID     sql.NullString
	RemoteStoreKey   sql.NullString
	RemoteShelfKey   sql.NullString
	RemoteShelfName  sql.NullString
	CoverName        sql.NullString
	CoverPath        sql.NullString
	CoverSize        sql.NullInt64
	CoverModTime     sql.NullTime
	CoverUrl         sql.NullString
	CoverPageNum     sql.NullInt64
	CoverBlurhash    sql.NullString
	CoverHeight      sql.NullInt64
	CoverWidth       sql.NullInt64
	CoverImgType     sql.NullString
	CoverInsertHtml  sql.NullString
	Deleted          sql.NullBool
}

type Bookmark

type Bookmark struct {
	ID          int64
	Type        string
	BookID      string
	BookStoreID sql.NullString
	PageIndex   int64
	Description sql.NullString
	CreatedAt   sql.NullTime
	UpdatedAt   sql.NullTime
}

type CreateBookmarkParams

type CreateBookmarkParams struct {
	Type        string
	BookID      string
	BookStoreID sql.NullString
	PageIndex   int64
	Description sql.NullString
	CreatedAt   sql.NullTime
	UpdatedAt   sql.NullTime
}

func ToSQLCCreateBookmarkParams

func ToSQLCCreateBookmarkParams(bookID string, bookmark model.BookMark) CreateBookmarkParams

ToSQLCCreateBookmarkParams 将 model.BookMark 转换为 sqlc.CreateBookmarkParams

type CreatePageInfoParams

type CreatePageInfoParams struct {
	BookID     string
	Name       string
	Path       sql.NullString
	Size       sql.NullInt64
	ModTime    sql.NullTime
	Url        sql.NullString
	PageNum    sql.NullInt64
	Blurhash   sql.NullString
	Height     sql.NullInt64
	Width      sql.NullInt64
	ImgType    sql.NullString
	InsertHtml sql.NullString
}

func ToSQLCCreatePageInfoParams

func ToSQLCCreatePageInfoParams(pageInfo model.PageInfo, bookID string) CreatePageInfoParams

ToSQLCCreatePageInfoParams 将model.PageInfo 转换为sqlc.CreatePageInfoParams //"Valid"必须是验证条件或true

type DBOptions added in v1.2.36

type DBOptions struct {
	Type      string
	DSN       string
	ConfigDir string
}

DBOptions 描述本次启动要使用的数据库后端。

type DBTX

type DBTX interface {
	ExecContext(context.Context, string, ...interface{}) (sql.Result, error)
	PrepareContext(context.Context, string) (*sql.Stmt, error)
	QueryContext(context.Context, string, ...interface{}) (*sql.Rows, error)
	QueryRowContext(context.Context, string, ...interface{}) *sql.Row
}

type DeleteBookmarkByBookIDAndTypeParams

type DeleteBookmarkByBookIDAndTypeParams struct {
	BookID string
	Type   string
}

type GetPageInfoByBookIDAndPageParams

type GetPageInfoByBookIDAndPageParams struct {
	BookID  string
	PageNum sql.NullInt64
}

type PageInfo

type PageInfo struct {
	ID         int64
	BookID     string
	Name       string
	Path       sql.NullString
	Size       sql.NullInt64
	ModTime    sql.NullTime
	Url        sql.NullString
	PageNum    sql.NullInt64
	Blurhash   sql.NullString
	Height     sql.NullInt64
	Width      sql.NullInt64
	ImgType    sql.NullString
	InsertHtml sql.NullString
}

type Queries

type Queries struct {
	// contains filtered or unexported fields
}

func New

func New(db DBTX) *Queries

func (*Queries) CountBooks

func (q *Queries) CountBooks(ctx context.Context) (int64, error)

Statistics queries Count total books

func (*Queries) CountBooksByType

func (q *Queries) CountBooksByType(ctx context.Context, type_ string) (int64, error)

Count books by type

func (*Queries) CountPageInfosByBookID

func (q *Queries) CountPageInfosByBookID(ctx context.Context, bookID string) (int64, error)

Count media files for a book

func (*Queries) CreateBookmark

func (q *Queries) CreateBookmark(ctx context.Context, arg CreateBookmarkParams) (Bookmark, error)

Create a bookmark

func (*Queries) CreatePageInfo

func (q *Queries) CreatePageInfo(ctx context.Context, arg CreatePageInfoParams) (PageInfo, error)

Create media file record

func (*Queries) DeleteBook

func (q *Queries) DeleteBook(ctx context.Context, bookID string) error

Delete book

func (*Queries) DeleteBookmarkByBookIDAndType

func (q *Queries) DeleteBookmarkByBookIDAndType(ctx context.Context, arg DeleteBookmarkByBookIDAndTypeParams) error

Delete a bookmark by (book_id, type)

func (*Queries) DeleteBookmarksByBookID

func (q *Queries) DeleteBookmarksByBookID(ctx context.Context, bookID string) error

Delete all bookmarks for a book

func (*Queries) DeletePageInfosByBookID

func (q *Queries) DeletePageInfosByBookID(ctx context.Context, bookID string) error

Delete all media files for a book

func (*Queries) GetBookByBookPath

func (q *Queries) GetBookByBookPath(ctx context.Context, bookPath string) (Book, error)

Get book by file path

func (*Queries) GetBookByID

func (q *Queries) GetBookByID(ctx context.Context, bookID string) (Book, error)

Book related queries Get single book by ID

func (*Queries) GetPageInfoByBookIDAndPage

func (q *Queries) GetPageInfoByBookIDAndPage(ctx context.Context, arg GetPageInfoByBookIDAndPageParams) (PageInfo, error)

Get specific page by book ID and page number

func (*Queries) GetPageInfosByBookID

func (q *Queries) GetPageInfosByBookID(ctx context.Context, bookID string) ([]PageInfo, error)

Media files related queries Get all page information by book ID

func (*Queries) ListAllBookStoreURLs

func (q *Queries) ListAllBookStoreURLs(ctx context.Context) ([]string, error)

get all store_url for books

func (*Queries) ListBookmarksByBookID

func (q *Queries) ListBookmarksByBookID(ctx context.Context, bookID string) ([]Bookmark, error)

Bookmarks related queries List bookmarks by book ID

func (*Queries) ListBooks

func (q *Queries) ListBooks(ctx context.Context) ([]Book, error)

List all books

func (*Queries) ListBooksByStorePath

func (q *Queries) ListBooksByStorePath(ctx context.Context, storeUrl string) ([]Book, error)

List books by store path

func (*Queries) ListBooksByType

func (q *Queries) ListBooksByType(ctx context.Context, type_ string) ([]Book, error)

List books by type

func (*Queries) MarkBookAsDeleted

func (q *Queries) MarkBookAsDeleted(ctx context.Context, bookID string) error

Mark book as deleted (soft delete)

func (*Queries) SearchBooksByTitle

func (q *Queries) SearchBooksByTitle(ctx context.Context, dollar_1 sql.NullString) ([]Book, error)

Search books by title (fuzzy search)

func (*Queries) UpdateBookmark

func (q *Queries) UpdateBookmark(ctx context.Context, arg UpdateBookmarkParams) error

Update a bookmark (by book_id, type)

func (*Queries) UpdateLastReadPage

func (q *Queries) UpdateLastReadPage(ctx context.Context, arg UpdateLastReadPageParams) error

Update reading progress

func (*Queries) UpdatePageInfo

func (q *Queries) UpdatePageInfo(ctx context.Context, arg UpdatePageInfoParams) error

Update media file information

func (*Queries) UpsertBook added in v1.3.9

func (q *Queries) UpsertBook(ctx context.Context, arg UpsertBookParams) error

Insert or update the complete book metadata atomically.

func (*Queries) WithTx

func (q *Queries) WithTx(tx *sql.Tx) *Queries

type ScanFailure added in v1.3.9

type ScanFailure struct {
	Key              string
	StoreUrl         string
	FilePath         string
	FileSize         int64
	ModifiedUnixNano int64
	CreatedByVersion string
	FailedAt         time.Time
	Error            string
	IsRemote         bool
}

type StoreDatabase

type StoreDatabase struct {
	// contains filtered or unexported fields
}

StoreDatabase 书籍数据访问层

var (
	DbStore *StoreDatabase
)

func NewDBStore

func NewDBStore(db *sql.DB) *StoreDatabase

NewDBStore 创建新的BookRepository实例

func NewPostgresDBStore added in v1.2.36

func NewPostgresDBStore(db *sql.DB) *StoreDatabase

NewPostgresDBStore 使用 PostgreSQL 生成查询和 adapter 创建统一的数据访问层。

func (*StoreDatabase) CheckDBQueries

func (db *StoreDatabase) CheckDBQueries() error

CheckDBQueries 检查 queries 是否已初始化

func (*StoreDatabase) DeleteBook

func (db *StoreDatabase) DeleteBook(bookID string) error

DeleteBook 删除书籍信息

func (*StoreDatabase) DeleteBookMark added in v1.2.12

func (db *StoreDatabase) DeleteBookMark(bookID string, markType model.MarkType, pageIndex int) error

DeleteBookMark 删除指定书籍的特定书签 根据 bookID + markType + pageIndex 唯一确定一个书签

func (*StoreDatabase) GenerateBookGroup

func (db *StoreDatabase) GenerateBookGroup() error

GenerateBookGroup 复用内存书库的分组规则;临时 Store 仅计算拓扑,不写 JSON。

func (*StoreDatabase) GetBook

func (db *StoreDatabase) GetBook(bookID string) (*model.Book, error)

GetBook 根据ID获取书籍信息

func (*StoreDatabase) GetBookMarks

func (db *StoreDatabase) GetBookMarks(bookID string) (*model.BookMarks, error)

func (*StoreDatabase) ListBooks

func (db *StoreDatabase) ListBooks() (list []*model.Book, err error)

ListBooks 从数据库查询所有书籍的详细信息,避免重复扫描压缩包。忽略已删除书籍

func (*StoreDatabase) LoadScanFailures added in v1.3.9

func (db *StoreDatabase) LoadScanFailures() (map[string]model.ScanFailureRecord, error)

LoadScanFailures 读取失败文件指纹,重启后仍可跳过未变化的损坏文件。

func (*StoreDatabase) SaveScanFailures added in v1.3.9

func (db *StoreDatabase) SaveScanFailures(records map[string]model.ScanFailureRecord) error

SaveScanFailures 用事务替换失败缓存;失败时保留上一次完整记录。

func (*StoreDatabase) StoreBook

func (db *StoreDatabase) StoreBook(book *model.Book) error

StoreBook 向数据库中插入一本书

func (*StoreDatabase) StoreBookMark

func (db *StoreDatabase) StoreBookMark(mark *model.BookMark) error

type UpdateBookmarkParams

type UpdateBookmarkParams struct {
	Description sql.NullString
	PageIndex   int64
	BookID      string
	Type        string
}

func ToSQLCUpdateBookmarkParams

func ToSQLCUpdateBookmarkParams(bookID string, bookmark model.BookMark) UpdateBookmarkParams

ToSQLCUpdateBookmarkParams 将 model.BookMark 转换为 sqlc.UpdateBookmarkParams

type UpdateLastReadPageParams

type UpdateLastReadPageParams struct {
	PageIndex int64
	Type      string
	BookID    string
}

type UpdatePageInfoParams

type UpdatePageInfoParams struct {
	Name       string
	Path       sql.NullString
	Size       sql.NullInt64
	ModTime    sql.NullTime
	Url        sql.NullString
	Blurhash   sql.NullString
	Height     sql.NullInt64
	Width      sql.NullInt64
	ImgType    sql.NullString
	InsertHtml sql.NullString
	BookID     string
	PageNum    sql.NullInt64
}

func ToSQLCUpdatePageInfoParams

func ToSQLCUpdatePageInfoParams(pageInfo model.PageInfo, bookID string) UpdatePageInfoParams

ToSQLCUpdatePageInfoParams 将model.PageInfo转换为sqlc.UpdatePageInfoParams //"Valid"必须是验证条件或true

type UpsertBookParams added in v1.3.9

type UpsertBookParams struct {
	Title            string
	BookID           string
	Owner            sql.NullString
	BookPath         string
	StoreUrl         string
	Type             string
	ChildBooksNum    sql.NullInt64
	ChildBooksID     sql.NullString
	Depth            sql.NullInt64
	ParentFolder     sql.NullString
	PageCount        sql.NullInt64
	LastReadPage     sql.NullInt64
	FileSize         sql.NullInt64
	Author           sql.NullString
	Isbn             sql.NullString
	Press            sql.NullString
	PublishedAt      sql.NullString
	ExtractPath      sql.NullString
	ExtractNum       sql.NullInt64
	BookComplete     sql.NullBool
	InitComplete     sql.NullBool
	NonUtf8zip       sql.NullBool
	ZipTextEncoding  sql.NullString
	CreatedByVersion sql.NullString
	IsRemote         sql.NullBool
	RemoteUrl        sql.NullString
	ModifiedTime     sql.NullTime
	Deleted          sql.NullBool
	RemoteBookID     sql.NullString
	RemoteStoreKey   sql.NullString
	RemoteShelfKey   sql.NullString
	RemoteShelfName  sql.NullString
	CoverName        sql.NullString
	CoverPath        sql.NullString
	CoverSize        sql.NullInt64
	CoverModTime     sql.NullTime
	CoverUrl         sql.NullString
	CoverPageNum     sql.NullInt64
	CoverBlurhash    sql.NullString
	CoverHeight      sql.NullInt64
	CoverWidth       sql.NullInt64
	CoverImgType     sql.NullString
	CoverInsertHtml  sql.NullString
}

func ToSQLCUpsertBookParams added in v1.3.9

func ToSQLCUpsertBookParams(book *model.Book) UpsertBookParams

ToSQLCUpsertBookParams 将model.Book转换为sqlc.UpsertBookParams //"Valid"必须是验证条件或true

type User

type User struct {
	ID        int64
	Username  string
	Password  string
	Role      sql.NullString
	Email     sql.NullString
	Key       sql.NullString
	ExpiresAt sql.NullTime
	CreatedAt sql.NullTime
	UpdatedAt sql.NullTime
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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