mirakurun

package
v0.2.4 Latest Latest
Warning

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

Go to latest
Published: Mar 11, 2023 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client struct {
	URL           *url.URL
	HTTPClient    *http.Client
	DefaultHeader http.Header
	Logger        log.Logger
}

func NewClient

func NewClient(urlString string) (*Client, error)

func (*Client) GetPrograms

func (c *Client) GetPrograms(ctx context.Context) (*ProgramsResponse, error)

func (*Client) GetServices

func (c *Client) GetServices(ctx context.Context) (*ServicesResponse, error)

func (*Client) GetStatus

func (c *Client) GetStatus(ctx context.Context) (*StatusResponse, error)

func (*Client) GetTuners

func (c *Client) GetTuners(ctx context.Context) (*TunersResponse, error)

type ProgramsResponse

type ProgramsResponse []struct {
	ID          int64   `json:"id"`
	EventID     int     `json:"eventId"`
	ServiceID   int     `json:"serviceId"`
	NetworkID   int     `json:"networkId"`
	StartAt     int64   `json:"startAt"`
	Duration    int64   `json:"duration"`
	IsFree      bool    `json:"isFree"`
	Name        *string `json:"name"`
	Description *string `json:"description"`
	Genres      *[]struct {
		Lv1 int `json:"lv1"`
		Lv2 int `json:"lv2"`
		Un1 int `json:"un1"`
		Un2 int `json:"un2"`
	} `json:"genres"`
	Video *struct {
		Type          string `json:"type"`
		Resolution    string `json:"resolution"`
		StreamContent int    `json:"streamContent"`
		ComponentType int    `json:"componentType"`
	} `json:"video"`
	Audio *struct {
		ComponentType int       `json:"componentType"`
		ComponentTag  *int      `json:"componentTag"`
		IsMain        *bool     `json:"isMain"`
		SamplingRate  int       `json:"samplingRate"`
		Langs         *[]string `json:"langs"`
	} `json:"audio"`
	Series *struct {
		ID          int    `json:"id"`
		Repeat      int    `json:"repeat"`
		Pattern     int    `json:"pattern"`
		ExpiresAt   int64  `json:"expiresAt"`
		Episode     int    `json:"episode"`
		LastEpisode int    `json:"lastEpisode"`
		Name        string `json:"name"`
	} `json:"series"`
	Extended     *map[string]string `json:"extended"`
	RelatedItems *[]struct {
		Type      *string `json:"type"`
		NetworkID *int    `json:"networkId"`
		ServiceID int     `json:"serviceId"`
		EventID   int     `json:"eventId"`
	} `json:"relatedItems"`
}

type ServicesResponse

type ServicesResponse []struct {
	ID                 int64  `json:"id"`
	ServiceID          int    `json:"serviceId"`
	NetworkID          int    `json:"networkId"`
	Name               string `json:"name"`
	Type               int    `json:"type"`
	LogoID             *int   `json:"logoId"`
	RemoteControlKeyID *int   `json:"remoteControlKeyId"`
	EpgReady           *bool  `json:"epgReady"`
	EpgUpdatedAt       *int64 `json:"epgUpdatedAt"`
	Channel            *struct {
		Type       string  `json:"type"`
		Channel    string  `json:"channel"`
		Name       string  `json:"name"`
		Satelite   *string `json:"satelite"`
		ServiceID  *int    `json:"serviceId"`
		Space      *int    `json:"space"`
		Freq       *int    `json:"freq"`
		Polarity   *string `json:"polarity"`
		TSMFRelTS  *int    `json:"tsmfRelTs"`
		IsDisabled *bool   `json:"isDisabled"`
	} `json:"channel"`
	HasLogoData *bool `json:"hasLogoData"`
}

type StatusResponse

