sqlite

package
v0.1.8 Latest Latest
Warning

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

Go to latest
Published: May 1, 2026 License: MIT Imports: 21 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Sqlite

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

func New

func New() (*Sqlite, error)

func NewInMemory

func NewInMemory() (*Sqlite, error)

NewInMemory opens an isolated in-memory SQLite database and runs migrations. Each call produces an independent database, making it safe for parallel tests. Not intended for production use.

func (*Sqlite) AddArtistsToAlbum

func (s *Sqlite) AddArtistsToAlbum(ctx context.Context, opts db.AddArtistsToAlbumOpts) error

func (*Sqlite) AlbumsWithoutImages

func (s *Sqlite) AlbumsWithoutImages(ctx context.Context, from int32) ([]*models.Album, error)

func (*Sqlite) ArtistsWithoutImages

func (s *Sqlite) ArtistsWithoutImages(ctx context.Context, from int32) ([]*models.Artist, error)

func (*Sqlite) Close

func (s *Sqlite) Close(_ context.Context)

func (*Sqlite) Count

func (s *Sqlite) Count(query string, args ...any) (count int, err error)

func (*Sqlite) CountAlbums

func (s *Sqlite) CountAlbums(ctx context.Context, timeframe db.Timeframe) (int64, error)

func (*Sqlite) CountArtists

func (s *Sqlite) CountArtists(ctx context.Context, timeframe db.Timeframe) (int64, error)

func (*Sqlite) CountListens

func (s *Sqlite) CountListens(ctx context.Context, timeframe db.Timeframe) (int64, error)

func (*Sqlite) CountListensToItem

func (s *Sqlite) CountListensToItem(ctx context.Context, opts db.TimeListenedOpts) (int64, error)

func (*Sqlite) CountNewAlbums

func (s *Sqlite) CountNewAlbums(ctx context.Context, timeframe db.Timeframe) (int64, error)

func (*Sqlite) CountNewArtists

func (s *Sqlite) CountNewArtists(ctx context.Context, timeframe db.Timeframe) (int64, error)

func (*Sqlite) CountNewTracks

func (s *Sqlite) CountNewTracks(ctx context.Context, timeframe db.Timeframe) (int64, error)

func (*Sqlite) CountTimeListened

func (s *Sqlite) CountTimeListened(ctx context.Context, timeframe db.Timeframe) (int64, error)

func (*Sqlite) CountTimeListenedToItem

func (s *Sqlite) CountTimeListenedToItem(ctx context.Context, opts db.TimeListenedOpts) (int64, error)

func (*Sqlite) CountTracks

func (s *Sqlite) CountTracks(ctx context.Context, timeframe db.Timeframe) (int64, error)

func (*Sqlite) CountUsers

func (s *Sqlite) CountUsers(ctx context.Context) (int64, error)

func (*Sqlite) DeleteAlbum

func (s *Sqlite) DeleteAlbum(ctx context.Context, id int32) error

func (*Sqlite) DeleteAlbumAlias

func (s *Sqlite) DeleteAlbumAlias(ctx context.Context, id int32, alias string) error

func (*Sqlite) DeleteApiKey

func (s *Sqlite) DeleteApiKey(ctx context.Context, id int32) error

func (*Sqlite) DeleteArtist

func (s *Sqlite) DeleteArtist(ctx context.Context, id int32) error

func (*Sqlite) DeleteArtistAlias

func (s *Sqlite) DeleteArtistAlias(ctx context.Context, id int32, alias string) error

func (*Sqlite) DeleteListen

func (s *Sqlite) DeleteListen(ctx context.Context, trackId int32, listenedAt time.Time) error

func (*Sqlite) DeleteSession

func (s *Sqlite) DeleteSession(ctx context.Context, sessionId uuid.UUID) error

func (*Sqlite) DeleteTrack

func (s *Sqlite) DeleteTrack(ctx context.Context, id int32) error

func (*Sqlite) DeleteTrackAlias

func (s *Sqlite) DeleteTrackAlias(ctx context.Context, id int32, alias string) error

func (*Sqlite) Exec

func (s *Sqlite) Exec(query string, args ...any) error

Not part of the DB interface this package implements. Only used for testing.

func (*Sqlite) GetAdminUser

func (s *Sqlite) GetAdminUser(ctx context.Context) (*models.User, error)

func (*Sqlite) GetAlbum

func (s *Sqlite) GetAlbum(ctx context.Context, opts db.GetAlbumOpts) (*models.Album, error)

