SYMBOL INDEX (85 symbols across 14 files) FILE: channel/channel.go type Channel (line 16) | type Channel struct method Publisher (line 48) | func (ch *Channel) Publisher() { method WithCancel (line 69) | func (ch *Channel) WithCancel(ctx context.Context) (context.Context, c... method Info (line 75) | func (ch *Channel) Info(format string, a ...any) { method Error (line 81) | func (ch *Channel) Error(format string, a ...any) { method ExportInfo (line 87) | func (ch *Channel) ExportInfo() *entity.ChannelInfo { method Pause (line 113) | func (ch *Channel) Pause() { method Stop (line 124) | func (ch *Channel) Stop() { method Resume (line 135) | func (ch *Channel) Resume(startSeq int) { method UpdateOnlineStatus (line 146) | func (ch *Channel) UpdateOnlineStatus(isOnline bool) { function New (line 34) | func New(conf *entity.ChannelConfig) *Channel { FILE: channel/channel_file.go type Pattern (line 14) | type Pattern struct method NextFile (line 26) | func (ch *Channel) NextFile() error { method Cleanup (line 44) | func (ch *Channel) Cleanup() error { method GenerateFilename (line 77) | func (ch *Channel) GenerateFilename() (string, error) { method CreateNewFile (line 106) | func (ch *Channel) CreateNewFile(filename string) error { method ShouldSwitchFile (line 124) | func (ch *Channel) ShouldSwitchFile() bool { FILE: channel/channel_record.go method Monitor (line 16) | func (ch *Channel) Monitor() { method Update (line 72) | func (ch *Channel) Update() { method RecordStream (line 78) | func (ch *Channel) RecordStream(ctx context.Context, client *chaturbate.... method HandleSegment (line 109) | func (ch *Channel) HandleSegment(b []byte, duration float64) error { FILE: chaturbate/chaturbate.go type Client (line 24) | type Client struct method GetStream (line 36) | func (c *Client) GetStream(ctx context.Context, username string) (*Str... function NewClient (line 29) | func NewClient() *Client { function FetchStream (line 41) | func FetchStream(ctx context.Context, client *internal.Req, username str... function ParseStream (line 56) | func ParseStream(body string) (*Stream, error) { type Stream (line 80) | type Stream struct method GetPlaylist (line 85) | func (s *Stream) GetPlaylist(ctx context.Context, resolution, framerat... function FetchPlaylist (line 90) | func FetchPlaylist(ctx context.Context, hlsSource string, resolution, fr... function ParsePlaylist (line 104) | func ParsePlaylist(resp, hlsSource string, resolution, framerate int) (*... type Playlist (line 119) | type Playlist struct method WatchSegments (line 198) | func (p *Playlist) WatchSegments(ctx context.Context, handler WatchHan... type Resolution (line 127) | type Resolution struct function PickPlaylist (line 133) | func PickPlaylist(masterPlaylist *m3u8.MasterPlaylist, baseURL string, r... type WatchHandler (line 195) | type WatchHandler FILE: config/config.go function New (line 9) | func New(c *cli.Context) (*entity.Config, error) { FILE: entity/entity.go constant EventUpdate (line 12) | EventUpdate Event = "update" constant EventLog (line 13) | EventLog Event = "log" type ChannelConfig (line 17) | type ChannelConfig struct method Sanitize (line 28) | func (c *ChannelConfig) Sanitize() { type ChannelInfo (line 35) | type ChannelInfo struct type Config (line 51) | type Config struct FILE: internal/internal.go function FormatDuration (line 10) | func FormatDuration(duration float64) string { function FormatFilesize (line 23) | func FormatFilesize(filesize int) string { function SegmentSeq (line 45) | func SegmentSeq(filename string) int { FILE: internal/internal_req.go type Req (line 16) | type Req struct method Get (line 43) | func (h *Req) Get(ctx context.Context, url string) (string, error) { method GetBytes (line 52) | func (h *Req) GetBytes(ctx context.Context, url string) ([]byte, error) { function NewReq (line 21) | func NewReq() *Req { function CreateTransport (line 30) | func CreateTransport() *http.Transport { function CreateRequest (line 87) | func CreateRequest(ctx context.Context, url string) (*http.Request, cont... function SetRequestHeaders (line 99) | func SetRequestHeaders(req *http.Request) { function ParseCookies (line 114) | func ParseCookies(cookieStr string) map[string]string { FILE: main.go constant logo (line 16) | logo = ` function main (line 30) | func main() { function start (line 111) | func start(c *cli.Context) error { FILE: manager/manager.go type Manager (line 20) | type Manager struct method SaveConfig (line 40) | func (m *Manager) SaveConfig() error { method LoadConfig (line 62) | func (m *Manager) LoadConfig() error { method CreateChannel (line 90) | func (m *Manager) CreateChannel(conf *entity.ChannelConfig, shouldSave... method StopChannel (line 112) | func (m *Manager) StopChannel(username string) error { method PauseChannel (line 127) | func (m *Manager) PauseChannel(username string) error { method ResumeChannel (line 141) | func (m *Manager) ResumeChannel(username string) error { method ChannelInfo (line 155) | func (m *Manager) ChannelInfo() []*entity.ChannelInfo { method Publish (line 177) | func (m *Manager) Publish(evt entity.Event, info *entity.ChannelInfo) { method Subscriber (line 198) | func (m *Manager) Subscriber(w http.ResponseWriter, r *http.Request) { function New (line 26) | func New() (*Manager, error) { FILE: router/router.go function SetupRouter (line 15) | func SetupRouter() *gin.Engine { function SetupAuth (line 34) | func SetupAuth(r *gin.Engine) { function SetupStatic (line 44) | func SetupStatic(r *gin.Engine) { function SetupViews (line 53) | func SetupViews(r *gin.Engine) { function LoadHTMLFromEmbedFS (line 65) | func LoadHTMLFromEmbedFS(r *gin.Engine, embeddedFS embed.FS, files ...st... FILE: router/router_handler.go type IndexData (line 15) | type IndexData struct function Index (line 21) | func Index(c *gin.Context) { type CreateChannelRequest (line 29) | type CreateChannelRequest struct function CreateChannel (line 39) | func CreateChannel(c *gin.Context) { function StopChannel (line 62) | func StopChannel(c *gin.Context) { function PauseChannel (line 69) | func PauseChannel(c *gin.Context) { function ResumeChannel (line 76) | func ResumeChannel(c *gin.Context) { function Updates (line 83) | func Updates(c *gin.Context) { type UpdateConfigRequest (line 88) | type UpdateConfigRequest struct function UpdateConfig (line 94) | func UpdateConfig(c *gin.Context) { FILE: router/view/view.go function init (line 18) | func init() { function StaticFS (line 28) | func StaticFS() (http.FileSystem, error) { FILE: server/manager.go type IManager (line 11) | type IManager interface