http

package
v1.4.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 30, 2023 License: GPL-3.0 Imports: 35 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AddMultipleWatchedChannelRequest added in v1.2.5

type AddMultipleWatchedChannelRequest struct {
	WatchLive          bool     `json:"watch_live" `
	WatchVod           bool     `json:"watch_vod" `
	DownloadArchives   bool     `json:"download_archives" `
	DownloadHighlights bool     `json:"download_highlights" `
	DownloadUploads    bool     `json:"download_uploads"`
	ChannelID          []string `json:"channel_id" validate:"required"`
	Resolution         string   `json:"resolution" validate:"required,oneof=best source 720p60 480p 360p 160p 480p30 360p30 160p30"`
	ArchiveChat        bool     `json:"archive_chat"`
	RenderChat         bool     `json:"render_chat"`
	DownloadSubOnly    bool     `json:"download_sub_only"`
	Categories         []string `json:"categories"`
}

type AddVodToPlaylistRequest added in v1.0.0

type AddVodToPlaylistRequest struct {
	VodID string `json:"vod_id" validate:"required"`
}

type AddWatchedChannelRequest

type AddWatchedChannelRequest struct {
	WatchLive          bool     `json:"watch_live" `
	WatchVod           bool     `json:"watch_vod" `
	DownloadArchives   bool     `json:"download_archives" `
	DownloadHighlights bool     `json:"download_highlights" `
	DownloadUploads    bool     `json:"download_uploads"`
	ChannelID          string   `json:"channel_id" validate:"required"`
	Resolution         string   `json:"resolution" validate:"required,oneof=best source 720p60 480p 360p 160p 480p30 360p30 160p30"`
	ArchiveChat        bool     `json:"archive_chat"`
	RenderChat         bool     `json:"render_chat"`
	DownloadSubOnly    bool     `json:"download_sub_only"`
	Categories         []string `json:"categories"`
}

type AdminService

type AdminService interface {
	GetStats(c echo.Context) (admin.GetStatsResp, error)
	GetInfo(c echo.Context) (admin.InfoResp, error)
}

type ArchiveChannelRequest

type ArchiveChannelRequest struct {
	ChannelName string `json:"channel_name" validate:"required"`
}

type ArchiveLiveChannelRequest added in v1.2.8

type ArchiveLiveChannelRequest struct {
	ChannelID   string `json:"channel_id" validate:"required"`
	Resolution  string `json:"resolution" validate:"required,oneof=best source 720p60 480p 360p 160p 480p30 360p30 160p30"`
	ArchiveChat bool   `json:"archive_chat"`
	RenderChat  bool   `json:"render_chat"`
}

type ArchiveService

type ArchiveService interface {
	ArchiveTwitchChannel(cName string) (*ent.Channel, error)
	ArchiveTwitchVod(vID string, quality string, chat bool, renderChat bool) (*archive.TwitchVodResponse, error)
	RestartTask(c echo.Context, qID uuid.UUID, task string, cont bool) error
}

type ArchiveVodRequest

type ArchiveVodRequest struct {
	VodID      string           `json:"vod_id" validate:"required"`
	Quality    utils.VodQuality `json:"quality" validate:"required,oneof=best source 720p60 480p30 360p30 160p30 480p 360p 160p"`
	Chat       bool             `json:"chat"`
	RenderChat bool             `json:"render_chat"`
}

type AuthService

type AuthService interface {
	Register(c echo.Context, userDto user.User) (*ent.User, error)
	Login(c echo.Context, userDto user.User) (*ent.User, error)
	Refresh(c echo.Context, refreshToken string) error
	Me(c *auth.CustomContext) (*ent.User, error)
	ChangePassword(c *auth.CustomContext, passwordDto auth.ChangePassword) error
	OAuthRedirect(c echo.Context) error
	OAuthCallback(c echo.Context) error
	OAuthTokenRefresh(c echo.Context, refreshToken string) error
	OAuthLogout(c echo.Context) error
}

type ChangePasswordRequest

type ChangePasswordRequest struct {
	OldPassword        string `json:"old_password" validate:"required"`
	NewPassword        string `json:"new_password" validate:"required,min=8"`
	ConfirmNewPassword string `json:"confirm_new_password" validate:"required,eqfield=NewPassword"`
}

type ChannelService

type ChannelService interface {
	CreateChannel(channelDto channel.Channel) (*ent.Channel, error)
	GetChannels() ([]*ent.Channel, error)
	GetChannel(channelID uuid.UUID) (*ent.Channel, error)
	GetChannelByName(channelName string) (*ent.Channel, error)
	DeleteChannel(channelID uuid.UUID) error
	UpdateChannel(channelID uuid.UUID, channelDto channel.Channel) (*ent.Channel, error)
	UpdateChannelImage(c echo.Context, channelID uuid.UUID) error
}

type ConfigService

type ConfigService interface {
	GetConfig(c echo.Context) (*config.Conf, error)
	UpdateConfig(c echo.Context, conf *config.Conf) error
	GetNotificationConfig(c echo.Context) (*config.Notification, error)
	UpdateNotificationConfig(c echo.Context, conf *config.Notification) error
	GetStorageTemplateConfig(c echo.Context) (*config.StorageTemplate, error)
	UpdateStorageTemplateConfig(c echo.Context, conf *config.StorageTemplate) error
}

type ConvertChatRequest added in v1.0.6

type ConvertChatRequest struct {
	FileName      string `json:"file_name" validate:"required"`
	ChannelName   string `json:"channel_name" validate:"required"`
	VodID         string `json:"vod_id" validate:"required"`
	ChannelID     int    `json:"channel_id" validate:"required"`
	VodExternalID string `json:"vod_external_id" validate:"required"`
	ChatStart     string `json:"chat_start" validate:"required"`
}

type CreateChannelRequest

type CreateChannelRequest struct {
	Name          string `json:"name" validate:"required,min=2,max=50"`
	DisplayName   string `json:"display_name" validate:"required,min=2,max=50"`
	ImagePath     string `json:"image_path" validate:"required,min=3"`
	Retention     bool   `json:"retention"`
	RetentionDays int64  `json:"retention_days"`
}

type CreatePlaylistRequest added in v1.0.0

type CreatePlaylistRequest struct {
	Name        string `json:"name" validate:"required"`
	Description string `json:"description"`
}

type CreateQueueRequest

type CreateQueueRequest struct {
	VodID string `json:"vod_id" validate:"required"`
}

type CreateVodRequest

type CreateVodRequest struct {
	ID               string            `json:"id"`
	ChannelID        string            `json:"channel_id" validate:"required"`
	ExtID            string            `json:"ext_id" validate:"min=1"`
	Platform         utils.VodPlatform `json:"platform" validate:"required,oneof=twitch youtube"`
	Type             utils.VodType     `json:"type" validate:"required,oneof=archive live highlight upload clip"`
	Title            string            `json:"title" validate:"required,min=1"`
	Duration         int               `json:"duration" validate:"required"`
	Views            int               `json:"views" validate:"required"`
	Resolution       string            `json:"resolution"`
	Processing       bool              `json:"processing"`
	ThumbnailPath    string            `json:"thumbnail_path"`
	WebThumbnailPath string            `json:"web_thumbnail_path" validate:"required,min=1"`
	VideoPath        string            `json:"video_path" validate:"required,min=1"`
	ChatPath         string            `json:"chat_path"`
	ChatVideoPath    string            `json:"chat_video_path"`
	InfoPath         string            `json:"info_path"`
	CaptionPath      string            `json:"caption_path"`
	StreamedAt       string            `json:"streamed_at" validate:"required"`
	Locked           bool              `json:"locked"`
}

type ExecService added in v1.0.8

type ExecService interface {
	GetFfprobeData(path string) (map[string]interface{}, error)
}

type GetFfprobeDataRequest added in v1.0.8