func (*Sqlite) GetAlbumWithNoMbzIDByTitles

func (s *Sqlite) GetAlbumWithNoMbzIDByTitles(ctx context.Context, artistId int32, titles []string) (*models.Album, error)

func (*Sqlite) GetAllAlbumAliases

func (s *Sqlite) GetAllAlbumAliases(ctx context.Context, id int32) ([]models.Alias, error)

func (*Sqlite) GetAllArtistAliases

func (s *Sqlite) GetAllArtistAliases(ctx context.Context, id int32) ([]models.Alias, error)

func (*Sqlite) GetAllTrackAliases

func (s *Sqlite) GetAllTrackAliases(ctx context.Context, id int32) ([]models.Alias, error)

func (*Sqlite) GetApiKeysByUserID

func (s *Sqlite) GetApiKeysByUserID(ctx context.Context, id int32) ([]models.ApiKey, error)

func (*Sqlite) GetArtist

func (s *Sqlite) GetArtist(ctx context.Context, opts db.GetArtistOpts) (*models.Artist, error)

func (*Sqlite) GetArtistsForAlbum

func (s *Sqlite) GetArtistsForAlbum(ctx context.Context, id int32) ([]*models.Artist, error)

func (*Sqlite) GetArtistsForTrack

func (s *Sqlite) GetArtistsForTrack(ctx context.Context, id int32) ([]*models.Artist, error)

func (*Sqlite) GetExportPage

func (s *Sqlite) GetExportPage(ctx context.Context, opts db.GetExportPageOpts) ([]*db.ExportItem, error)

func (*Sqlite) GetImageSource

func (s *Sqlite) GetImageSource(ctx context.Context, image uuid.UUID) (string, error)

func (*Sqlite) GetInterest

func (s *Sqlite) GetInterest(ctx context.Context, opts db.GetInterestOpts) ([]db.InterestBucket, error)

GetInterest computes N evenly-spaced listen-count buckets spanning the entity's entire listen history. The PG implementation used generate_series + EXTRACT(EPOCH); here we fetch all timestamps in Go and do the bucketing in memory.

func (*Sqlite) GetListenActivity

func (s *Sqlite) GetListenActivity(ctx context.Context, opts db.ListenActivityOpts) ([]db.ListenActivityItem, error)

func (*Sqlite) GetListensPaginated

func (s *Sqlite) GetListensPaginated(ctx context.Context, opts db.GetItemsOpts) (*db.PaginatedResponse[*models.Listen], error)

func (*Sqlite) GetTopAlbumsPaginated

func (s *Sqlite) GetTopAlbumsPaginated(ctx context.Context, opts db.GetItemsOpts) (*db.PaginatedResponse[db.RankedItem[*models.Album]], error)

func (*Sqlite) GetTopArtistsPaginated

func (s *Sqlite) GetTopArtistsPaginated(ctx context.Context, opts db.GetItemsOpts) (*db.PaginatedResponse[db.RankedItem[*models.Artist]], error)

func (*Sqlite) GetTopTracksPaginated

func (s *Sqlite) GetTopTracksPaginated(ctx context.Context, opts db.GetItemsOpts) (*db.PaginatedResponse[db.RankedItem[*models.Track]], error)

func (*Sqlite) GetTrack

func (s *Sqlite) GetTrack(ctx context.Context, opts db.GetTrackOpts) (*models.Track, error)

func (*Sqlite) GetTracksWithNoDurationButHaveMbzID

func (s *Sqlite) GetTracksWithNoDurationButHaveMbzID(ctx context.Context, from int32) ([]*models.Track, error)

func (*Sqlite) GetUserByApiKey

func (s *Sqlite) GetUserByApiKey(ctx context.Context, key string) (*models.User, error)

func (*Sqlite) GetUserBySession

func (s *Sqlite) GetUserBySession(ctx context.Context, sessionId uuid.UUID) (*models.User, error)

func (*Sqlite) GetUserByUsername

func (s *Sqlite) GetUserByUsername(ctx context.Context, username string) (*models.User, error)

func (*Sqlite) ImageHasAssociation

func (s *Sqlite) ImageHasAssociation(ctx context.Context, image uuid.UUID) (bool, error)

func (*Sqlite) MergeAlbums

func (s *Sqlite) MergeAlbums(ctx context.Context, fromId, toId int32, replaceImage bool) error

func (*Sqlite) MergeArtists

func (s *Sqlite) MergeArtists(ctx context.Context, fromId, toId int32, replaceImage bool) error

