1
0
mirror of https://github.com/mxpv/podsync.git synced 2024-05-11 05:55:04 +00:00
Files
mxpv-podsync/pkg/builder/builder.go
2022-01-02 14:57:10 +02:00

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)
}
}