dbBase

package module
v0.0.0-...-094e1e4 Latest Latest
Warning

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

Go to latest
Published: Mar 6, 2024 License: MIT Imports: 9 Imported by: 5

Documentation

Index

Constants

View Source
const DRIVER_TYPE_BAIDU_PHOTO = "baiduPhoto"
View Source
const DRIVER_TYPE_LOCAL_FILE = "localFile"

Variables

View Source
var ErrNoRecords = errors.New("no such records in db")
View Source
var ErrNoSuchFileOrDir = errors.New("no such file or dir")

Functions

func BranchInfo

func BranchInfo(ctx context.Context, txOrDb TxOrDb, branchName string) (branch dao.Branch, err error)

func BranchList

func BranchList(ctx context.Context, txOrDb TxOrDb) (branches []dao.IBranch, err error)

func CheckExists

func CheckExists(ctx context.Context, conn *sql.DB, driverId uint64, dirPath []string, checks []dao.DirItemCheck, hashList []string) error

func CommitAndRollback

func CommitAndRollback(tx *sql.Tx, err error) error

func DeleteBranch

func DeleteBranch(ctx context.Context, conn *sql.DB, name string) error

func DeleteDevice

func DeleteDevice(ctx context.Context, conn *sql.DB, deviceId string) error

func DeleteDriver

func DeleteDriver(ctx context.Context, conn *sql.DB, driverId uint64) error

func GetDriver

func GetDriver(ctx context.Context, txOrDb TxOrDb, driverId uint64) (driver dao.Driver, err error)

func GetDriverDirCalculatedInfo

func GetDriverDirCalculatedInfo(ctx context.Context, txOrDb TxOrDb, driverId uint64, filePath []string) (info dao.DirCalculatedInfo, err error)

func GetDriverFile

func GetDriverFile(ctx context.Context, conn *sql.DB, driverId uint64, filePath []string) (file dao.DriverFile, err error)

func GetDriverLocalFile

func GetDriverLocalFile(ctx context.Context, txOrDb TxOrDb, driverId uint64) (driver *dao.Driver, err error)

func GetDriverSync

func GetDriverSync(ctx context.Context, txOrDb TxOrDb, driverId uint64) (driver dao.Driver, err error)

func GetDriverToken

func GetDriverToken(ctx context.Context, txOrDb TxOrDb, driverId uint64) (driver dao.Driver, err error)

func GetEarliestCrated

func GetEarliestCrated(ctx context.Context, conn *sql.DB, db DbImpl, hash string) (t int64, err error)

func GetExif

func GetExif(ctx context.Context, conn *sql.DB, hash string) (exif *dao.Exif, err error)

func GetFileHashMode

func GetFileHashMode(ctx context.Context, conn *sql.DB, branchName string, splitPath []string) (hash string, mode os.FileMode, err error)

func GetFileType

func GetFileType(ctx context.Context, conn *sql.DB, hash string) (fileType dao.FileType, err error)

func GetLivePhotoByLivp

func GetLivePhotoByLivp(ctx context.Context, conn *sql.DB, livpHash string) (movHash string, heicHash string, err error)

func GetMetadata

func GetMetadata(ctx context.Context, conn *sql.DB, hash string) (metadata dao.Metadata, err error)

func GetVideoMetadata

func GetVideoMetadata(ctx context.Context, conn *sql.DB, hash string) (metadata *dao.VideoMetadata, err error)

func InsertBatch

func InsertBatch[T any](ctx context.Context, tx TxOrDb, maxBatchSize int, insertItems []T, column int, getInsertItemQuery func(row int) (string, error), fillArgs func(args []interface{}, start int, item T)) (err error)

func InsertBranchWithTxOrDb

func InsertBranchWithTxOrDb(ctx context.Context, txOrDb TxOrDb, branch dao.Branch) error

func InsertCommitWithTxOrDb

func InsertCommitWithTxOrDb(ctx context.Context, txOrDb TxOrDb, commit *dao.Commit) error

func InsertCommitWithTxOrDbCgoSqlite

func InsertCommitWithTxOrDbCgoSqlite(ctx context.Context, txOrDb TxOrDb, commit *dao.Commit) error

func InsertDCIMMetadataTime

func InsertDCIMMetadataTime(ctx context.Context, conn *sql.DB, db DbImpl, hash string, t int64) (exist bool, err error)

func InsertDevice

func InsertDevice(ctx context.Context, conn *sql.DB, id string, name string, os string, userAgent string, hostname string) error

func InsertDirWithTx

func InsertDirWithTx(ctx context.Context, tx *sql.Tx, db DbImpl, dirItems []dao.DirItem, insertDirItems []dao.DirItem) (dir dao.Dir, err error)

func InsertDriver

func InsertDriver(ctx context.Context, conn *sql.DB, db DbImpl, driverName string, description string) (exist bool, err error)

func InsertDriverBaiduPhoto

