db

package
v0.0.0-...-a8e0717 Latest Latest
Warning

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

Go to latest
Published: Jun 25, 2025 License: MIT Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AddBookmark

func AddBookmark(db *sql.DB, doujinshiID int64, filename, name string) error

func AddFavoriteArtist

func AddFavoriteArtist(database *sql.DB, artistID int64) error

func AddFavoriteCategory

func AddFavoriteCategory(database *sql.DB, categoryID int64) error

func AddFavoriteCharacter

func AddFavoriteCharacter(db *sql.DB, characterID int64) error

func AddFavoriteGroup

func AddFavoriteGroup(database *sql.DB, groupID int64) error

func AddFavoriteImage

func AddFavoriteImage(db *sql.DB, imageID int64) error

func AddFavoriteLanguage

func AddFavoriteLanguage(database *sql.DB, languageID int64) error

func AddFavoriteParody

func AddFavoriteParody(db *sql.DB, parodyID int64) error

func AddFavoriteTag

func AddFavoriteTag(database *sql.DB, tagID int64) error

func CheckPassword

func CheckPassword(database *sql.DB, password string) (bool, error)

func CreateSavedFilter

func CreateSavedFilter(db *sql.DB, name string, filters types.BrowseFilters) (int64, error)

func DeleteSavedFilter

func DeleteSavedFilter(db *sql.DB, id int64) error

func DoujinshiExists

func DoujinshiExists(db *sql.DB, source, externalID string) (bool, error)

func DoujinshiOrganizedList

func DoujinshiOrganizedList(db *sql.DB, source, externalID string) (bool, error)

func GetArtistIDByName

func GetArtistIDByName(db *sql.DB, artistName string) (int64, error)

func GetCharacterIDByName

func GetCharacterIDByName(db *sql.DB, characterName string) (int64, error)

func GetGroupIDByName

func GetGroupIDByName(db *sql.DB, groupName string) (int64, error)

func GetOCount

func GetOCount(db *sql.DB, doujinshiID int64, filename string) (int, error)

func GetParodyIDByName

func GetParodyIDByName(db *sql.DB, parodyName string) (int64, error)

func GetTagIDByName

func GetTagIDByName(db *sql.DB, tagName string) (int64, error)

func GetTotalOCount

func GetTotalOCount(db *sql.DB, doujinshiID int64) (int, error)

func ImageExists

func ImageExists(db *sql.DB, filePath string) (bool, error)

func ImageExistsByHash

func ImageExistsByHash(db *sql.DB, hash string) (bool, error)

func IncrementImageViewCount

func IncrementImageViewCount(db *sql.DB, imageID int64) error

func InitDB

func InitDB(filepath string) (*sql.DB, error)

func InsertDoujinshiWithMetadata

func InsertDoujinshiWithMetadata(db *sql.DB, meta Doujinshi, folderName string) error

func InsertImageWithMetadata

func InsertImageWithMetadata(db *sql.DB, img Image) error

func InsertUser

func InsertUser(db *sql.DB, username, passwordHash string) (int64, error)

NOTE: not in use

func IsImageFavorited

func IsImageFavorited(db *sql.DB, imageID int64) (bool, error)

func RemoveBookmark

func RemoveBookmark(db *sql.DB, doujinshiID int64, filename string) error

func RemoveFavoriteArtist

func RemoveFavoriteArtist(database *sql.DB, artistID int64) error

func RemoveFavoriteCategory

func RemoveFavoriteCategory(database *sql.DB, categoryID int64) error

func RemoveFavoriteCharacter

func RemoveFavoriteCharacter(db *sql.DB, characterID int64) error

func RemoveFavoriteGroup

func RemoveFavoriteGroup(database *sql.DB, groupID int64) error

func RemoveFavoriteImage

func RemoveFavoriteImage(db *sql.DB, imageID int64) error

func RemoveFavoriteLanguage

func RemoveFavoriteLanguage(database *sql.DB, languageID int64) error

func RemoveFavoriteParody

func RemoveFavoriteParody(db *sql.DB, parodyID int64) error

func RemoveFavoriteTag

func RemoveFavoriteTag(database *sql.DB, tagID int64) error

func SetDoujinshiProgress

func SetDoujinshiProgress(
	db *sql.DB,
	doujinshiID string,
	rating *int,
	lastPage *int,
) error

func SetOCount

func SetOCount(database *sql.DB, doujinshiID int64, filename string, oCount int) error

func SetPassword

func SetPassword(db *sql.DB, passwordHash string) error

func UpdateBookmark

func UpdateBookmark(db *sql.DB, bookmarkID int64, name string) error

func UpdateDoujinshiProgress

func UpdateDoujinshiProgress(
	db *sql.DB,
	doujinshiID string,
	rating *int,
	lastPage *int,
) error

