client

package
v0.8.1 Latest Latest
Warning

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

Go to latest
Published: Jul 27, 2024 License: MIT Imports: 69 Imported by: 0

Documentation

Overview

Package client provides the low level assembly of the Notifiarr client application. This package orchestrates reading in of configuration, parsing cli flags, actioning those cli flags, setting up logging, and finally the starting of internal service routines for the webserver, plex sessions, snapshots, service checks and others. This package sets everything up for the client application.

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrUnsupport = errors.New("this feature is not supported on this platform")
	ErrNilAPIKey = errors.New("API key may not be empty: set a key in config file, OR with environment variable")
)

Errors returned by this package.

View Source
var (
	ErrInvalidHeader = errors.New("invalid header provided; must contain a colon")
)

Errors.

Functions

func Fortune added in v0.3.2

func Fortune() string

Fortune returns a fortune.

func Start

func Start() error

Start runs the app.

Types

type Client

type Client struct {
	*logs.Logger

	Flags  *configfile.Flags
	Config *configfile.Config

	// this locks anything that may be updated while running.
	// at least "UIPassword" and "reloading" as of its creation.
	sync.RWMutex
	// contains filtered or unexported fields
}

Client stores all the running data.

func (*Client) Exit

func (c *Client) Exit(ctx context.Context) error

Exit stops the web server and logs our exit messages. Start() calls this.

func (*Client) ParseGUITemplates added in v0.3.0

func (c *Client) ParseGUITemplates() error

ParseGUITemplates parses the baked-in templates, and overrides them if a template directory is provided.

func (*Client) PlexHandler added in v0.3.2

func (c *Client) PlexHandler(w http.ResponseWriter, r *http.Request)

PlexHandler handles an incoming webhook from Plex. @Summary Accept Plex Media Server Webhook @Description Accepts a Plex webhook; when conditions are satisfied sends a notification to the website, @Description and may include snapshot data and/or fetched session data. Does not require X-API-Key header. @Tags Plex @Accept json @Produce text/plain @Param token query string true "Plex Token or Client API Key" @Param POST body plex.IncomingWebhook true "webhook payload" @Success 202 {string} string "accepted" @Success 208 {string} string "ignored" @Failure 400 {string} string "bad input" @Failure 404 {string} string "bad token or api key" @Router /plex [post]

func (*Client) PrintStartupInfo

func (c *Client) PrintStartupInfo(ctx context.Context, clientInfo *clientinfo.ClientInfo)

PrintStartupInfo prints info about our startup config. This runs once on startup, and again during reloads.

func (*Client) StartWebServer

func (c *Client) StartWebServer(ctx context.Context)

StartWebServer starts the web server.

func (*Client) StopWebServer

func (c *Client) StopWebServer(ctx context.Context) error

StopWebServer stops the web servers. Panics if that causes an error or timeout.

Jump to

Keyboard shortcuts

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