Documentation ¶
Index ¶
Constants ¶
View Source
const ( DefaultVersion = "v0.1.0" DefaultHost = ":8123" DefaultResubTargetAddr = "https://pubsubhubbub.appspot.com/subscribe" DefaultResubInterval = 24 * 3 * time.Hour DefaultFileNameTemplate = "" /* 127-byte string literal not displayed */ DefaultFormatQuality = "720" DefaultFormatExtension = "webm" DefaultRedisChannel = "ytfeed" DefaultStreamSchedulerWorkerInterval = 1 * time.Minute DefaultVideoDownloadMaxRetries = 5 DefaultTemporaryFileDir = "./" DefaultAMQPExchange = "ytfeed" DefaultAMQPKey = "schedule" DefaultAMQPPublishMandatory = true DefaultAMQPPublishImmediate = false DefaultAMQPExchangeKind = "topic" DefaultAMQPExchangeDurable = true DefaultAMQPExchangeInternal = false DefaultAMQPExchangeAutoDelete = false DefaultAMQPExchangeNoWait = false StorageBackendS3 = "s3" StorageBackendGCS = "gcs" StorageBackendDisk = "disk" StorageBackendNone = "none" )
Variables ¶
View Source
var ( ErrInvalidStorageBackend = errors.New("invalid storage backend detected") ErrInvalidDiskConfig = errors.New("invalid or incomplete disk config") ErrInvalidGCSConfig = errors.New("invalid or incomplete gcs config") ErrInvalidS3Config = errors.New("invalid or incomplete s3 config") )
Functions ¶
This section is empty.
Types ¶
type Configuration ¶
type Configuration struct { YoutubeAPIKey string `validate:"required"` VerificationToken string `validate:"required"` VerificationSecret string `validate:"required"` ResubTargetAddr string `validate:"required"` ResubTopics []string `validate:"required"` ResubCallbackAddr string `validate:"required"` ResubInterval time.Duration `validate:"required"` S3Endpoint string `validate:""` S3AccessKeyID string `validate:""` S3SecretAccessKey string `validate:""` S3BucketName string `validate:""` GCSCredentialJSONFilePath string `validate:""` GCSBucketName string `validate:""` DiskDirectory string `validate:""` StorageBackend string `validate:"required,oneof=gcs s3 disk none"` FileNameTemplate string `validate:"required"` Host string `validate:"required"` Version string `validate:"required"` VideoFormatQuality string `validate:"required,oneof=1080 720 640 480 360 240 144"` VideoFormatExtension string `validate:"required,oneof=mp4 webm mkv"` VideoDownloadMaxRetries int `validate:"required,min=0"` VideoDownloadRetryDelay time.Duration `validate:"omitempty,min=1"` TemporaryFileDir string `validate:"required,dir"` RedisAddr string `validate:"omitempty,hostname_port"` RedisUsername string `validate:""` RedisPassword string `validate:""` RedisChannel string `validate:"required"` RedisDB int `validate:"omitempty,min=0"` RedisMaxRetries int `validate:"omitempty,min=0"` RedisDialTimeout time.Duration `validate:""` RedisWriteTimeout time.Duration `validate:""` RedisReadTimeout time.Duration `validate:""` RedisPoolSize int `validate:"omitempty,min=1"` RedisMinIdleConns int `validate:"omitempty,min=0"` RedisMaxConnAge time.Duration `validate:""` RedisPoolTimeout time.Duration `validate:""` RedisIdleTimeout time.Duration `validate:""` RedisIdleCheckFrequency time.Duration `validate:""` BoltDBPath string `validate:"omitempty,file"` StreamSchedulerWorkerInterval time.Duration `validate:"required,min=1000000000"` AMQPDSN string `validate:""` AMQPExchange string `validate:"required"` AMQPKey string `validate:"required"` AMQPPublishMandatory bool `validate:""` AMQPPublishImmediate bool `validate:""` AMQPExchangeKind string `validate:"required,oneof=direct fanout topic headers"` AMQPExchangeDurable bool `validate:""` AMQPExchangeAutoDelete bool `validate:""` AMQPExchangeInternal bool `validate:""` AMQPExchangeNoWait bool `validate:""` // contains filtered or unexported fields }
func New ¶
func New() (c *Configuration)
func (*Configuration) Validate ¶
func (c *Configuration) Validate() (err error)
Click to show internal directories.
Click to hide internal directories.