MCPcopy
hub / github.com/mxpv/podsync / Build

Method Build

pkg/builder/vimeo.go:161–214  ·  view source on GitHub ↗
(ctx context.Context, cfg *feed.Config)

Source from the content-addressed store, hash-verified

159}
160
161func (v *VimeoBuilder) Build(ctx context.Context, cfg *feed.Config) (*model.Feed, error) {
162 info, err := ParseURL(cfg.URL)
163 if err != nil {
164 return nil, err
165 }
166
167 _feed := &model.Feed{
168 ItemID: info.ItemID,
169 Provider: info.Provider,
170 LinkType: info.LinkType,
171 Format: cfg.Format,
172 Quality: cfg.Quality,
173 PageSize: cfg.PageSize,
174 UpdatedAt: time.Now().UTC(),
175 }
176
177 if info.LinkType == model.TypeChannel {
178 if err := v.queryChannel(_feed); err != nil {
179 return nil, err
180 }
181
182 if err := v.queryVideos(v.client.Channels.ListVideo, _feed); err != nil {
183 return nil, err
184 }
185
186 return _feed, nil
187 }
188
189 if info.LinkType == model.TypeGroup {
190 if err := v.queryGroup(_feed); err != nil {
191 return nil, err
192 }
193
194 if err := v.queryVideos(v.client.Groups.ListVideo, _feed); err != nil {
195 return nil, err
196 }
197
198 return _feed, nil
199 }
200
201 if info.LinkType == model.TypeUser {
202 if err := v.queryUser(_feed); err != nil {
203 return nil, err
204 }
205
206 if err := v.queryVideos(v.client.Users.ListVideo, _feed); err != nil {
207 return nil, err
208 }
209
210 return _feed, nil
211 }
212
213 return nil, errors.New("unsupported feed type")
214}
215
216func NewVimeoBuilder(ctx context.Context, token string) (*VimeoBuilder, error) {
217 if token == "" {

Callers

nothing calls this directly

Calls 5

queryChannelMethod · 0.95
queryVideosMethod · 0.95
queryGroupMethod · 0.95
queryUserMethod · 0.95
ParseURLFunction · 0.85

Tested by

no test coverage detected