mirror of
https://github.com/mxpv/podsync.git
synced 2024-05-11 05:55:04 +00:00
28 lines
607 B
Go
28 lines
607 B
Go
package builder
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/mxpv/podsync/pkg/feed"
|
|
"github.com/pkg/errors"
|
|
|
|
"github.com/mxpv/podsync/pkg/model"
|
|
)
|
|
|
|
type Builder interface {
|
|
Build(ctx context.Context, cfg *feed.Config) (*model.Feed, error)
|
|
}
|
|
|
|
func New(ctx context.Context, provider model.Provider, key string) (Builder, error) {
|
|
switch provider {
|
|
case model.ProviderYoutube:
|
|
return NewYouTubeBuilder(key)
|
|
case model.ProviderVimeo:
|
|
return NewVimeoBuilder(ctx, key)
|
|
case model.ProviderSoundcloud:
|
|
return NewSoundcloudBuilder()
|
|
default:
|
|
return nil, errors.Errorf("unsupported provider %q", provider)
|
|
}
|
|
}
|