func InsertDriverBaiduPhoto(ctx context.Context, conn *sql.DB, db DbImpl, driverName string, description string, accessToken string, refreshToken string) (exist bool, err error)

func InsertDriverLocalFile

func InsertDriverLocalFile(ctx context.Context, conn *sql.DB, db DbImpl, driverName string, description string, deviceId string, srcPath string, ignores string, encoder string) (exist bool, err error)

func InsertExif

func InsertExif(ctx context.Context, conn *sql.DB, db DbImpl, hash string, e dao.Exif) (exist bool, err error)

func InsertFile

func InsertFile(ctx context.Context, conn *sql.DB, db DbImpl, hash string, size uint64) error

func InsertFileMd5

func InsertFileMd5(ctx context.Context, conn *sql.DB, db DbImpl, hash string, hashMd5 string) error

func InsertFileType

func InsertFileType(ctx context.Context, conn *sql.DB, db DbImpl, hash string, t dao.FileType) (exist bool, err error)

func InsertHeightWidth

func InsertHeightWidth(ctx context.Context, conn *sql.DB, db DbImpl, hash string, hw dao.HeightWidth) error

func InsertNullExif

func InsertNullExif(ctx context.Context, conn *sql.DB, db DbImpl, hash string) (exist bool, err error)

func InsertNullVideoMetadata

func InsertNullVideoMetadata(ctx context.Context, conn *sql.DB, db DbImpl, hash string) (exist bool, err error)

func InsertVideoMetadata

func InsertVideoMetadata(ctx context.Context, conn *sql.DB, db DbImpl, hash string, m dao.VideoMetadata) (exist bool, err error)

func List

func List(ctx context.Context, conn *sql.DB, branchName string, splitPath []string) (dirItems []dao.DirItem, err error)

func ListByHash

func ListByHash(ctx context.Context, conn *sql.DB, hash string) (dirItems []dao.DirItem, err error)

func ListCloudDriverSync

func ListCloudDriverSync(ctx context.Context, txOrDb TxOrDb) (drivers []dao.Driver, err error)

func ListDCIMDriver

func ListDCIMDriver(ctx context.Context, txOrDb TxOrDb) (drivers []dao.DCIMDriver, err error)

func ListDCIMDriverMetadata

func ListDCIMDriverMetadata(ctx context.Context, txOrDb TxOrDb, driver *dao.DCIMDriver) error

func ListDCIMLocation

func ListDCIMLocation(ctx context.Context, conn *sql.DB) (list []dao.Metadata, err error)

func ListDCIMMediaType

func ListDCIMMediaType(ctx context.Context, conn *sql.DB) (m map[string][]dao.Metadata, err error)

func ListDCIMSearchSuffix

func ListDCIMSearchSuffix(ctx context.Context, conn *sql.DB) (list []dao.DCIMSearchSuffix, err error)

func ListDCIMSearchType

func ListDCIMSearchType(ctx context.Context, conn *sql.DB) (list []dao.DCIMSearchType, err error)

func ListDevice

func ListDevice(ctx context.Context, conn *sql.DB) (list []dao.Device, err error)

func ListDriver

func ListDriver(ctx context.Context, txOrDb TxOrDb) (drivers []dao.Driver, err error)

func ListDriverFile

func ListDriverFile(ctx context.Context, conn *sql.DB, driverId uint64, filePath []string) (files []dao.DriverFile, err error)

func ListDriverFileByHash

func ListDriverFileByHash(ctx context.Context, conn *sql.DB, hash string) (files []dao.DriverFile, err error)

func ListExif

func ListExif(ctx context.Context, conn *sql.DB) (exifMap map[string]dao.Exif, err error)

func ListExpectExif

func ListExpectExif(ctx context.Context, conn *sql.DB) (hashList []string, err error)

func ListExpectExifCb

func ListExpectExifCb(ctx context.Context, conn *sql.DB, cb func(hash string)) (err error)

func ListExpectFileType

func ListExpectFileType(ctx context.Context, conn *sql.DB) (hashList []string, err error)

func ListFile

func ListFile(ctx context.Context, conn *sql.DB) (hashList []string, err error)

func ListFileHash

func ListFileHash(ctx context.Context, conn *sql.DB) (hashList []string, err error)

func ListFileMd5

func ListFileMd5(ctx context.Context, conn *sql.DB, md5List []string) (m map[string]string, err error)

func ListLivePhotoAll

func ListLivePhotoAll(ctx context.Context, conn *sql.DB) (hashList []string, err error)

func ListLivePhotoNew

func ListLivePhotoNew(ctx context.Context, conn *sql.DB) (hashList []string, err error)

func ListLocalFileDriver

func ListLocalFileDriver(ctx context.Context, txOrDb TxOrDb, deviceId string) (drivers []dao.Driver, err error)

func ListMetadata

func ListMetadata(ctx context.Context, conn *sql.DB) (list []dao.Metadata, err error)

func ListMetadataTime

