service

package
v1.14.4 Latest Latest
Warning

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

Go to latest
Published: Nov 14, 2023 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AudiobookStore

type AudiobookStore interface {
	// StoreAll should remove any audiobooks not in the current slice and store those in the slice
	StoreAll(context.Context, []audiobooks.Audiobook) error
	GetAll(context.Context) ([]audiobooks.Audiobook, error)
	Get(context.Context, func(*audiobooks.Audiobook) bool) ([]audiobooks.Audiobook, error)
	IsReady(context.Context) bool
}

type Filter

type Filter func(a *audiobooks.Audiobook) bool

func AndFilter added in v1.14.0

func AndFilter(filters ...Filter) Filter

func AuthorFilter

func AuthorFilter(name string) Filter

func GenreFilter

func GenreFilter(genre audiobooks.Genre) Filter

func NarratorFilter added in v1.12.0

func NarratorFilter(name string) Filter

func NotFilter added in v1.14.0

func NotFilter(filter Filter) Filter

func TagFilter added in v1.13.0

func TagFilter(tag string) Filter

type MediaScanner

type MediaScanner interface {
	GetAllAudiobooks(context.Context) ([]audiobooks.Audiobook, error)
	ScanForNewAndUpdatedAudiobooks(context.Context, []audiobooks.Audiobook) ([]audiobooks.Audiobook, bool, error)
}

type Option added in v1.13.3

type Option func(s *Service)

func WithGenresToExcludeFromAllAudiobooks added in v1.14.2

func WithGenresToExcludeFromAllAudiobooks(genres ...audiobooks.Genre) Option

func WithLogger added in v1.13.3

func WithLogger(logger loggerrific.Logger) Option

func WithThirdPartyNotifier added in v1.13.3

func WithThirdPartyNotifier(notifier ThirdPartyNotifier) Option

type Service

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

func New

func New(mediaScanner MediaScanner, audiobookStore AudiobookStore, opts ...Option) *Service

func (*Service) GetAllAudiobooks

func (s *Service) GetAllAudiobooks(ctx context.Context) ([]audiobooks.Audiobook, error)

func (*Service) GetAudiobooksBy

func (s *Service) GetAudiobooksBy(ctx context.Context, filter func(*audiobooks.Audiobook) bool) ([]audiobooks.Audiobook, error)

func (*Service) GetAudiobooksByAuthor

func (s *Service) GetAudiobooksByAuthor(ctx context.Context, name string) ([]audiobooks.Audiobook, error)

func (*Service) GetAudiobooksByGenre

func (s *Service) GetAudiobooksByGenre(ctx context.Context, genre audiobooks.Genre) ([]audiobooks.Audiobook, error)

func (*Service) GetAudiobooksByNarrator added in v1.12.0

func (s *Service) GetAudiobooksByNarrator(ctx context.Context, name string) ([]audiobooks.Audiobook, error)

func (*Service) GetAudiobooksByTag added in v1.13.0

func (s *Service) GetAudiobooksByTag(ctx context.Context, tag string) ([]audiobooks.Audiobook, error)

func (*Service) IsReady

func (s *Service) IsReady(ctx context.Context) bool

func (*Service) UpdateAudiobooks

func (s *Service) UpdateAudiobooks(ctx context.Context) error

type ThirdPartyNotifier added in v1.7.2

type ThirdPartyNotifier interface {
	Notify(context.Context) error
	String() string
}

Jump to

Keyboard shortcuts

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