type GetFfprobeDataRequest struct {
	Path string `json:"path" validate:"required"`
}

type Handler

type Handler struct {
	Server  *echo.Echo
	Service Services
}

func NewHandler

func NewHandler(authService AuthService, channelService ChannelService, vodService VodService, queueService QueueService, twitchService TwitchService, archiveService ArchiveService, adminService AdminService, userService UserService, configService ConfigService, liveService LiveService, schedulerService SchedulerService, playbackService PlaybackService, metricsService MetricsService, playlistService PlaylistService, taskService TaskService) *Handler

func (*Handler) AddLiveWatchedChannel

func (h *Handler) AddLiveWatchedChannel(c echo.Context) error

AddLiveWatchedChannel godoc

@Summary		Add watched channel
@Description	Add watched channel
@Tags			Live
@Accept			json
@Produce		json
@Param			body	body		AddWatchedChannelRequest	true	"Add watched channel"
@Success		200		{object}	ent.Live
@Failure		400		{object}	utils.ErrorResponse
@Failure		500		{object}	utils.ErrorResponse
@Router			/live [post]
@Security		ApiKeyCookieAuth

func (*Handler) AddMultipleLiveWatchedChannel added in v1.2.5

func (h *Handler) AddMultipleLiveWatchedChannel(c echo.Context) error

AddMultipleLiveWatchedChannel godoc

@Summary		Add multiple watched channels at once
@Description	This is useful to add multiple channels at once if they all have the same settings
@Tags			Live
@Accept			json
@Produce		json
@Param			body	body		AddMultipleWatchedChannelRequest	true	"Add watched channel"
@Success		200		{object}	ent.Live
@Failure		400		{object}	utils.ErrorResponse
@Failure		500		{object}	utils.ErrorResponse
@Router			/live/multiple [post]
@Security		ApiKeyCookieAuth

func (*Handler) AddVodToPlaylist added in v1.0.0

func (h *Handler) AddVodToPlaylist(c echo.Context) error

AddVodToPlaylist godoc

@Summary		Add vod to playlist
@Description	Add vod to playlist
@Tags			Playlist
@Accept			json
@Produce		json
@Param			id	path		string					true	"playlist id"
@Param			vod	body		AddVodToPlaylistRequest	true	"vod"
@Success		200	{object}	string
@Failure		400	{object}	utils.ErrorResponse
@Failure		500	{object}	utils.ErrorResponse
@Router			/playlist/{id} [post]
@Security		ApiKeyCookieAuth

func (*Handler) ArchiveLiveChannel added in v1.2.8

func (h *Handler) ArchiveLiveChannel(c echo.Context) error

ArchiveLiveChannel godoc

@Summary		Archive a channel's live stream
@Description	Adhoc archive a channel's live stream.
@Tags			Live
@Accept			json
@Produce		json
@Success		200	{object}	string
@Failure		400	{object}	utils.ErrorResponse
@Failure		500	{object}	utils.ErrorResponse
@Router			/live/archive [post]
@Security		ApiKeyCookieAuth

func (*Handler) ArchiveTwitchChannel

func (h *Handler) ArchiveTwitchChannel(c echo.Context) error

ArchiveTwitchChannel godoc

@Summary		Archive a twitch channel
@Description	Archive a twitch channel (creates channel in database and download profile image)
@Tags			archive
@Accept			json
@Produce		json
@Param			channel	body		ArchiveChannelRequest	true	"Channel"
@Success		200		{object}	ent.Channel
@Failure		400		{object}	utils.ErrorResponse
@Failure		500		{object}	utils.ErrorResponse
@Router			/archive/channel [post]
@Security		ApiKeyCookieAuth

func (*Handler) ArchiveTwitchVod

func (h *Handler) ArchiveTwitchVod(c echo.Context) error

ArchiveTwitchVod godoc

@Summary		Archive a twitch vod
@Description	Archive a twitch vod
@Tags			archive
@Accept			json
@Produce		json
@Param			vod	body		ArchiveVodRequest	true	"Vod"
@Success		200	{object}	archive.TwitchVodResponse
@Failure		400	{object}	utils.ErrorResponse
@Failure		500	{object}	utils.ErrorResponse
@Router			/archive/vod [post]
@Security		ApiKeyCookieAuth

func (*Handler) ChangePassword

func (h *Handler) ChangePassword(c echo.Context) error

ChangePassword godoc

@Summary		Change password
@Description	Change password
@Tags			auth
@Accept			json
@Produce		json
@Param			change-password	body		ChangePasswordRequest	true	"Change password"
@Success		200				{object}	string
@Failure		400				{object}	utils.ErrorResponse
@Failure		401				{object}	utils.ErrorResponse
@Failure		500				{object}	utils.ErrorResponse
@Router			/auth/change-password [post]
@Security		ApiKeyCookieAuth

func (*Handler) Check

func (h *Handler) Check(c echo.Context) error

func (*Handler) CheckVodWatchedChannels added in v1.1.0

func (h *Handler) CheckVodWatchedChannels(c echo.Context) error

CheckVodWatchedChannels godoc

@Summary		Check watched channels
@Description	Check watched channels if they are live. This is what runs every X seconds in the config.
@Tags			Live
@Accept			json
@Produce		json
@Success		200	{object}	string
@Failure		400	{object}	utils.ErrorResponse
@Failure		500	{object}	utils.ErrorResponse
@Router			/live/check [get]
@Security		ApiKeyCookieAuth

func (*Handler) ConvertChat added in v1.0.6

func (h *Handler) ConvertChat(c echo.Context) error

ConvertChat godoc

@Summary		Convert chat
@Description	Adhoc convert chat endpoint. This is what happens when a live stream chat is converted to a "vod" chat.
@Tags			Live
@Accept			json
@Produce		json
@Param			body	body		ConvertChatRequest	true	"Convert chat"
@Success		200		{object}	string
@Failure		400		{object}	utils.ErrorResponse
@Failure		500		{object}	utils.ErrorResponse
@Router			/live/chat-convert [post]
@Security		ApiKeyCookieAuth

func (*Handler) CreateChannel

func (h *Handler) CreateChannel(c echo.Context) error

CreateChannel godoc

@Summary		Create a channel
@Description	Create a channel
@Tags			channel
@Accept			json
@Produce		json
@Param			channel	body		CreateChannelRequest	true	"Channel"
@Success		200		{object}	ent.Channel
@Failure		400		{object}	utils.ErrorResponse
@Failure		500		{object}	utils.ErrorResponse
@Router			/channel [post]
@Security		ApiKeyCookieAuth

func (*Handler) CreatePlaylist added in v1.0.0

func (h *Handler) CreatePlaylist(c echo.Context) error

CreatePlaylist godoc

@Summary		Create playlist
@Description	Create playlist
@Tags			Playlist
@Accept			json
@Produce		json
@Param			playlist	body		CreatePlaylistRequest	true	"playlist"
@Success		200			{object}	ent.Playlist
@Failure		400			{object}	utils.ErrorResponse
@Failure		500			{object}	utils.ErrorResponse
@Router			/playlist [post]
@Security		ApiKeyCookieAuth

func (*Handler) CreateQueueItem

func (h *Handler) CreateQueueItem(c echo.Context) error

CreateQueueItem godoc

@Summary		Create a queue item
@Description	Create a queue item
@Tags			queue
@Accept			json
@Produce		json
@Param			body	body		CreateQueueRequest	true	"Create queue item"
@Success		201		{object}	ent.Queue
@Failure		400		{object}	utils.ErrorResponse
@Failure		500		{object}	utils.ErrorResponse
@Router			/queue [post]
@Security		ApiKeyCookieAuth

func (*Handler) CreateVod

func (h *Handler) CreateVod(c echo.Context) error

CreateVod godoc