func (*Sqlite) MergeTracks

func (s *Sqlite) MergeTracks(ctx context.Context, fromId, toId int32) error

func (*Sqlite) Ping

func (s *Sqlite) Ping(ctx context.Context) error

func (*Sqlite) QueryRow

func (s *Sqlite) QueryRow(query string, args ...any) *sql.Row

Exposes db.QueryRow. Only used for testing. Not part of the DB interface this package implements.

func (*Sqlite) RefreshSession

func (s *Sqlite) RefreshSession(ctx context.Context, sessionId uuid.UUID, expiresAt time.Time) error

func (*Sqlite) RowExists

func (s *Sqlite) RowExists(query string, args ...any) (bool, error)

Not part of the DB interface this package implements. Only used for testing.

func (*Sqlite) SaveAlbum

func (s *Sqlite) SaveAlbum(ctx context.Context, opts db.SaveAlbumOpts) (*models.Album, error)

func (*Sqlite) SaveAlbumAliases

func (s *Sqlite) SaveAlbumAliases(ctx context.Context, id int32, aliases []string, source string) error

func (*Sqlite) SaveApiKey

func (s *Sqlite) SaveApiKey(ctx context.Context, opts db.SaveApiKeyOpts) (*models.ApiKey, error)

func (*Sqlite) SaveArtist

func (s *Sqlite) SaveArtist(ctx context.Context, opts db.SaveArtistOpts) (*models.Artist, error)

func (*Sqlite) SaveArtistAliases

func (s *Sqlite) SaveArtistAliases(ctx context.Context, id int32, aliases []string, source string) error

func (*Sqlite) SaveListen

func (s *Sqlite) SaveListen(ctx context.Context, opts db.SaveListenOpts) error

func (*Sqlite) SaveSession

func (s *Sqlite) SaveSession(ctx context.Context, userID int32, expiresAt time.Time, persistent bool) (*models.Session, error)

func (*Sqlite) SaveTrack

func (s *Sqlite) SaveTrack(ctx context.Context, opts db.SaveTrackOpts) (*models.Track, error)

func (*Sqlite) SaveTrackAliases

func (s *Sqlite) SaveTrackAliases(ctx context.Context, id int32, aliases []string, source string) error

func (*Sqlite) SaveUser

func (s *Sqlite) SaveUser(ctx context.Context, opts db.SaveUserOpts) (*models.User, error)

func (*Sqlite) SearchAlbums

func (s *Sqlite) SearchAlbums(ctx context.Context, q string) ([]*models.Album, error)

func (*Sqlite) SearchArtists

func (s *Sqlite) SearchArtists(ctx context.Context, q string) ([]*models.Artist, error)

func (*Sqlite) SearchTracks

func (s *Sqlite) SearchTracks(ctx context.Context, q string) ([]*models.Track, error)

func (*Sqlite) SetPrimaryAlbumAlias

func (s *Sqlite) SetPrimaryAlbumAlias(ctx context.Context, id int32, alias string) error

func (*Sqlite) SetPrimaryAlbumArtist

func (s *Sqlite) SetPrimaryAlbumArtist(ctx context.Context, id int32, artistId int32, value bool) error

func (*Sqlite) SetPrimaryArtistAlias

func (s *Sqlite) SetPrimaryArtistAlias(ctx context.Context, id int32, alias string) error

func (*Sqlite) SetPrimaryTrackAlias

func (s *Sqlite) SetPrimaryTrackAlias(ctx context.Context, id int32, alias string) error

func (*Sqlite) SetPrimaryTrackArtist

func (s *Sqlite) SetPrimaryTrackArtist(ctx context.Context, id int32, artistId int32, value bool) error

func (*Sqlite) UpdateAlbum

func (s *Sqlite) UpdateAlbum(ctx context.Context, opts db.UpdateAlbumOpts) error

func (*Sqlite) UpdateApiKeyLabel

func (s *Sqlite) UpdateApiKeyLabel(ctx context.Context, opts db.UpdateApiKeyLabelOpts) error

func (*Sqlite) UpdateArtist

func (s *Sqlite) UpdateArtist(ctx context.Context, opts db.UpdateArtistOpts) error

func (*Sqlite) UpdateTrack

func (s *Sqlite) UpdateTrack(ctx context.Context, opts db.UpdateTrackOpts) error

func (*Sqlite) UpdateUser

func (s *Sqlite) UpdateUser(ctx context.Context, opts db.UpdateUserOpts) error

Jump to

Keyboard shortcuts

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