feedsmanager

package
v0.0.13 Latest Latest
Warning

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

Go to latest
Published: Feb 22, 2024 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type FeedFetcher added in v0.0.10

type FeedFetcher interface {
	GetForFeed(ctx context.Context, feed models.Feed) ([]models.FetchedFeedItem, error)
	FeedExternalURL(feed models.Feed) (string, error)
	FeedHints(feed models.Feed) models.FeedHints
}

type FeedItemStore

type FeedItemStore interface {
	Save(ctx context.Context, feedItem *models.FeedItem) error
	Get(ctx context.Context, id uuid.UUID) (*models.FeedItem, error)
	ListRecentsFromAllFeeds(ctx context.Context, filterExpression models.FeedItemFilter, page, count int) ([]models.FeedItem, error)
	ListRecent(ctx context.Context, feedID uuid.UUID, filterExpression models.FeedItemFilter, page int) ([]models.FeedItem, error)
	PutIfAbsent(ctx context.Context, item *models.FeedItem) (wasInserted bool, err error)
}

type FeedStore

type FeedStore interface {
	List(ctx context.Context) ([]models.Feed, error)
	Save(ctx context.Context, feed *models.Feed) error
	Get(ctx context.Context, id uuid.UUID) (models.Feed, error)
	Delete(ctx context.Context, id uuid.UUID) error
}

type FeedsManager

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

func New

func New(
	store FeedStore,
	feedProvider FeedItemStore,
	feedFetcher FeedFetcher,
	favouriteService *favourites.Service,
	rulesStore RulesStore,
	videoStore VideoStore,
	videoDownloader VideoDownloader,
) *FeedsManager

func (*FeedsManager) Delete

func (fm *FeedsManager) Delete(ctx context.Context, id uuid.UUID) error

func (*FeedsManager) FeedExternalURL added in v0.0.5

func (fm *FeedsManager) FeedExternalURL(f models.Feed) (string, error)

func (*FeedsManager) Get

func (fm *FeedsManager) Get(ctx context.Context, id uuid.UUID) (models.Feed, error)

func (*FeedsManager) GetFeedItem added in v0.0.6

func (fm *FeedsManager) GetFeedItem(ctx context.Context, feedItemID uuid.UUID) (*models.FeedItem, error)

func (*FeedsManager) List

func (fm *FeedsManager) List(ctx context.Context) ([]models.Feed, error)

func (*FeedsManager) RecentFeedItems

func (fm *FeedsManager) RecentFeedItems(ctx context.Context, feed *models.Feed, filterExpression models.FeedItemFilter, page int) ([]models.RecentFeedItem, error)

func (*FeedsManager) RecentFeedItemsFromAllFeeds

func (fm *FeedsManager) RecentFeedItemsFromAllFeeds(ctx context.Context, filterExpression models.FeedItemFilter, page, count int) ([]models.RecentFeedItem, error)

func (*FeedsManager) Save

func (fm *FeedsManager) Save(ctx context.Context, feed *models.Feed) error

func (*FeedsManager) SaveFeedItem added in v0.0.6

func (fm *FeedsManager) SaveFeedItem(ctx context.Context, feedItem *models.FeedItem) error

func (*FeedsManager) UpdateAllFeeds

func (fm *FeedsManager) UpdateAllFeeds(ctx context.Context) error

func (*FeedsManager) UpdateFeed

func (fm *FeedsManager) UpdateFeed(ctx context.Context, id uuid.UUID) error

type RulesStore added in v0.0.9

type RulesStore interface {
	List(ctx context.Context) ([]*models.Rule, error)
}

type VideoDownloader added in v0.0.9

type VideoDownloader interface {
	QueueForDownload(ctx context.Context, videoRef models.VideoRef, feed *models.Feed) error
}

type VideoStore added in v0.0.10

type VideoStore interface {
	FindWithExtID(videoRef models.VideoRef) (*models.SavedVideo, error)
}

Jump to

Keyboard shortcuts

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