backend

package
v0.0.7 Latest Latest
Warning

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

Go to latest
Published: Jul 12, 2025 License: MIT Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type App

type App struct {
	// contains filtered or unexported fields
}

App struct for the Wails application

func NewApp

func NewApp() *App

NewApp creates a new App application struct

func (*App) AddFilesToQueue

func (a *App) AddFilesToQueue() error

AddFilesToQueue adds multiple files to the queue for processing

func (*App) CancelJob

func (a *App) CancelJob(id string) error

CancelJob cancels a running job via processor

func (*App) CancelUpload

func (a *App) CancelUpload() error

CancelUpload cancels the currently running direct upload

func (*App) ClearQueue

func (a *App) ClearQueue() error

ClearQueue removes all completed and failed items from the queue via queue

func (*App) DebugQueueItem

func (a *App) DebugQueueItem(id string) (map[string]interface{}, error)

DebugQueueItem returns debug information about a queue item

func (*App) DownloadNZB

func (a *App) DownloadNZB(id string) error

DownloadNZB downloads the NZB file for a completed item

func (*App) GetAppStatus

func (a *App) GetAppStatus() map[string]interface{}

GetAppStatus returns the current application status

func (*App) GetConfig

func (a *App) GetConfig() (*config.ConfigData, error)

GetConfig returns the current configuration

func (*App) GetConfigPath

func (a *App) GetConfigPath() string

GetConfigPath returns the path to the configuration file

func (*App) GetLogs

func (a *App) GetLogs() (string, error)

GetLogs returns the content of the log file.

func (*App) GetLogsPaginated

func (a *App) GetLogsPaginated(limit, offset int) (string, error)

GetLogsPaginated returns paginated log content limit: number of lines to return (0 = use original 1MB limit) offset: number of lines to skip from the end (0 = start from most recent)

func (*App) GetNZBContent

func (a *App) GetNZBContent(id string) (string, error)

GetNZBContent returns the content of an NZB file for a completed item

func (*App) GetOutputDirectory

func (a *App) GetOutputDirectory() string

GetOutputDirectory returns the current output directory

func (*App) GetProcessorStatus

func (a *App) GetProcessorStatus() map[string]interface{}

GetProcessorStatus returns processor status information

func (*App) GetProgress

func (a *App) GetProgress() ProgressTracker

GetProgress returns the current progress

func (*App) GetQueueItems

func (a *App) GetQueueItems() ([]QueueItem, error)

GetQueueItems returns the current queue items from the queue

func (*App) GetQueueStats

func (a *App) GetQueueStats() (map[string]interface{}, error)

GetQueueStats returns statistics about the queue via queue

func (*App) GetRunningJobDetails

func (a *App) GetRunningJobDetails() ([]*processor.RunningJobDetails, error)

GetRunningJobDetails returns detailed information about currently running jobs

func (*App) GetRunningJobs

func (a *App) GetRunningJobs() ([]processor.RunningJobItem, error)

GetRunningJobs returns currently running jobs from the processor

func (*App) GetWatchDirectory

func (a *App) GetWatchDirectory() string

GetWatchDirectory returns the current watch directory

func (*App) HandleDroppedFiles

func (a *App) HandleDroppedFiles(filePaths []string) error

HandleDroppedFiles processes files that are dropped onto the application window

func (*App) IsUploading

func (a *App) IsUploading() bool

IsUploading returns whether an upload is in progress

func (*App) NavigateToDashboard

func (a *App) NavigateToDashboard()

NavigateToDashboard emits an event to navigate to the dashboard page

func (*App) NavigateToSettings

func (a *App) NavigateToSettings()

NavigateToSettings emits an event to navigate to the settings page

func (*App) RemoveFromQueue

func (a *App) RemoveFromQueue(id string) error

RemoveFromQueue removes an item from the queue via queue

func (*App) RetryJob

func (a *App) RetryJob(id string) error

RetryJob retries a failed job

func (*App) SaveConfig

func (a *App) SaveConfig(configData *config.ConfigData) error

SaveConfig saves the configuration

func (*App) SelectConfigFile

func (a *App) SelectConfigFile() (string, error)

SelectConfigFile allows user to select a config file

func (*App) SelectOutputDirectory

func (a *App) SelectOutputDirectory() (string, error)

SelectOutputDirectory allows user to select an output directory

func (*App) SelectTempDirectory

func (a *App) SelectTempDirectory() (string, error)

SelectTempDirectory allows user to select a temporary directory for PAR2 files

func (*App) SelectWatchDirectory

func (a *App) SelectWatchDirectory() (string, error)

SelectWatchDirectory allows user to select a watch directory

func (*App) SetQueueItemPriority

func (a *App) SetQueueItemPriority(id string, priority int) error

SetQueueItemPriority updates the priority of a pending queue item by id

func (*App) SetWebEventEmitter

func (a *App) SetWebEventEmitter(emitter func(eventType string, data interface{}))

SetWebEventEmitter sets the event emitter function for web mode

func (*App) SetWebMode

func (a *App) SetWebMode(isWeb bool)

SetWebMode sets the application to web mode