@Summary		Create a vod
@Description	Create a vod
@Tags			vods
@Accept			json
@Produce		json
@Param			body	body		CreateVodRequest	true	"Create vod request"
@Success		201		{object}	ent.Vod
@Failure		400		{object}	utils.ErrorResponse
@Failure		409		{object}	utils.ErrorResponse
@Router			/vod [post]
@Security		ApiKeyCookieAuth

func (*Handler) DeleteChannel

func (h *Handler) DeleteChannel(c echo.Context) error

DeleteChannel godoc

@Summary		Delete a channel
@Description	Delete a channel
@Tags			channel
@Accept			json
@Produce		json
@Param			id	path	string	true	"Channel ID"
@Success		200
@Failure		400	{object}	utils.ErrorResponse
@Failure		404	{object}	utils.ErrorResponse
@Failure		500	{object}	utils.ErrorResponse
@Router			/channel/{id} [delete]
@Security		ApiKeyCookieAuth

func (*Handler) DeleteLiveWatchedChannel

func (h *Handler) DeleteLiveWatchedChannel(c echo.Context) error

DeleteLiveWatchedChannel godoc

@Summary		Delete watched channel
@Description	Delete watched channel
@Tags			Live
@Accept			json
@Produce		json
@Param			id	path		string	true	"Channel ID"
@Success		200	{object}	ent.Live
@Failure		400	{object}	utils.ErrorResponse
@Failure		500	{object}	utils.ErrorResponse
@Router			/live/{id} [delete]
@Security		ApiKeyCookieAuth

func (*Handler) DeletePlaylist added in v1.0.0

func (h *Handler) DeletePlaylist(c echo.Context) error

DeletePlaylist godoc

@Summary		Delete playlist
@Description	Delete playlist
@Tags			Playlist
@Accept			json
@Produce		json
@Param			id	path		string	true	"playlist id"
@Success		200	{object}	string
@Failure		400	{object}	utils.ErrorResponse
@Failure		500	{object}	utils.ErrorResponse
@Router			/playlist/{id} [delete]
@Security		ApiKeyCookieAuth

func (*Handler) DeleteProgress added in v0.0.2

func (h *Handler) DeleteProgress(c echo.Context) error

DeleteProgress godoc

@Summary		Delete progress
@Description	Delete playback progress
@Tags			Playback
@Accept			json
@Produce		json
@Param			id	path		string	true	"vod id"
@Success		200	{object}	string
@Failure		400	{object}	utils.ErrorResponse
@Failure		500	{object}	utils.ErrorResponse
@Router			/playback/{id} [delete]
@Security		ApiKeyCookieAuth

func (*Handler) DeleteQueueItem

func (h *Handler) DeleteQueueItem(c echo.Context) error

DeleteQueueItem godoc

@Summary		Delete queue item
@Description	Delete queue item
@Tags			queue
@Accept			json
@Produce		json
@Param			id	path	string	true	"Queue item id"
@Success		204
@Failure		400	{object}	utils.ErrorResponse
@Failure		500	{object}	utils.ErrorResponse
@Router			/queue/{id} [delete]
@Security		ApiKeyCookieAuth

func (*Handler) DeleteUser

func (h *Handler) DeleteUser(c echo.Context) error

DeleteUser godoc

@Summary		Delete user
@Description	Delete user
@Tags			user
@Accept			json
@Produce		json
@Param			id	path	string	true	"User ID"
@Success		200
@Failure		400	{object}	utils.ErrorResponse
@Failure		500	{object}	utils.ErrorResponse
@Router			/user/{id} [delete]
@Security		ApiKeyCookieAuth

func (*Handler) DeleteVod

func (h *Handler) DeleteVod(c echo.Context) error

DeleteVod godoc

@Summary		Delete a vod
@Description	Delete a vod
@Tags			vods
@Accept			json
@Produce		json
@Param			id	path	string	true	"Vod ID"
@Param			delete_files	query	string	false	"Delete files"
@Success		200
@Failure		400	{object}	utils.ErrorResponse
@Failure		404	{object}	utils.ErrorResponse
@Failure		500	{object}	utils.ErrorResponse
@Router			/vod/{id} [delete]
@Security		ApiKeyCookieAuth

func (*Handler) DeleteVodFromPlaylist added in v1.0.0

func (h *Handler) DeleteVodFromPlaylist(c echo.Context) error

DeleteVodFromPlaylist godoc

@Summary		Delete vod from playlist
@Description	Delete vod from playlist
@Tags			Playlist
@Accept			json
@Produce		json
@Param			id	path		string					true	"playlist id"
@Param			vod	body		AddVodToPlaylistRequest	true	"vod"
@Success		200	{object}	string
@Failure		400	{object}	utils.ErrorResponse
@Failure		500	{object}	utils.ErrorResponse
@Router			/playlist/{id}/vod [delete]
@Security		ApiKeyCookieAuth

func (*Handler) GQLGetTwitchVideo added in v1.2.0

func (h *Handler) GQLGetTwitchVideo(c echo.Context) error

GQLGetTwitchVideo godoc

@Summary		Get a twitch video
@Description	Get a twitch video by id (uses twitch graphql api)
@Tags				twitch
@Accept			json
@Produce		json
@Param			id	query		string	true	"Twitch video id"
@Success		200	{object}	twitch.Video
@Failure		400	{object}	utils.ErrorResponse
@Failure		500	{object}	utils.ErrorResponse
@Router			/twitch/gql/video [get]

func (*Handler) GatherMetrics added in v1.0.0

func (h *Handler) GatherMetrics() *prometheus.Registry

func (*Handler) GetAllProgress added in v0.0.2

func (h *Handler) GetAllProgress(c echo.Context) error

GetAllProgress godoc

@Summary		Get all progress
@Description	Get all playback progress
@Tags			Playback
@Accept			json
@Produce		json
@Success		200	{object}	[]ent.Playback
@Failure		500	{object}	utils.ErrorResponse
@Router			/playback [get]
@Security		ApiKeyCookieAuth

func (*Handler) GetChannel

func (h *Handler) GetChannel(c echo.Context) error

GetChannel godoc

@Summary		Get a channel
@Description	Returns a channel
@Tags			channel
@Accept			json
@Produce		json
@Param			id	path		string	true	"Channel ID"
@Success		200	{object}	ent.Channel
@Failure		400	{object}	utils.ErrorResponse
@Failure		404	{object}	utils.ErrorResponse
@Failure		500	{object}	utils.ErrorResponse
@Router			/channel/{id} [get]

func (*Handler) GetChannelByName

func (h *Handler) GetChannelByName(c echo.Context) error

GetChannelByName godoc

@Summary		Get a channel by name
@Description	Returns a channel by name
@Tags			channel
@Accept			json
@Produce		json
@Param			name	path		string	true	"Channel name"
@Success		200		{object}	ent.Channel
@Failure		400		{object}	utils.ErrorResponse
@Failure		404		{object}	utils.ErrorResponse
@Failure		500		{object}	utils.ErrorResponse
@Router			/channel/name/{name} [get]

func (*Handler) GetChannels

func (h *Handler) GetChannels(c echo.Context) error

GetChannels godoc

@Summary		Get all channels
@Description	Returns all channels
@Tags			channel
@Accept			json
@Produce		json
@Success		200	{object}	[]ent.Channel
@Failure		400	{object}	utils.ErrorResponse
@Failure		500	{object}	utils.ErrorResponse
@Router			/channel [get]

func (*Handler) GetConfig

func (h *Handler) GetConfig(c echo.Context) error

GetConfig godoc

@Summary		Get config
@Description	Get config
@Tags			config
@Accept			json
@Produce		json
@Success		200	{object}	config.Conf
@Failure		500	{object}	utils.ErrorResponse
@Router			/config [get]
@Security		ApiKeyCookieAuth

func (*Handler) GetFfprobeData added in v1.0.8

func (h *Handler) GetFfprobeData(c echo.Context) error