type StatusResponse struct {
	Time    int64  `json:"time"`
	Version string `json:"version"`
	Process struct {
		Arch        string            `json:"arch"`
		Platform    string            `json:"platform"`
		Versions    map[string]string `json:"versions"`
		Env         map[string]string `json:"env"`
		PID         int               `json:"pid"`
		MemoryUsage struct {
			RSS          int64 `json:"rss"`
			HeapTotal    int64 `json:"heapTotal"`
			HeapUsed     int64 `json:"heapUsed"`
			External     int64 `json:"external"`
			ArrayBuffers int64 `json:"arrayBuffers"`
		} `json:"memoryUsage"`
	} `json:"process"`
	EPG struct {
		GatheringNetworks []int64 `json:"gatheringNetworks"`
		StoredEvents      int64   `json:"storedEvents"`
	} `json:"EPG"`
	RPCCount    *int `json:"rpcCount"` // available since 3.9.0-beta.0
	StreamCount struct {
		TunerDevice int `json:"tunerDevice"`
		TSFilter    int `json:"tsFilter"`
		Decoder     int `json:"decoder"`
	} `json:"streamCount"`
	ErrorCount struct {
		UncaughtException  int `json:"uncaughtException"`
		UnhandledRejection int `json:"unhandledRejection"`
		BufferOverflow     int `json:"bufferOverflow"`
		TunerDeviceRespawn int `json:"tunerDeviceRespawn"`
		DecoderRespawn     int `json:"decoderRespawn"`
	} `json:"errorCount"`
	TimerAccuracy struct {
		Last float64 `json:"last"`
		M1   struct {
			Avg float64 `json:"avg"`
			Min float64 `json:"min"`
			Max float64 `json:"max"`
		} `json:"m1"`
		M5 struct {
			Avg float64 `json:"avg"`
			Min float64 `json:"min"`
			Max float64 `json:"max"`
		} `json:"m5"`
		M15 struct {
			Avg float64 `json:"avg"`
			Min float64 `json:"min"`
			Max float64 `json:"max"`
		} `json:"m15"`
	} `json:"timerAccuracy"`
}

type TunersResponse

type TunersResponse []struct {
	Index   int      `json:"index"`
	Name    string   `json:"name"`
	Types   []string `json:"types"`
	Command string   `json:"command"`
	PID     int      `json:"pid"`
	Users   []struct {
		ID             string  `json:"id"`
		Priority       int     `json:"priority"`
		Agent          *string `json:"agent"`
		URL            *string `json:"url"`
		DisableDecoder *bool   `json:"disableDecoder"`
		StreamSetting  *struct {
			Channel struct {
				Type       string  `json:"type"`
				Channel    string  `json:"channel"`
				Name       string  `json:"name"`
				Satelite   *string `json:"satelite"`
				ServiceID  *int    `json:"serviceId"`
				Space      *int    `json:"space"`
				Freq       *int    `json:"freq"`
				Polarity   *string `json:"polarity"`
				TSMFRelTS  *int    `json:"tsmfRelTs"`
				IsDisabled *bool   `json:"isDisabled"`
			} `json:"channel"`
			NetworkID *int  `json:"networkId"`
			ServiceID *int  `json:"serviceId"`
			EventID   *int  `json:"eventId"`
			NoProvide *bool `json:"noProvide"`
			ParseEIT  *bool `json:"parseEIT"`
			ParseSDT  *bool `json:"parseSDT"`
			ParseNIT  *bool `json:"parseNIT"`
		} `json:"streamSetting"`
		StreamInfo *map[uint16]struct {
			Packet int64 `json:"packet"`
			Drop   int64 `json:"drop"`
		} `json:"streamInfo"`
	} `json:"users"`
	IsAvailable bool `json:"isAvailable"`
	IsRemote    bool `json:"isRemote"`
	IsFree      bool `json:"isFree"`
	IsUsing     bool `json:"isUsing"`
	IsFault     bool `json:"isFault"`
}

Jump to

Keyboard shortcuts

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