func ListMetadataTime(ctx context.Context, conn *sql.DB) (list []dao.Metadata, err error)

func NewBranch

func NewBranch(ctx context.Context, conn *sql.DB, db DbImpl, branchName string) (exist bool, err error)

func Open

func Open(ctx context.Context, conn *sql.DB, branchName string, splitPath []string) (hash string, mode os.FileMode, dirItems []dao.DirItem, err error)

func Open2

func Open2(ctx context.Context, conn *sql.DB, branchName string, splitPath []string) (dirItem dao.DirItem, dirItems []dao.DirItem, err error)

func RemoveDirItem

func RemoveDirItem(ctx context.Context, conn *sql.DB, db DbImpl, branchName string, splitPath []string) (commit dao.Commit, branch dao.Branch, err error)

func ResetBranch

func ResetBranch(ctx context.Context, conn *sql.DB, db DbImpl, branchName string) (err error)

func ResetDriver

func ResetDriver(ctx context.Context, conn *sql.DB, driverId uint64) error

func SearchDCIM

func SearchDCIM(ctx context.Context, conn *sql.DB, typeList []string, suffixList []string) (list []dao.Metadata, err error)

func SetLivpForMovAndHeicOrJpgAll

func SetLivpForMovAndHeicOrJpgAll(ctx context.Context, txOrDb TxOrDb) (err error)

func SetLivpForMovAndHeicOrJpgInDirPath

func SetLivpForMovAndHeicOrJpgInDirPath(ctx context.Context, conn *sql.DB, driverId uint64, filePath []string) (err error)

func SetLivpForMovAndHeicOrJpgInDriver

func SetLivpForMovAndHeicOrJpgInDriver(ctx context.Context, conn *sql.DB, driverId uint64) (err error)

func SumFileSize

func SumFileSize(ctx context.Context, conn *sql.DB) (size uint64, err error)

func UpdateDriverLocalFile

func UpdateDriverLocalFile(ctx context.Context, conn *sql.DB, driverId uint64, srcPath, ignores, encoder string) error

func UpdateDriverSync

func UpdateDriverSync(ctx context.Context, conn *sql.DB, driverId uint64, sync bool, h int64, m int64) error

func UpsertBranchWithTxOrDb

func UpsertBranchWithTxOrDb(ctx context.Context, txOrDb TxOrDb, branch dao.Branch) error

func UpsertBranchWithTxOrDbMysql

func UpsertBranchWithTxOrDbMysql(ctx context.Context, txOrDb TxOrDb, branch dao.Branch) error

func UpsertDCIMMetadataTime

func UpsertDCIMMetadataTime(ctx context.Context, conn *sql.DB, hash string, t int64) error

func UpsertDirItem

func UpsertDirItem(ctx context.Context, conn *sql.DB, db DbImpl, branchName string, splitPath []string, item dao.DirItem) (commit dao.Commit, branch dao.Branch, err error)

func UpsertDirItems

func UpsertDirItems(ctx context.Context, conn *sql.DB, db DbImpl, branchName string, splitPath []string, items []dao.DirItem) (commit dao.Commit, branch dao.Branch, err error)

func UpsertDriverFile

func UpsertDriverFile(ctx context.Context, conn *sql.DB, f dao.DriverFile, mkdir bool) error

func UpsertDriverFileMysql

func UpsertDriverFileMysql(ctx context.Context, txOrDb TxOrDb, f dao.DriverFile, mkdir bool) error

func UpsertDriverFiles

func UpsertDriverFiles(ctx context.Context, conn *sql.DB, db DbImpl, files []dao.DriverFile) error

func UpsertFileType

func UpsertFileType(ctx context.Context, conn *sql.DB, hash string, t dao.FileType) error

func UpsertLivePhoto

func UpsertLivePhoto(ctx context.Context, txOrDb TxOrDb, movHash string, heicHash string, jpgHash string, livpHash string) (err error)

func WriteDir

func WriteDir(ctx context.Context, conn *sql.DB, db DbImpl, dirItems []dao.DirItem) (dir dao.Dir, err error)

func WriteFileWithTxOrDb

func WriteFileWithTxOrDb(ctx context.Context, txOrDb TxOrDb, db DbImpl, file dao.File) error

Types

type DbImpl

type DbImpl interface {
	InsertCommitWithTxOrDb(ctx context.Context, txOrDb TxOrDb, commit *dao.Commit) error
	UpsertBranchWithTxOrDb(ctx context.Context, txOrDb TxOrDb, branch dao.Branch) error

	IsUniqueConstraintError(error) bool
	MaxBatchSize() int
}

type TxOrDb

type TxOrDb interface {
	ExecContext(ctx context.Context, query string, args ...any) (sql.Result, error)
	PrepareContext(ctx context.Context, query string) (*sql.Stmt, error)
	QueryContext(ctx context.Context, query string, args ...any) (*sql.Rows, error)
}

Jump to

Keyboard shortcuts

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