Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Author ¶
type Author struct {
ID int `json:"id" db:"id"`
Name string `json:"name" db:"name"` // UNIQUE
Sort string `json:"sort" db:"sort"`
Link string `json:"link" db:"link"` // Calibre: Edit Metadata > Manage Authors!
BookIDs IDs `json:"books" db:"_books"`
Books []*Book `json:"-" db:"-"`
}
An author is someone who wrote one or more books. Books can have multiple co-authors. The order of co-authors is only loosely preserved by book<->author links' ID sequence.
type Book ¶
type Book struct {
ID int `json:"id" db:"id"` // Autoincrementing ID.
UUID string `json:"uuid" db:"uuid"` // Random UUID (v4).
ISBN string `json:"isbn" db:"isbn"` // Deprecated; see Identifiers.
LCCN string `json:"lccn" db:"lccn"` // Deprecated; see Identifiers.
Identifiers []Identifier `json:"identifiers" db:"_identifiers"` // ISBNs, ASINs, etc.
Flags int `json:"flags" db:"flags"` // Not sure what these do.
Timestamp *time.Time `json:"timestamp" db:"timestamp"` // When it was added (editable).
Path string `json:"path" db:"path"` // Path to book's data on disk.
HasCover bool `json:"has_cover" db:"has_cover"` // A file named cover.jpg in Path.
Data []*Data `json:"data" db:"-"` // List of files in Path.
Title string `json:"title" db:"title"` // eg. "The Fifth Elephant"
Sort string `json:"sort" db:"sort"` // eg. "Fifth Elephant, The"
PubDate *time.Time `json:"pubdate" db:"pubdate"` // Publication date.
Rating sql.NullInt32 `json:"rating" db:"_rating"` // Rating (0-10).
Languages []string `json:"languages" db:"-"` // 3-letter ISO codes, eg. "eng".
AuthorSort string `json:"author_sort" db:"author_sort"` // eg. "Pratchett, Terry"
AuthorIDs IDs `json:"authors" db:"_authors"`
Authors []*Author `json:"-" db:"-"`
// The raw comment, Calibre's "Download metadata" function uses this for a synopsis.
// This field contains the raw HTML (usually produced by a WYSIWYG editor), and is
// normally formatted for the Calibre UI's styesheets. See also Comment below.
CommentRaw template.HTML `json:"comment_raw" db:"_comment"`
// The same text as CommentRaw, ran through a HTML-to-Markdown filter. Rendering this
// back into HTML produces more consistent markup than using CommentRaw directly.
Comment string `json:"comment" db:"-"`
// A book can be in multiple series, but only has a single index shared between them.
// This is mostly used for sorting, so it works as long as they're same-order subseries.
SeriesIndex float64 `json:"series_index" db:"series_index"`
SeriesIDs IDs `json:"series" db:"_series"`
Series []*Series `json:"-" db:"-"`
// A book can have zero or more tags, sometimes incorrectly referred to as categories.
TagIDs IDs `json:"tags" db:"_tags"`
Tags []*Tag `json:"-" db:"-"`
PluginData []*PluginData `json:"plugin_data" db:"-"`
LastModified time.Time `json:"last_modified" db:"last_modified"`
}
A single book in your Calibre library.
type CheckReport ¶
type CheckReport struct {
Files map[string]FileStatus
}
type Data ¶
type Data struct {
ID int `json:"id" db:"id"`
BookID int `json:"book_id" db:"book"`
Format string `json:"format" db:"format"`
UncompressedSize int `json:"uncompressed_size" db:"uncompressed_size"`
Name string `json:"name" db:"name"`
}
A data file inside a book's data directory (Book.Path).
type FileStatus ¶
type FileStatus int
const ( FileStatusMissing FileStatus = iota FileStatusOK FileStatusOrphan )
func (FileStatus) MarshalJSON ¶
func (fs FileStatus) MarshalJSON() ([]byte, error)
func (FileStatus) String ¶
func (fs FileStatus) String() string
type Identifier ¶
type Identifier struct {
ID int `json:"id" db:"id"`
BookID int `json:"book_id" db:"book"`
Type string `json:"type" db:"type"` // eg. "isbn", "mobi-asin", "google".
Val string `json:"val" db:"val"` // eg. "9781407035208".
}
An ISBN, MOBI-ASIN, Google Books ID, etc.
type Metadata ¶
type Metadata struct {
Path string `json:"path"`
Tags []*Tag `json:"tags"`
Series []*Series `json:"series"`
Authors []*Author `json:"authors"`
Books []*Book `json:"books"`
}
func (*Metadata) Check ¶
func (m *Metadata) Check() (*CheckReport, error)
type PluginData ¶
type PluginData struct {
ID int `json:"id" db:"id"`
BookID int `json:"book_id" db:"book"`
Name string `json:"name" db:"name"`
Val string `json:"val" db:"val"`
}
Usually a blob of JSON data added by a plugin.
type Series ¶
type Series struct {
ID int `json:"id" db:"id"`
Name string `json:"name" db:"name"` // UNIQUE
Sort string `json:"sort" db:"sort"`
BookIDs IDs `json:"books" db:"_books"` // many-to-many
Books []*Book `json:"-" db:"-"`
}
A series of books. Can be used to mean anything, but usually implies continuity. Note: A book can belong to multiple series, but it has only one Book.SeriesValue.
Click to show internal directories.
Click to hide internal directories.