1
0
mirror of https://github.com/mxpv/podsync.git synced 2024-05-11 05:55:04 +00:00

77 lines
1.8 KiB
Go
Raw Normal View History

2017-08-10 15:23:07 -07:00
package api
2017-07-22 22:08:38 -07:00
2017-08-20 16:01:30 -07:00
import (
"time"
)
2017-07-31 21:51:21 -07:00
2017-08-13 14:50:59 -07:00
type Provider string
const (
Youtube = Provider("youtube")
Vimeo = Provider("vimeo")
)
type LinkType string
const (
Channel = LinkType("channel")
Playlist = LinkType("playlist")
User = LinkType("user")
Group = LinkType("group")
)
2017-07-22 22:08:38 -07:00
type Quality string
const (
HighQuality = Quality("high")
LowQuality = Quality("low")
2017-08-13 14:50:59 -07:00
)
type Format string
const (
2017-07-22 22:08:38 -07:00
AudioFormat = Format("audio")
VideoFormat = Format("video")
)
2017-08-11 12:49:56 -07:00
const (
DefaultPageSize = 50
DefaultFormat = VideoFormat
DefaultQuality = HighQuality
)
2017-07-22 22:08:38 -07:00
type Feed struct {
2017-08-13 14:50:59 -07:00
Id int64 `json:"id"`
HashId string `json:"hash_id"` // Short human readable feed id for users
UserId string `json:"user_id"` // Patreon user id
ItemId string `json:"item_id"`
Provider Provider `json:"provider"` // Youtube or Vimeo
LinkType LinkType `json:"link_type"` // Either group, channel or user
PageSize int `json:"page_size"` // The number of episodes to return
Format Format `json:"format"`
Quality Quality `json:"quality"`
FeatureLevel int `json:"feature_level"` // Available features
LastAccess time.Time `json:"last_access"`
}
const (
DefaultFeatures = iota
ExtendedFeatures
PodcasterFeature
)
type CreateFeedRequest struct {
2017-08-14 16:38:59 -07:00
URL string `json:"url" binding:"url,required"`
PageSize int `json:"page_size" binding:"min=10,max=150,required"`
Quality Quality `json:"quality" binding:"eq=high|eq=low"`
Format Format `json:"format" binding:"eq=video|eq=audio"`
2017-07-22 22:08:38 -07:00
}
2017-08-20 16:01:30 -07:00
type Identity struct {
UserId string `json:"user_id"`
FullName string `json:"full_name"`
Email string `json:"email"`
ProfileURL string `json:"profile_url"`
FeatureLevel int `json:"feature_level"`
}