GetFfprobeData godoc

@Summary		Get ffprobe data
@Description	Get ffprobe data
@Tags			exec
@Accept			json
@Produce		json
@Param			body	body		GetFfprobeDataRequest	true	"GetFfprobeDataRequest"
@Success		200		{object}	map[string]interface{}
@Failure		500		{object}	utils.ErrorResponse
@Router			/exec/ffprobe [post]
@Security		ApiKeyCookieAuth

func (*Handler) GetInfo added in v1.1.0

func (h *Handler) GetInfo(c echo.Context) error

GetInfo godoc

@Summary		Get ganymede info
@Description	Get ganymede info
@Tags			admin
@Accept			json
@Produce		json
@Success		200	{object}	admin.InfoResp
@Failure		500	{object}	utils.ErrorResponse
@Router			/admin/info [get]
@Security		ApiKeyCookieAuth

func (*Handler) GetLastPlaybacks added in v1.2.6

func (h *Handler) GetLastPlaybacks(c echo.Context) error

func (*Handler) GetLiveWatchedChannels

func (h *Handler) GetLiveWatchedChannels(c echo.Context) error

GetLiveWatchedChannels godoc

@Summary		Get all watched channels
@Description	Get all watched channels
@Tags			Live
@Accept			json
@Produce		json
@Success		200	{object}	[]ent.Live
@Failure		500	{object}	utils.ErrorResponse
@Router			/live [get]
@Security		ApiKeyCookieAuth

func (*Handler) GetNotificationConfig added in v1.1.1

func (h *Handler) GetNotificationConfig(c echo.Context) error

GetNotificationConfig godoc

@Summary		Get notification config
@Description	Get notification config
@Tags			config
@Accept			json
@Produce		json
@Success		200	{object}	config.Notification
@Failure		500	{object}	utils.ErrorResponse
@Router			/config/notification [get]
@Security		ApiKeyCookieAuth

func (*Handler) GetNumberOfVodChatCommentsFromTime added in v1.1.0

func (h *Handler) GetNumberOfVodChatCommentsFromTime(c echo.Context) error

GetNumberOfVodChatComments godoc

@Summary		Get number of vod chat comments
@Description	Get N number of vod chat comments before the start time (used for seeking)
@Tags			vods
@Accept			json
@Produce		json
@Param			id		path		string	true	"Vod ID"
@Param			start	query		string	false	"Start time"
@Param			count	query		string	false	"Count"
@Success		200		{object}	[]chat.Comment
@Failure		400		{object}	utils.ErrorResponse
@Failure		404		{object}	utils.ErrorResponse
@Failure		500		{object}	utils.ErrorResponse
@Router			/vod/{id}/chat/seek [get]

func (*Handler) GetPlaylist added in v1.0.0

func (h *Handler) GetPlaylist(c echo.Context) error

GetPlaylist godoc

@Summary		Get playlist
@Description	Get playlist
@Tags			Playlist
@Accept			json
@Produce		json
@Param			id	path		string	true	"playlist id"
@Success		200	{object}	ent.Playlist
@Failure		400	{object}	utils.ErrorResponse
@Failure		500	{object}	utils.ErrorResponse
@Router			/playlist/{id} [get]

func (*Handler) GetPlaylists added in v1.0.0

func (h *Handler) GetPlaylists(c echo.Context) error

GetPlaylists godoc

@Summary		Get playlists
@Description	Get playlists
@Tags			Playlist
@Accept			json
@Produce		json
@Success		200	{object}	[]ent.Playlist
@Failure		500	{object}	utils.ErrorResponse
@Router			/playlist [get]

func (*Handler) GetProgress added in v0.0.2

func (h *Handler) GetProgress(c echo.Context) error

GetProgress godoc

@Summary		Get progress
@Description	Get playback progress
@Tags			Playback
@Accept			json
@Produce		json
@Param			id	path		string	true	"vod id"
@Success		200	{object}	ent.Playback
@Failure		400	{object}	utils.ErrorResponse
@Failure		500	{object}	utils.ErrorResponse
@Router			/playback/progress/{id} [get]
@Security		ApiKeyCookieAuth

func (*Handler) GetQueueItem

func (h *Handler) GetQueueItem(c echo.Context) error

GetQueueItem godoc

@Summary		Get queue item
@Description	Get queue item
@Tags			queue
@Accept			json
@Produce		json
@Param			id	path		string	true	"Queue item id"
@Success		200	{object}	ent.Queue
@Failure		400	{object}	utils.ErrorResponse
@Failure		500	{object}	utils.ErrorResponse
@Router			/queue/{id} [get]
@Security		ApiKeyCookieAuth

func (*Handler) GetQueueItems

func (h *Handler) GetQueueItems(c echo.Context) error

GetQueueItems godoc

@Summary		Get queue items
@Description	Get queue items
@Tags			queue
@Accept			json
@Produce		json
@Param			processing	query		string	false	"Get processing queue items"
@Success		200			{object}	[]ent.Queue
@Failure		400			{object}	utils.ErrorResponse
@Failure		500			{object}	utils.ErrorResponse
@Router			/queue [get]
@Security		ApiKeyCookieAuth

func (*Handler) GetStats

func (h *Handler) GetStats(c echo.Context) error

GetStats godoc

@Summary		Get ganymede stats
@Description	Get ganymede stats
@Tags			admin
@Accept			json
@Produce		json
@Success		200	{object}	admin.GetStatsResp
@Failure		500	{object}	utils.ErrorResponse
@Router			/admin/stats [get]
@Security		ApiKeyCookieAuth

func (*Handler) GetStorageTemplateConfig added in v1.1.7

func (h *Handler) GetStorageTemplateConfig(c echo.Context) error

GetStorageTemplateConfig godoc

@Summary		Get storage template config
@Description	Get storage template config
@Tags			config
@Accept			json
@Produce		json
@Success		200	{object}	config.StorageTemplate
@Failure		500	{object}	utils.ErrorResponse
@Router			/config/storage [get]
@Security		ApiKeyCookieAuth

func (*Handler) GetTwitchCategories added in v1.2.4

func (h *Handler) GetTwitchCategories(c echo.Context) error

GetTwitchCategories godoc

@Summary		Get a list of twitch categories
@Description	Get a list of twitch categories
@Tags			twitch
@Accept			json
@Produce		json
@Success		200	{object}	twitch.Category
@Failure		500	{object}	utils.ErrorResponse
@Router			/twitch/categories [get]

func (*Handler) GetTwitchUser

func (h *Handler) GetTwitchUser(c echo.Context) error

GetTwitchUser godoc

@Summary		Get a twitch channel
@Description	Get a twitch user/channel by name (uses twitch api)
@Tags			twitch
@Accept			json
@Produce		json
@Param			name	query		string	true	"Twitch user login name"
@Success		200		{object}	twitch.Channel
@Failure		400		{object}	utils.ErrorResponse
@Failure		500		{object}	utils.ErrorResponse
@Router			/twitch/channel [get]

func (*Handler) GetTwitchVod

func (h *Handler) GetTwitchVod(c echo.Context) error

GetTwitchVod godoc

@Summary		Get a twitch vod
@Description	Get a twitch vod by id (uses twitch api)
@Tags			twitch
@Accept			json
@Produce		json
@Param			id	query		string	true	"Twitch vod id"
@Success		200	{object}	twitch.Vod
@Failure		400	{object}	utils.ErrorResponse
@Failure		500	{object}	utils.ErrorResponse
@Router			/twitch/vod [get]

func (*Handler) GetUser

func (h *Handler) GetUser(c echo.Context) error

GetUser godoc

@Summary		Get user by id
@Description	Get user by id
@Tags			user
@Accept			json
@Produce		json
@Param			id	path		string	true	"User ID"
@Success		200	{object}	ent.User
@Failure		400	{object}	utils.ErrorResponse
@Failure		500	{object}	utils.ErrorResponse
@Router			/user/{id} [get]
@Security		ApiKeyCookieAuth

