poster

package
v0.0.4 Latest Latest
Warning

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

Go to latest
Published: May 14, 2025 License: MIT Imports: 21 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CalculateHash added in v0.0.4

func CalculateHash(buff []byte) string

Types

type Article

type Article struct {
	MessageID  string
	Subject    string
	From       string
	Date       time.Time
	Body       []byte
	Bytes      int
	Group      string
	PartNumber int
	TotalParts int
	FileName   string
}

func NewArticle

func NewArticle(messageID string, subject string, from string, body []byte, group string, partNumber, totalParts int, fileName string) *Article

func (*Article) Header

func (a *Article) Header() string

type Post

type Post struct {
	FilePath string
	Articles []article.Article
	Status   PostStatus
	Error    error
	Retries  int
	// contains filtered or unexported fields
}

Post represents a file to be posted

type PostStatus

type PostStatus int

PostStatus represents the status of a post

const (
	PostStatusPending PostStatus = iota
	PostStatusPosted
	PostStatusVerified
	PostStatusFailed
)

type Poster

type Poster interface {
	// Post posts files from a directory to Usenet
	Post(ctx context.Context, files []string, rootDir string, outputDir string) error
	// GetStats returns posting statistics
	GetStats() Stats
}

Poster defines the interface for posting articles to Usenet

func New

func New(ctx context.Context, cfg config.Config) (Poster, error)

New creates a new poster

type ProgressManager

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

ProgressManager handles progress tracking and display

func NewFileProgress

func NewFileProgress(
	description string,
	totalBytes int64,
	articlesTotal int64,
) *ProgressManager

NewFileProgress creates a new progress bar for a file

func (*ProgressManager) FinishFileProgress

func (pm *ProgressManager) FinishFileProgress()

FinishFileProgress completes the progress bar for a file

func (*ProgressManager) UpdateFileProgress

func (pm *ProgressManager) UpdateFileProgress(bytesProcessed int64, articlesProcessed int64, articleErrors int64)

UpdateFileProgress updates the progress bar for a file

type Stats

type Stats struct {
	ArticlesPosted  int64
	ArticlesChecked int64
	BytesPosted     int64
	ArticleErrors   int64
	StartTime       time.Time
	// contains filtered or unexported fields
}

Stats tracks posting statistics

type Throttle

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

Throttle handles rate limiting

func (*Throttle) Wait

func (t *Throttle) Wait(bytes int64)

Wait waits for bytes to be available

Jump to

Keyboard shortcuts

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