36 lines
2.4 KiB
Go
36 lines
2.4 KiB
Go
package jellycompat
|
|
|
|
import (
|
|
"context"
|
|
"net/url"
|
|
)
|
|
|
|
// ContentService provides catalog data for the compat layer.
|
|
type ContentService interface {
|
|
ListUserLibraries(ctx context.Context, session *Session) ([]upstreamUserLibrary, error)
|
|
BrowseItems(ctx context.Context, session *Session, params url.Values) (*upstreamBrowseResponse, error)
|
|
SearchItems(ctx context.Context, session *Session, query string, itemTypes []string, limit, offset int, libraryID *int) (*upstreamBrowseResponse, error)
|
|
GetItemDetail(ctx context.Context, session *Session, contentID string, libraryID *int) (*upstreamItemDetail, error)
|
|
ListSeasons(ctx context.Context, session *Session, seriesID string, libraryID *int) ([]upstreamSeason, error)
|
|
GetSeason(ctx context.Context, session *Session, seriesID string, seasonNumber int, libraryID *int) (*upstreamSeason, error)
|
|
ListEpisodes(ctx context.Context, session *Session, seriesID string, seasonNumber int, libraryID *int) ([]upstreamEpisode, error)
|
|
ListEpisodesBySeasonID(ctx context.Context, session *Session, seasonID string, libraryID *int) ([]upstreamEpisode, error)
|
|
ListItemFilters(ctx context.Context, session *Session, params url.Values) (*upstreamItemFiltersResponse, error)
|
|
}
|
|
|
|
// UserDataService provides favorites/progress/watched operations.
|
|
type UserDataService interface {
|
|
ListFavorites(ctx context.Context, session *Session, limit, offset int) ([]upstreamListItem, error)
|
|
ListFavoritesByMediaItems(ctx context.Context, session *Session, mediaItemIDs []string) (map[string]bool, error)
|
|
IsFavorite(ctx context.Context, session *Session, contentID string) (bool, error)
|
|
AddFavorite(ctx context.Context, session *Session, contentID string) error
|
|
RemoveFavorite(ctx context.Context, session *Session, contentID string) error
|
|
ListProgress(ctx context.Context, session *Session, status string, limit, offset int) ([]upstreamProgress, error)
|
|
ListProgressByMediaItems(ctx context.Context, session *Session, mediaItemIDs []string) (map[string]*upstreamProgress, error)
|
|
GetProgress(ctx context.Context, session *Session, contentID string) (*upstreamProgress, error)
|
|
MarkPlayed(ctx context.Context, session *Session, contentID string) error
|
|
MarkPlayedBatch(ctx context.Context, session *Session, contentIDs []string) error
|
|
MarkUnplayed(ctx context.Context, session *Session, contentID string) error
|
|
MarkUnplayedBatch(ctx context.Context, session *Session, contentIDs []string) error
|
|
}
|