cmd

package
v0.0.0-...-9fdfd3a Latest Latest
Warning

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

Go to latest
Published: May 7, 2021 License: GPL-3.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var RequestActions = []RequestAction{
	{
		Name:        "Delete Request",
		Description: "Remove a request from the Overseerr server",
		Validator: func(r *goverseerr.MediaRequest) bool {
			return true
		},
		Handler: func(r *goverseerr.MediaRequest) {
			ui.DestructiveConfirmation()
			if err := overseerr.DeleteRequest(r.ID); err != nil {
				ui.Error("Failed to delete that request")
				ui.ColorPrint("You can only remove pending requests if you are not an admin user\n", ui.White)
				ui.FatalQuiet("Failed to delete request from server", err)
			} else {
				ui.Success("Request Deleted")
			}
		},
	},
	{
		Name:        "Retry Request",
		Description: "Resend a request to the relevant management service",
		Validator: func(r *goverseerr.MediaRequest) bool {
			return r.Status != goverseerr.RequestStatusAvailable
		},
		Handler: func(r *goverseerr.MediaRequest) {
			if _, err := overseerr.RetryRequest(r.ID); err != nil {
				ui.Error("Failed to retry that request")
				ui.ColorPrint("You can only retry requests if you can manage requests (admin)\n", ui.White)
				ui.ColorPrint("Availabe requests can not be retried\n", ui.White)
				ui.FatalQuiet("Failed to retry request", err)
			} else {
				ui.Success("Request Resent")
			}
		},
	},
	{
		Name:        "Approve Request",
		Description: "Set a request's status to Approved",
		Validator: func(r *goverseerr.MediaRequest) bool {
			return (r.Status != goverseerr.RequestStatusApproved && r.Status != goverseerr.RequestStatusAvailable)
		},
		Handler: func(r *goverseerr.MediaRequest) {
			ui.DestructiveConfirmation()
			if _, err := overseerr.ApproveRequest(r.ID); err != nil {
				ui.Error("Failed to approve that request")
				ui.FatalQuiet("Failed to approve request", err)
			} else {
				ui.Success("Request Approved")
			}
		},
	},
	{
		Name:        "Decline Request",
		Description: "Set a request's status to Declined",
		Validator: func(r *goverseerr.MediaRequest) bool {
			return (r.Status != goverseerr.RequestStatusDeclined && r.Status != goverseerr.RequestStatusAvailable)
		},
		Handler: func(r *goverseerr.MediaRequest) {
			ui.DestructiveConfirmation()
			if _, err := overseerr.DeclineRequest(r.ID); err != nil {
				ui.Error("Failed to decline that request")
				ui.FatalQuiet("Failed to decline request", err)
			} else {
				ui.Success("Request Declined")
			}
		},
	},
	{
		Name:        "Details",
		Description: "Print more details about this request",
		Validator: func(r *goverseerr.MediaRequest) bool {
			return true
		},
		Handler: func(r *goverseerr.MediaRequest) {
			if friendly, err := r.ToFriendly(overseerr); err != nil {
				ui.Error("Failed to get more info about this request")
				ui.FatalQuiet("Failed to get request details", err)
			} else {
				fmt.Printf("%+v\n", friendly)
			}
		},
	},
}
View Source
var ResultActions = []ResultAction{
	{
		Name:        "Request",
		Description: "Request this media!",
		Validator: func(r *goverseerr.GenericSearchResult) bool {
			if r.MediaType == goverseerr.MediaTypePerson {
				ui.Error("Can not request a person!")
				return false
			}
			if r.MediaInfo.Status != goverseerr.MediaStatusUnknown {
				ui.Error("Media is already requested or available!")
				return false
			}
			return true
		},
		Handler: func(r *goverseerr.GenericSearchResult) {

		},
	},
	{
		Name:        "Details",
		Description: "See more details about this item",
		Validator: func(r *goverseerr.GenericSearchResult) bool {
			return true
		},
		Handler: func(r *goverseerr.GenericSearchResult) {
		},
	},
}
View Source
var RootCmd = &cobra.Command{
	Use:     "overclirr",
	Aliases: []string{"ocrr", "overseerr", "overseerr-cli"},
	Short:   "Manage media servers from the command line",
	Long:    `A simple command line tool for managing media server(s) with Overseerr!`,
	PersistentPreRun: func(cmd *cobra.Command, args []string) {
		setupLogger()
		if !noTitle {
			ui.PrintTitleBox("OverCLIrr", "An Overseerr Management Tool")
		}
		logrus.WithFields(logrus.Fields{
			"command": cmd.Name(),
			"args":    args,
		}).Debugln("running command")
	},
	Run: func(cmd *cobra.Command, args []string) {
		allProfiles := utility.GetAllOverseerrProfiles()
		ui.ColorPrintBold("Profiles Found in Configuration: ", ui.Blue)
		ui.ColorPrint(fmt.Sprintf("%d\n\n", len(allProfiles)), ui.White)
		cmd.Help()
	},
}

Functions

This section is empty.

Types

type RequestAction

type RequestAction struct {
	Name        string
	Description string
	Handler     func(r *goverseerr.MediaRequest)
	Validator   func(r *goverseerr.MediaRequest) bool
}

type ResultAction

type ResultAction struct {
	Name        string
	Description string
	Handler     func(r *goverseerr.GenericSearchResult)
	Validator   func(r *goverseerr.GenericSearchResult) bool
}

Jump to

Keyboard shortcuts

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