func UpdateFolderName

func UpdateFolderName(db *sql.DB, id int64, folderName string) error

func UpdateImageOCount

func UpdateImageOCount(db *sql.DB, imageID int64, oCount int) error

func UpdateImageRating

func UpdateImageRating(db *sql.DB, imageID int64, rating int) error

func UpdateSavedFilter

func UpdateSavedFilter(db *sql.DB, id int64, name string, filters types.BrowseFilters) error

Types

type ArtistData

type ArtistData struct {
	ID            int64    `json:"id"`
	Name          string   `json:"name"`
	IsFavorite    bool     `json:"isFavorite"`
	DoujinCount   int      `json:"doujinCount"`
	TotalOCount   int64    `json:"totalOCount"`
	AverageRating *float64 `json:"averageRating"`
}

func GetAllArtist

func GetAllArtist(db *sql.DB) ([]ArtistData, error)

func GetArtistDetails

func GetArtistDetails(db *sql.DB, artistID int64) (*ArtistData, error)

type CharacterData

type CharacterData struct {
	ID            int64    `json:"id"`
	Name          string   `json:"name"`
	IsFavorite    bool     `json:"isFavorite"`
	DoujinCount   int      `json:"doujinCount"`
	TotalOCount   int64    `json:"totalOCount"`
	AverageRating *float64 `json:"averageRating"`
}

func GetAllCharacters

func GetAllCharacters(db *sql.DB) ([]CharacterData, error)

func GetCharacterDetails

func GetCharacterDetails(db *sql.DB, characterID int64) (*CharacterData, error)

type Doujinshi

type Doujinshi struct {
	ID         int64  `json:"id"`
	Source     string `json:"source"`
	ExternalID string `json:"externalId"`
	FolderName string `json:"folderName"`
	OCount     int    `json:"oCount"`

	Title       string    `json:"title"`
	SecondTitle string    `json:"secondTitle"`
	Tags        []string  `json:"tags"`
	Artists     []string  `json:"artists"`
	Characters  []string  `json:"characters"`
	Parodies    []string  `json:"parodies"`
	Groups      []string  `json:"groups"`
	Languages   []string  `json:"languages"`
	Categories  []string  `json:"categories"`
	Pages       string    `json:"pages"`
	Uploaded    time.Time `json:"uploaded"`

	BookmarkCount int                `json:"bookmarkCount"`
	Progress      *DoujinshiProgress `json:"progress,omitempty"`
}

func GetAllDoujinshi

func GetAllDoujinshi(db *sql.DB) ([]Doujinshi, error)

func GetDoujinshi

func GetDoujinshi(db *sql.DB, id string) (Doujinshi, error)

func GetDoujinshiByArtist

func GetDoujinshiByArtist(db *sql.DB, artistID int64) ([]Doujinshi, error)

func GetDoujinshiByCharacter

func GetDoujinshiByCharacter(db *sql.DB, characterID int64) ([]Doujinshi, error)

func GetDoujinshiByGroup

func GetDoujinshiByGroup(db *sql.DB, groupID int64) ([]Doujinshi, error)

func GetDoujinshiByParody

func GetDoujinshiByParody(db *sql.DB, parodyID int64) ([]Doujinshi, error)

func GetDoujinshiByTag

func GetDoujinshiByTag(db *sql.DB, tagID int64) ([]Doujinshi, error)

func GetPendingDoujinshi

func GetPendingDoujinshi(db *sql.DB) ([]Doujinshi, error)

func GetSimilarDoujinshiByMetaData

func GetSimilarDoujinshiByMetaData(
	db *sql.DB,
	excludedDoujinshiID string,
	characters []string,
	tags []string,
	parodies []string,
) ([]Doujinshi, error)

type DoujinshiBookmark

type DoujinshiBookmark struct {
	ID          int64     `json:"id"`
	DoujinshiID int64     `json:"doujinshiId"`
	Filename    string    `json:"filename"`
	Name        string    `json:"name"`
	CreatedAt   time.Time `json:"createdAt"`
}

func GetBookmarks

func GetBookmarks(db *sql.DB, doujinshiID int64) ([]DoujinshiBookmark, error)

type DoujinshiPageO

type DoujinshiPageO struct {
	DoujinshiID int64  `json:"id"`
	Filename    string `json:"filename"`
	OCount      int    `json:"ocount"`
}

type DoujinshiProgress

type DoujinshiProgress struct {
	DoujinshiID int64 `json:"doujinshiId"`
	Rating      *int  `json:"rating"`   // nullable
	LastPage    *int  `json:"lastPage"` // nullable
}

func GetDoujinshiProgress

func GetDoujinshiProgress(db *sql.DB, doujinshiID string) (DoujinshiProgress, error)