func (*App) SetupWizardComplete added in v0.0.7

func (a *App) SetupWizardComplete(wizardData SetupWizardData) error

SetupWizardComplete saves the configuration from the setup wizard

func (*App) Startup

func (a *App) Startup(ctx context.Context)

Startup is called when the app starts. The context is saved so we can call the runtime methods

func (*App) UploadFiles

func (a *App) UploadFiles() error

UploadFiles uploads the selected files

func (*App) ValidateNNTPServer added in v0.0.7

func (a *App) ValidateNNTPServer(serverData ServerData) ValidationResult

ValidateNNTPServer validates an NNTP server configuration by attempting to connect

type AppPaths

type AppPaths struct {
	Config   string
	Database string
	Par2     string
	Data     string
	Log      string
}

AppPaths holds the various paths needed by the application

func GetAppPaths

func GetAppPaths() (*AppPaths, error)

GetAppPaths returns the appropriate paths for the current operating system

type ProgressTracker

type ProgressTracker struct {
	CurrentFile         string  `json:"currentFile"`
	TotalFiles          int     `json:"totalFiles"`
	CompletedFiles      int     `json:"completedFiles"`
	Stage               string  `json:"stage"`
	Details             string  `json:"details"`
	IsRunning           bool    `json:"isRunning"`
	LastUpdate          int64   `json:"lastUpdate"`
	Percentage          float64 `json:"percentage"`
	CurrentFileProgress float64 `json:"currentFileProgress"`
	JobID               string  `json:"jobID"`
	TotalBytes          int64   `json:"totalBytes"`
	TransferredBytes    int64   `json:"transferredBytes"`
	CurrentFileBytes    int64   `json:"currentFileBytes"`
	Speed               float64 `json:"speed"`       // Speed in KB/s
	SecondsLeft         float64 `json:"secondsLeft"` // Estimated seconds remaining
	ElapsedTime         float64 `json:"elapsedTime"` // Elapsed time in seconds
}

type ProgressUpdate

type ProgressUpdate struct {
	// Core fields that are commonly updated together (non-nullable)
	Stage          string  `json:"stage"`          // Always provided for state changes
	IsRunning      bool    `json:"isRunning"`      // Always provided with stage changes
	CompletedFiles int     `json:"completedFiles"` // Frequently updated for progress
	Percentage     float64 `json:"percentage"`     // Frequently updated with completedFiles

	// Optional context fields (nullable)
	CurrentFile         *string  `json:"currentFile,omitempty"`         // Optional: file being processed
	TotalFiles          *int     `json:"totalFiles,omitempty"`          // Optional: set once at start
	Details             *string  `json:"details,omitempty"`             // Optional: detailed status from callbacks
	JobID               *string  `json:"jobID,omitempty"`               // Optional: only for queue operations
	TotalBytes          *int64   `json:"totalBytes,omitempty"`          // Optional: set once at start
	TransferredBytes    *int64   `json:"transferredBytes,omitempty"`    // Optional: periodic updates
	CurrentFileBytes    *int64   `json:"currentFileBytes,omitempty"`    // Optional: from callbacks
	CurrentFileProgress *float64 `json:"currentFileProgress,omitempty"` // Optional: from callbacks
	Speed               *float64 `json:"speed,omitempty"`               // Optional: upload speed in KB/s
	SecondsLeft         *float64 `json:"secondsLeft,omitempty"`         // Optional: estimated seconds remaining
	ElapsedTime         *float64 `json:"elapsedTime,omitempty"`         // Optional: elapsed time in seconds
}

ProgressUpdate contains the fields that can be updated in a progress update

type QueueItem

type QueueItem struct {
	ID           string     `json:"id"`
	Path         string     `json:"path"`
	FileName     string     `json:"fileName"`
	Size         int64      `json:"size"`
	Status       string     `json:"status"`
	RetryCount   int        `json:"retryCount"`
	Priority     int        `json:"priority"`
	ErrorMessage *string    `json:"errorMessage"`
	CreatedAt    time.Time  `json:"createdAt"`
	UpdatedAt    time.Time  `json:"updatedAt"`
	CompletedAt  *time.Time `json:"completedAt"`
	NzbPath      *string    `json:"nzbPath"`
}

QueueItem represents a queue item for the frontend - matches queue.QueueItem

type ServerData added in v0.0.7

type ServerData struct {
	Host           string `json:"host"`
	Port           int    `json:"port"`
	Username       string `json:"username"`
	Password       string `json:"password"`
	SSL            bool   `json:"ssl"`
	MaxConnections int    `json:"maxConnections"`
}

ServerData represents the server configuration data from the frontend

type SetupWizardData added in v0.0.7

type SetupWizardData struct {
	Servers         []ServerData `json:"servers"`
	OutputDirectory string       `json:"outputDirectory"`
	WatchDirectory  string       `json:"watchDirectory"`
}

SetupWizardData represents the complete setup wizard data from the frontend

type ValidationResult added in v0.0.7

type ValidationResult struct {
	Valid bool   `json:"valid"`
	Error string `json:"error"`
}

ValidationResult represents the result of server validation

Jump to

Keyboard shortcuts

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