func (*Handler) GetUserIdFromChat added in v1.1.0

func (h *Handler) GetUserIdFromChat(c echo.Context) error

GetUserIdFromChat godoc

@Summary		Get user id from chat
@Description	Get user id from chat json file
@Tags			vods
@Accept			json
@Produce		json
@Param			id	path		string	true	"Vod ID"
@Success		200	{object}	int64
@Failure		400	{object}	utils.ErrorResponse
@Failure		404	{object}	utils.ErrorResponse
@Failure		500	{object}	utils.ErrorResponse
@Router			/vod/{id}/chat/userid [get]

func (*Handler) GetUsers

func (h *Handler) GetUsers(c echo.Context) error

GetUsers godoc

@Summary		Get all users
@Description	Get all users
@Tags			user
@Accept			json
@Produce		json
@Success		200	{object}	[]ent.User
@Failure		400	{object}	utils.ErrorResponse
@Failure		500	{object}	utils.ErrorResponse
@Router			/user [get]
@Security		ApiKeyCookieAuth

func (*Handler) GetVod

func (h *Handler) GetVod(c echo.Context) error

GetVod godoc

@Summary		Get a vod
@Description	Get a vod
@Tags			vods
@Accept			json
@Produce		json
@Param			id				path		string	true	"Vod ID"
@Param			with_channel	query		string	false	"With channel"
@Success		200				{object}	ent.Vod
@Failure		400				{object}	utils.ErrorResponse
@Failure		404				{object}	utils.ErrorResponse
@Failure		500				{object}	utils.ErrorResponse
@Router			/vod/{id} [get]

func (*Handler) GetVodChatBadges added in v1.1.0

func (h *Handler) GetVodChatBadges(c echo.Context) error

GetVodChatBadges godoc

@Summary		Get vod chat badges
@Description	Get vod chat badges
@Tags			vods
@Accept			json
@Produce		json
@Param			id	path		string	true	"Vod ID"
@Success		200	{array}		chat.GanymedeBadges
@Failure		400	{object}	utils.ErrorResponse
@Failure		404	{object}	utils.ErrorResponse
@Failure		500	{object}	utils.ErrorResponse
@Router			/vod/{id}/chat/badges [get]

func (*Handler) GetVodChatComments added in v1.1.0

func (h *Handler) GetVodChatComments(c echo.Context) error

GetVodChatComments godoc

@Summary		Get vod chat comments
@Description	Get vod chat comments
@Tags			vods
@Accept			json
@Produce		json
@Param			id		path		string	true	"Vod ID"
@Param			start	query		string	false	"Start time"
@Param			end		query		string	false	"End time"
@Success		200		{array}		[]chat.Comment
@Failure		400		{object}	utils.ErrorResponse
@Failure		404		{object}	utils.ErrorResponse
@Failure		500		{object}	utils.ErrorResponse
@Router			/vod/{id}/chat [get]

func (*Handler) GetVodChatEmotes added in v1.1.0

func (h *Handler) GetVodChatEmotes(c echo.Context) error

GetVodChatEmotes godoc

@Summary		Get vod chat emotes
@Description	Get vod chat emotes
@Tags			vods
@Accept			json
@Produce		json
@Param			id	path		string	true	"Vod ID"
@Success		200	{array}		chat.GanymedeEmotes
@Failure		400	{object}	utils.ErrorResponse
@Failure		404	{object}	utils.ErrorResponse
@Failure		500	{object}	utils.ErrorResponse
@Router			/vod/{id}/chat/emotes [get]

func (*Handler) GetVodPlaylists added in v1.0.0

func (h *Handler) GetVodPlaylists(c echo.Context) error

GetVodPlaylists godoc

@Summary		Get vod playlists
@Description	Get vod playlists
@Tags			vods
@Accept			json
@Produce		json
@Param			id	path		string	true	"Vod ID"
@Success		200	{array}		[]ent.Playlist
@Failure		400	{object}	utils.ErrorResponse
@Failure		404	{object}	utils.ErrorResponse
@Failure		500	{object}	utils.ErrorResponse
@Router			/vod/{id}/playlist [get]

func (*Handler) GetVods

func (h *Handler) GetVods(c echo.Context) error

GetVods godoc

@Summary		Get vods
@Description	Get vods
@Tags			vods
@Accept			json
@Produce		json
@Param			channel_id	query		string	false	"Channel ID"
@Success		200			{object}	[]ent.Vod
@Failure		400			{object}	utils.ErrorResponse
@Failure		500			{object}	utils.ErrorResponse
@Router			/vod [get]

func (*Handler) GetVodsPagination added in v1.0.7

func (h *Handler) GetVodsPagination(c echo.Context) error

GetVodsPagination godoc

@Summary		Get vods pagination
@Description	Get vods pagination
@Tags			vods
@Accept			json
@Produce		json
@Param			limit		query		integer	false	"Limit"		default(10)
@Param			offset		query		integer	false	"Offset"	default(0)
@Param			channel_id	query		string	false	"Channel ID"
@Success		200			{object}	vod.Pagination
@Failure		400			{object}	utils.ErrorResponse
@Failure		500			{object}	utils.ErrorResponse
@Router			/vod/pagination [get]

func (*Handler) LockVod added in v1.2.12

func (h *Handler) LockVod(c echo.Context) error

func (*Handler) Login

func (h *Handler) Login(c echo.Context) error

Login godoc

@Summary		Login a user
@Description	Login a user (sets access-token and refresh-token cookies). Access token lasts for 1 hour. Refresh token lasts for 1 month.
@Tags			auth
@Accept			json
@Produce		json
@Param			login	body		LoginRequest	true	"Login"
@Success		200		{object}	ent.User
@Failure		400		{object}	utils.ErrorResponse
@Failure		401		{object}	utils.ErrorResponse
@Failure		500		{object}	utils.ErrorResponse
@Router			/auth/login [post]

func (*Handler) Me

func (h *Handler) Me(c echo.Context) error

Me godoc

@Summary		Get current user
@Description	Get current user
@Tags			auth
@Accept			json
@Produce		json
@Success		200	{object}	ent.User
@Failure		400	{object}	utils.ErrorResponse
@Failure		401	{object}	utils.ErrorResponse
@Failure		500	{object}	utils.ErrorResponse
@Router			/auth/me [get]
@Security		ApiKeyCookieAuth

func (*Handler) OAuthCallback added in v1.0.8

func (h *Handler) OAuthCallback(c echo.Context) error

OAuthCallback godoc

@Summary		OAuth callback
@Description	OAuth callback for OAuth provider
@Tags			auth
@Accept			json
@Produce		json
@Success		200	{object}	string
@Failure		400	{object}	utils.ErrorResponse
@Failure		401	{object}	utils.ErrorResponse
@Failure		500	{object}	utils.ErrorResponse
@Router			/auth/oauth/callback [get]

func (*Handler) OAuthLogin added in v1.0.8

func (h *Handler) OAuthLogin(c echo.Context) error

OAuthLogin godoc

@Summary		Login a user with OAuth
@Description	Login a user with OAuth (sets access-token and refresh-token cookies)
@Tags			auth
@Accept			json
@Produce		json
@Success		200	{object}	ent.User
@Failure		400	{object}	utils.ErrorResponse
@Failure		401	{object}	utils.ErrorResponse
@Failure		500	{object}	utils.ErrorResponse
@Router			/auth/oauth/login [get]

func (*Handler) OAuthLogout added in v1.0.8

func (h *Handler) OAuthLogout(c echo.Context) error

OAuthLogout godoc

@Summary		Logout
@Description	Logout
@Tags			auth
@Accept			json
@Produce		json
@Success		200	{object}	string
@Failure		400	{object}	utils.ErrorResponse
@Failure		401	{object}	utils.ErrorResponse
@Failure		500	{object}	utils.ErrorResponse
@Router			/auth/oauth/logout [get]