type GroupData

type GroupData struct {
	ID            int64    `json:"id"`
	Name          string   `json:"name"`
	IsFavorite    bool     `json:"isFavorite"`
	DoujinCount   int      `json:"doujinCount"`
	TotalOCount   int64    `json:"totalOCount"`
	AverageRating *float64 `json:"averageRating"`
}

GroupData holds aggregated information for a single group.

func GetAllGroups

func GetAllGroups(db *sql.DB) ([]GroupData, error)

func GetGroupDetails

func GetGroupDetails(db *sql.DB, groupID int64) (*GroupData, error)

type Image

type Image struct {
	ID         int64     `json:"id"`
	Source     string    `json:"source"`
	ExternalID string    `json:"external_id"`
	Filename   string    `json:"filename"`
	FilePath   string    `json:"file_path"`
	FileSize   int64     `json:"file_size"`
	Width      int       `json:"width"`
	Height     int       `json:"height"`
	Format     string    `json:"format"`
	Uploaded   time.Time `json:"uploaded"`
	Hash       string    `json:"hash"`

	// Metadata
	Tags       []string `json:"tags"`
	Artists    []string `json:"artists"`
	Characters []string `json:"characters"`
	Parodies   []string `json:"parodies"`
	Groups     []string `json:"groups"`
	Categories []string `json:"categories"`

	// Progress
	Rating    int `json:"rating"`
	OCount    int `json:"o_count"`
	ViewCount int `json:"view_count"`
}

func GetAllImages

func GetAllImages(db *sql.DB) ([]Image, error)

func GetFavoriteImages

func GetFavoriteImages(db *sql.DB) ([]Image, error)

func GetImage

func GetImage(db *sql.DB, id string) (Image, error)

func GetImagesByArtist

func GetImagesByArtist(db *sql.DB, artistID int64) ([]Image, error)

func GetSimilarImagesByMetaData

func GetSimilarImagesByMetaData(
	db *sql.DB,
	excludedImageID string,
	characters []string,
	tags []string,
	parodies []string,
) ([]Image, error)

type ImageArtistData

type ImageArtistData struct {
	ID            int64    `json:"id"`
	Name          string   `json:"name"`
	IsFavorite    bool     `json:"isFavorite"`
	ImageCount    int      `json:"imageCount"`
	TotalOCount   int64    `json:"totalOCount"`
	AverageRating *float64 `json:"averageRating"`
}

func GetAllImageArtists

func GetAllImageArtists(db *sql.DB) ([]ImageArtistData, error)

type ImageProgress

type ImageProgress struct {
	ImageID    int64   `json:"image_id"`
	Rating     int     `json:"rating"`
	OCount     int     `json:"o_count"`
	ViewCount  int     `json:"view_count"`
	LastViewed *string `json:"last_viewed"`
}

func GetImageProgress

func GetImageProgress(db *sql.DB, imageID int64) (*ImageProgress, error)

type ParodyData

type ParodyData struct {
	ID            int64    `json:"id"`
	Name          string   `json:"name"`
	IsFavorite    bool     `json:"isFavorite"`
	DoujinCount   int      `json:"doujinCount"`
	TotalOCount   int64    `json:"totalOCount"`
	AverageRating *float64 `json:"averageRating"`
}

func GetAllParodies

func GetAllParodies(db *sql.DB) ([]ParodyData, error)

func GetParodyDetails

func GetParodyDetails(db *sql.DB, parodyID int64) (*ParodyData, error)

type SavedFilter

type SavedFilter struct {
	ID        int64               `json:"id"`
	Name      string              `json:"name"`
	Filters   types.BrowseFilters `json:"filters"`
	CreatedAt time.Time           `json:"createdAt"`
}

func GetAllSavedFilters

func GetAllSavedFilters(db *sql.DB) ([]SavedFilter, error)

type ScanResult

type ScanResult struct {
	TotalScanned int      `json:"total_scanned"`
	NewImages    int      `json:"new_images"`
	Duplicates   int      `json:"duplicates"`
	Errors       []string `json:"errors"`
}

func ScanImagesFolder

func ScanImagesFolder(db *sql.DB, folderPath string) (ScanResult, error)

type TagData

type TagData struct {
	ID            int64    `json:"id"`
	Name          string   `json:"name"`
	IsFavorite    bool     `json:"isFavorite"`
	DoujinCount   int      `json:"doujinCount"`
	TotalOCount   int64    `json:"totalOCount"`
	AverageRating *float64 `json:"averageRating"`
}

func GetAllTags

func GetAllTags(db *sql.DB) ([]TagData, error)

func GetTagDetails

func GetTagDetails(db *sql.DB, tagID int64) (*TagData, error)

Jump to

Keyboard shortcuts

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