Files

28 lines
607 B
Go
Raw Permalink Normal View History

2020-04-20 21:02:05 -07:00
package builder
import (
"context"
2022-01-02 14:57:10 +02:00
"github.com/mxpv/podsync/pkg/feed"
2020-04-20 21:02:05 -07:00
"github.com/pkg/errors"
"github.com/mxpv/podsync/pkg/model"
)
type Builder interface {
2022-01-02 14:57:10 +02:00
Build(ctx context.Context, cfg *feed.Config) (*model.Feed, error)
2020-04-20 21:02:05 -07:00
}
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)
2021-10-02 21:32:46 -04:00
case model.ProviderSoundcloud:
return NewSoundcloudBuilder()
2020-04-20 21:02:05 -07:00
default:
return nil, errors.Errorf("unsupported provider %q", provider)
}
}