func (*Handler) OAuthTokenRefresh added in v1.0.8

func (h *Handler) OAuthTokenRefresh(c echo.Context) error

OAuthTokenRefresh godoc

@Summary		Refresh access-token and refresh-token
@Description	Refresh access-token and refresh-token (sets access-token and refresh-token cookies)
@Tags			auth
@Accept			json
@Produce		json
@Success		200	{object}	string
@Failure		400	{object}	utils.ErrorResponse
@Failure		401	{object}	utils.ErrorResponse
@Failure		500	{object}	utils.ErrorResponse
@Router			/auth/oauth/refresh [get]

func (*Handler) ReadQueueLogFile

func (h *Handler) ReadQueueLogFile(c echo.Context) error

ReadQueueLogFile godoc

@Summary		Read queue log file
@Description	Read queue log file
@Tags			queue
@Accept			json
@Produce		json
@Param			id		path		string	true	"Queue item id"
@Param			type	query		string	true	"Log type: video, video-convert, chat, chat-render, or chat-convert"
@Success		200		{object}	string
@Failure		400		{object}	utils.ErrorResponse
@Failure		500		{object}	utils.ErrorResponse
@Router			/queue/{id}/tail [get]
@Security		ApiKeyCookieAuth

func (*Handler) Refresh

func (h *Handler) Refresh(c echo.Context) error

Refresh godoc

@Summary		Refresh access-token and refresh-token
@Description	Refresh access-token and refresh-token (sets access-token and refresh-token cookies)
@Tags			auth
@Accept			json
@Produce		json
@Success		200	{object}	string
@Failure		400	{object}	utils.ErrorResponse
@Failure		401	{object}	utils.ErrorResponse
@Failure		500	{object}	utils.ErrorResponse
@Router			/auth/refresh [post]

func (*Handler) Register

func (h *Handler) Register(c echo.Context) error

Register godoc

@Summary		Register a user
@Description	Register a user (does not log in)
@Tags			auth
@Accept			json
@Produce		json
@Param			register	body		RegisterRequest	true	"Register"
@Success		200			{object}	ent.User
@Failure		400			{object}	utils.ErrorResponse
@Failure		403			{object}	utils.ErrorResponse
@Failure		500			{object}	utils.ErrorResponse
@Router			/auth/register [post]

func (*Handler) RestartTask

func (h *Handler) RestartTask(c echo.Context) error

RestartTask godoc

@Summary		Restart a task
@Description	Restart a task
@Tags			archive
@Accept			json
@Produce		json
@Param			queue_id	path	string				true	"Queue ID"
@Param			task		body	RestartTaskRequest	true	"Task"
@Success		200
@Failure		400	{object}	utils.ErrorResponse
@Failure		500	{object}	utils.ErrorResponse
@Router			/archive/restart [post]
@Security		ApiKeyCookieAuth

func (*Handler) SearchVods

func (h *Handler) SearchVods(c echo.Context) error

SearchVods godoc

@Summary		Search vods
@Description	Search vods
@Tags			vods
@Accept			json
@Produce		json
@Param			q		query		string	true	"Search query"
@Param			limit	query		integer	false	"Limit"		default(10)
@Param			offset	query		integer	false	"Offset"	default(0)
@Success		200		{array}		ent.Vod
@Failure		400		{object}	utils.ErrorResponse
@Failure		500		{object}	utils.ErrorResponse
@Router			/vod/search [get]

func (*Handler) Serve

func (h *Handler) Serve() error

func (*Handler) StartPlayback added in v1.4.3

func (h *Handler) StartPlayback(c echo.Context) error

StartPlayback godoc

@Summary		Start playback
@Description	Adds a view to the video local view count
@Tags			Playback
@Accept			json
@Produce		json
@Param			id	path		string	true	"vod id"
@Success		200	{object}	string
@Failure		400	{object}	utils.ErrorResponse
@Failure		500	{object}	utils.ErrorResponse
@Router			/playback/start [post]

func (*Handler) StartTask added in v1.1.0

func (h *Handler) StartTask(c echo.Context) error

StartTask godoc

@Summary		Start a task
@Description	Start a task
@Tags			task
@Accept			json
@Produce		json
@Param			body	body	StartTaskRequest	true	"StartTaskRequest"
@Success		200
@Failure		500	{object}	utils.ErrorResponse
@Router			/task/start [post]
@Security		ApiKeyCookieAuth

func (*Handler) StopQueueItem added in v1.3.0

func (h *Handler) StopQueueItem(c echo.Context) error

func (*Handler) TestNotification added in v1.1.1

func (h *Handler) TestNotification(c echo.Context) error

TestNotification godoc

@Summary		Test notification
@Description	Test notification
@Tags			notification
@Accept			json
@Produce		json
@Param			type	query		string	true	"Type of notification to test"
@Success		200		{object}	string
@Failure		500		{object}	utils.ErrorResponse
@Router			/notification/test [get]
@Security		ApiKeyCookieAuth

func (*Handler) UpdateChannel

func (h *Handler) UpdateChannel(c echo.Context) error

UpdateChannel godoc

@Summary		Update a channel
@Description	Update a channel
@Tags			channel
@Accept			json
@Produce		json
@Param			id		path		string					true	"Channel ID"
@Param			channel	body		CreateChannelRequest	true	"Channel"
@Success		200		{object}	ent.Channel
@Failure		400		{object}	utils.ErrorResponse
@Failure		404		{object}	utils.ErrorResponse
@Failure		500		{object}	utils.ErrorResponse
@Router			/channel/{id} [put]
@Security		ApiKeyCookieAuth

func (*Handler) UpdateChannelImage added in v1.2.6

func (h *Handler) UpdateChannelImage(c echo.Context) error

func (*Handler) UpdateConfig

func (h *Handler) UpdateConfig(c echo.Context) error

UpdateConfig godoc

@Summary		Update config
@Description	Update config
@Tags			config
@Accept			json
@Produce		json
@Param			body	body		UpdateConfigRequest	true	"Config"
@Success		200		{object}	UpdateConfigRequest
@Failure		400		{object}	utils.ErrorResponse
@Failure		500		{object}	utils.ErrorResponse
@Router			/config [put]
@Security		ApiKeyCookieAuth

func (*Handler) UpdateLiveWatchedChannel

func (h *Handler) UpdateLiveWatchedChannel(c echo.Context) error

UpdateLiveWatchedChannel godoc

@Summary		Update watched channel
@Description	Update watched channel
@Tags			Live
@Accept			json
@Produce		json
@Param			id		path		string						true	"Channel ID"
@Param			body	body		UpdateWatchedChannelRequest	true	"Update watched channel"
@Success		200		{object}	ent.Live
@Failure		400		{object}	utils.ErrorResponse
@Failure		500		{object}	utils.ErrorResponse
@Router			/live/{id} [put]
@Security		ApiKeyCookieAuth

func (*Handler) UpdateNotificationConfig added in v1.1.1

func (h *Handler) UpdateNotificationConfig(c echo.Context) error

UpdateNotificationConfig godoc

@Summary		Update notification config
@Description	Update notification config
@Tags			config
@Accept			json
@Produce		json
@Param			body	body		UpdateNotificationRequest	true	"Config"
@Success		200		{object}	UpdateNotificationRequest
@Failure		400		{object}	utils.ErrorResponse
@Failure		500		{object}	utils.ErrorResponse
@Router			/config/notification [put]
@Security		ApiKeyCookieAuth

func (*Handler) UpdatePlaylist added in v1.0.0

func (h *Handler) UpdatePlaylist(c echo.Context) error

UpdatePlaylist godoc

@Summary		Update playlist
@Description	Update playlist
@Tags			Playlist
@Accept			json
@Produce		json
@Param			id			path		string					true	"playlist id"
@Param			playlist	body		CreatePlaylistRequest	true	"playlist"
@Success		200			{object}	ent.Playlist
@Failure		400			{object}	utils.ErrorResponse
@Failure		500			{object}	utils.ErrorResponse
@Router			/playlist/{id} [put]
@Security		ApiKeyCookieAuth

func (*Handler) UpdateProgress added in v0.0.2

func (h *Handler) UpdateProgress(c echo.Context) error

UpdateProgress godoc

@Summary		Update progress
@Description	Update playback progress
@Tags			Playback
@Accept			json
@Produce		json
@Param			progress	body		UpdateProgressRequest	true	"progress"
@Success		200			{object}	string
@Failure		400			{object}	utils.ErrorResponse
@Failure		500			{object}	utils.ErrorResponse
@Router			/playback/progress [post]
@Security		ApiKeyCookieAuth

func (*Handler) UpdateQueueItem

func (h *Handler) UpdateQueueItem(c echo.Context) error

UpdateQueueItem godoc

@Summary		Update queue item
@Description	Update queue item
@Tags			queue
@Accept			json
@Produce		json
@Param			id		path		string				true	"Queue item id"
@Param			body	body		UpdateQueueRequest	true	"Update queue item"
@Success		200		{object}	ent.Queue
@Failure		400		{object}	utils.ErrorResponse
@Failure		500		{object}	utils.ErrorResponse
@Router			/queue/{id} [put]
@Security		ApiKeyCookieAuth

func (*Handler) UpdateStatus added in v0.0.2

func (h *Handler) UpdateStatus(c echo.Context) error

UpdateStatus godoc

@Summary		Update status
@Description	Update playback status
@Tags			Playback
@Accept			json
@Produce		json
@Param			status	body		UpdateStatusRequest	true	"status"
@Success		200		{object}	string
@Failure		400		{object}	utils.ErrorResponse
@Failure		500		{object}	utils.ErrorResponse
@Router			/playback/status [post]
@Security		ApiKeyCookieAuth

func (*Handler) UpdateStorageTemplateConfig added in v1.1.7

func (h *Handler) UpdateStorageTemplateConfig(c echo.Context) error

UpdateStorageTemplateConfig godoc

@Summary		Update storage template config
@Description	Update storage template config
@Tags			config
@Accept			json
@Produce		json
@Param			body	body		UpdateStorageTemplateRequest	true	"Config"
@Success		200		{object}	UpdateStorageTemplateRequest
@Failure		400		{object}	utils.ErrorResponse
@Failure		500		{object}	utils.ErrorResponse
@Router			/config/storage [put]
@Security		ApiKeyCookieAuth

func (*Handler) UpdateUser

func (h *Handler) UpdateUser(c echo.Context) error

UpdateUser godoc

@Summary		Update user
@Description	Update user
@Tags			user
@Accept			json
@Produce		json
@Param			id		path		string					true	"User ID"
@Param			body	body		UpdateChannelRequest	true	"User data"
@Success		200		{object}	ent.User
@Failure		400		{object}	utils.ErrorResponse
@Failure		500		{object}	utils.ErrorResponse
@Router			/user/{id} [put]
@Security		ApiKeyCookieAuth

func (*Handler) UpdateVod

func (h *Handler) UpdateVod(c echo.Context) error

UpdateVod godoc

@Summary		Update a vod
@Description	Update a vod
@Tags			vods
@Accept			json
@Produce		json
@Param			id		path		string				true	"Vod ID"
@Param			body	body		CreateVodRequest	true	"Vod"
@Success		200		{object}	ent.Vod
@Failure		400		{object}	utils.ErrorResponse
@Failure		404		{object}	utils.ErrorResponse
@Failure		500		{object}	utils.ErrorResponse
@Router			/vod/{id} [put]
@Security		ApiKeyCookieAuth

type LiveService

type LiveService interface {
	GetLiveWatchedChannels(c echo.Context) ([]*ent.Live, error)
	AddLiveWatchedChannel(c echo.Context, liveDto live.Live) (*ent.Live, error)
	DeleteLiveWatchedChannel(c echo.Context, lID uuid.UUID) error
	UpdateLiveWatchedChannel(c echo.Context, liveDto live.Live) (*ent.Live, error)
	Check() error
	ConvertChat(c echo.Context, convertDto live.ConvertChat) error
	CheckVodWatchedChannels()
	ArchiveLiveChannel(c echo.Context, archiveDto live.ArchiveLive) error
}

type LoginRequest

type LoginRequest struct {
	Username string `json:"username" validate:"required"`
	Password string `json:"password" validate:"required"`
}

type MetricsService added in v1.0.0

type MetricsService interface {
	GatherMetrics() *prometheus.Registry
}

type PlaybackService added in v0.0.2

type PlaybackService interface {
	UpdateProgress(c *auth.CustomContext, vID uuid.UUID, time int) error
	GetProgress(c *auth.CustomContext, vID uuid.UUID) (*ent.Playback, error)
	GetAllProgress(c *auth.CustomContext) ([]*ent.Playback, error)
	UpdateStatus(c *auth.CustomContext, vID uuid.UUID, status string) error
	DeleteProgress(c *auth.CustomContext, vID uuid.UUID) error
	GetLastPlaybacks(c *auth.CustomContext, limit int) (*playback.GetPlaybackResp, error)
	StartPlayback(c echo.Context, videoId uuid.UUID) error
}

type PlaylistService added in v1.0.0

type PlaylistService interface {
	CreatePlaylist(c echo.Context, playlistDto playlist.Playlist) (*ent.Playlist, error)
	AddVodToPlaylist(c echo.Context, playlistID uuid.UUID, vodID uuid.UUID) error
	GetPlaylists(c echo.Context) ([]*ent.Playlist, error)
	GetPlaylist(c echo.Context, playlistID uuid.UUID) (*ent.Playlist, error)
	UpdatePlaylist(c echo.Context, playlistID uuid.UUID, playlistDto playlist.Playlist) (*ent.Playlist, error)
	DeletePlaylist(c echo.Context, playlistID uuid.UUID) error
	DeleteVodFromPlaylist(c echo.Context, playlistID uuid.UUID, vodID uuid.UUID) error
}

type QueueService

type QueueService interface {
	CreateQueueItem(queueDto queue.Queue, vID uuid.UUID) (*ent.Queue, error)
	GetQueueItems(c echo.Context) ([]*ent.Queue, error)
	GetQueueItemsFilter(c echo.Context, pro bool) ([]*ent.Queue, error)
	GetQueueItem(id uuid.UUID) (*ent.Queue, error)
	UpdateQueueItem(queueDto queue.Queue, id uuid.UUID) (*ent.Queue, error)
	DeleteQueueItem(c echo.Context, id uuid.UUID) error
	ReadLogFile(c echo.Context, id uuid.UUID, logType string) ([]byte, error)
	StopQueueItem(c echo.Context, id uuid.UUID) error
}

type RegisterRequest

type RegisterRequest struct {
	Username string `json:"username" validate:"required,min=3,max=20"`
	Password string `json:"password" validate:"required,min=8"`
}

type RestartTaskRequest

type RestartTaskRequest struct {
	QueueID string `json:"queue_id" validate:"required"`
	Task    string `` /* 181-byte string literal not displayed */
	Cont    bool   `json:"cont"`
}

type SchedulerService

type SchedulerService interface {
	StartAppScheduler()
	StartLiveScheduler()
	StartQueueItemScheduler()
	StartJwksScheduler()
	StartWatchVideoScheduler()
	StartTwitchCategoriesScheduler()
	StartPruneVideoScheduler()
}

type Services

type Services struct {
	AuthService      AuthService
	ChannelService   ChannelService
	VodService       VodService
	QueueService     QueueService
	TwitchService    TwitchService
	ArchiveService   ArchiveService
	AdminService     AdminService
	UserService      UserService
	ConfigService    ConfigService
	LiveService      LiveService
	SchedulerService SchedulerService
	PlaybackService  PlaybackService
	MetricsService   MetricsService
	PlaylistService  PlaylistService
	TaskService      TaskService
}

type StartTaskRequest added in v1.1.0

type StartTaskRequest struct {
	Task string `` /* 127-byte string literal not displayed */
}

type TaskService added in v1.1.0

type TaskService interface {
	StartTask(c echo.Context, task string) error
}

type TwitchService

type TwitchService interface {
	GetVodByID(id string) (twitch.Vod, error)
	GetCategories() ([]*ent.TwitchCategory, error)
}

type UpdateChannelRequest

type UpdateChannelRequest struct {
	Username string `json:"username" validate:"required,min=2,max=50"`
	Role     string `json:"role" validate:"required,oneof=admin editor archiver user"`
}

type UpdateConfigRequest

type UpdateConfigRequest struct {
	RegistrationEnabled bool `json:"registration_enabled"`
	Parameters          struct {
		TwitchToken    string `json:"twitch_token"`
		VideoConvert   string `json:"video_convert" validate:"required"`
		ChatRender     string `json:"chat_render" validate:"required"`
		StreamlinkLive string `json:"streamlink_live"`
	} `json:"parameters"`
	Archive struct {
		SaveAsHls bool `json:"save_as_hls"`
	} `json:"archive"`
	Livestream struct {
		Proxies         []config.ProxyListItem `json:"proxies"`
		ProxyEnabled    bool                   `json:"proxy_enabled"`
		ProxyParameters string                 `json:"proxy_parameters"`
		ProxyWhitelist  []string               `json:"proxy_whitelist"`
	} `json:"livestream"`
}

type UpdateNotificationRequest added in v1.1.1

type UpdateNotificationRequest struct {
	VideoSuccessWebhookUrl string `json:"video_success_webhook_url"`
	VideoSuccessTemplate   string `json:"video_success_template"`
	VideoSuccessEnabled    bool   `json:"video_success_enabled"`
	LiveSuccessWebhookUrl  string `json:"live_success_webhook_url"`
	LiveSuccessTemplate    string `json:"live_success_template"`
	LiveSuccessEnabled     bool   `json:"live_success_enabled"`
	ErrorWebhookUrl        string `json:"error_webhook_url"`
	ErrorTemplate          string `json:"error_template"`
	ErrorEnabled           bool   `json:"error_enabled"`
	IsLiveWebhookUrl       string `json:"is_live_webhook_url"`
	IsLiveTemplate         string `json:"is_live_template"`
	IsLiveEnabled          bool   `json:"is_live_enabled"`
}

type UpdateProgressRequest added in v0.0.2

type UpdateProgressRequest struct {
	VodID string `json:"vod_id" validate:"required"`
	Time  int    `json:"time" validate:"required"`
}

type UpdateQueueRequest

type UpdateQueueRequest struct {
	ID                       uuid.UUID        `json:"id"`
	LiveArchive              bool             `json:"live_archive"`
	OnHold                   bool             `json:"on_hold"`
	VideoProcessing          bool             `json:"video_processing"`
	ChatProcessing           bool             `json:"chat_processing"`
	Processing               bool             `json:"processing"`
	TaskVodCreateFolder      utils.TaskStatus `json:"task_vod_create_folder" validate:"required,oneof=pending running success failed"`
	TaskVodDownloadThumbnail utils.TaskStatus `json:"task_vod_download_thumbnail" validate:"required,oneof=pending running success failed"`
	TaskVodSaveInfo          utils.TaskStatus `json:"task_vod_save_info" validate:"required,oneof=pending running success failed"`
	TaskVideoDownload        utils.TaskStatus `json:"task_video_download" validate:"required,oneof=pending running success failed"`
	TaskVideoConvert         utils.TaskStatus `json:"task_video_convert" validate:"required,oneof=pending running success failed"`
	TaskVideoMove            utils.TaskStatus `json:"task_video_move" validate:"required,oneof=pending running success failed"`
	TaskChatDownload         utils.TaskStatus `json:"task_chat_download" validate:"required,oneof=pending running success failed"`
	TaskChatConvert          utils.TaskStatus `json:"task_chat_convert" validate:"required,oneof=pending running success failed"`
	TaskChatRender           utils.TaskStatus `json:"task_chat_render" validate:"required,oneof=pending running success failed"`
	TaskChatMove             utils.TaskStatus `json:"task_chat_move" validate:"required,oneof=pending running success failed"`
}

type UpdateStatusRequest added in v0.0.2

type UpdateStatusRequest struct {
	VodID  string `json:"vod_id" validate:"required"`
	Status string `json:"status" validate:"required,oneof=in_progress finished"`
}

type UpdateStorageTemplateRequest added in v1.1.7

type UpdateStorageTemplateRequest struct {
	FolderTemplate string `json:"folder_template" validate:"required"`
	FileTemplate   string `json:"file_template" validate:"required"`
}

type UpdateWatchedChannelRequest

type UpdateWatchedChannelRequest struct {
	WatchLive          bool     `json:"watch_live"`
	WatchVod           bool     `json:"watch_vod" `
	DownloadArchives   bool     `json:"download_archives" `
	DownloadHighlights bool     `json:"download_highlights" `
	DownloadUploads    bool     `json:"download_uploads"`
	Resolution         string   `json:"resolution" validate:"required,oneof=best source 720p60 480p 360p 160p 480p30 360p30 160p30"`
	ArchiveChat        bool     `json:"archive_chat"`
	RenderChat         bool     `json:"render_chat"`
	DownloadSubOnly    bool     `json:"download_sub_only"`
	Categories         []string `json:"categories"`
}

type UserService

type UserService interface {
	AdminGetUsers(c echo.Context) ([]*ent.User, error)
	AdminGetUser(c echo.Context, id uuid.UUID) (*ent.User, error)
	AdminUpdateUser(c echo.Context, uDto user.User) (*ent.User, error)
	AdminDeleteUser(c echo.Context, id uuid.UUID) error
}

type VodService

type VodService interface {
	CreateVod(vod vod.Vod, cID uuid.UUID) (*ent.Vod, error)
	GetVods(c echo.Context) ([]*ent.Vod, error)
	GetVodsByChannel(c echo.Context, cUUID uuid.UUID) ([]*ent.Vod, error)
	GetVod(vID uuid.UUID) (*ent.Vod, error)
	GetVodWithChannel(vID uuid.UUID) (*ent.Vod, error)
	DeleteVod(c echo.Context, vID uuid.UUID, deleteFiles bool) error
	UpdateVod(c echo.Context, vID uuid.UUID, vod vod.Vod, cID uuid.UUID) (*ent.Vod, error)
	SearchVods(c echo.Context, query string, limit int, offset int) (vod.Pagination, error)
	GetVodPlaylists(c echo.Context, vID uuid.UUID) ([]*ent.Playlist, error)
	GetVodsPagination(c echo.Context, limit int, offset int, channelId uuid.UUID, types []utils.VodType) (vod.Pagination, error)
	GetVodChatComments(c echo.Context, vodID uuid.UUID, start float64, end float64) (*[]chat.Comment, error)
	GetUserIdFromChat(c echo.Context, vodID uuid.UUID) (*int64, error)
	GetVodChatEmotes(c echo.Context, vodID uuid.UUID) (*chat.GanymedeEmotes, error)
	GetVodChatBadges(c echo.Context, vodID uuid.UUID) (*chat.GanymedeBadges, error)
	GetNumberOfVodChatCommentsFromTime(c echo.Context, vodID uuid.UUID, start float64, commentCount int64) (*[]chat.Comment, error)
	LockVod(c echo.Context, vID uuid.UUID, status bool) error
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL