Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( // ErrPosterClosed is returned when attempting to post after the poster has been closed ErrPosterClosed = errors.New("poster is closed") )
Functions ¶
This section is empty.
Types ¶
type DeferredCheckError ¶ added in v0.0.29
type DeferredCheckError struct {
FailedArticles []FailedArticleInfo
TotalArticles int
}
DeferredCheckError is a non-fatal error indicating some articles need deferred verification. The upload itself succeeded, but article verification (STAT check) failed after all immediate retries.
func (*DeferredCheckError) Error ¶ added in v0.0.29
func (e *DeferredCheckError) Error() string
type FailedArticleInfo ¶ added in v0.0.29
FailedArticleInfo contains information about an article that failed verification and should be deferred for later checking.
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 PostStatusCancelled PostStatusPosting )
type Poster ¶
type Poster interface {
// Post posts files from a directory to Usenet
Post(ctx context.Context, files []string, rootDir string, nzbGen nzb.NZBGenerator) error
// PostWithRelativePaths posts files with custom display names (relative paths) for subjects
// relativePaths maps absolute file path to the display name to use in the subject
PostWithRelativePaths(ctx context.Context, files []string, rootDir string, nzbGen nzb.NZBGenerator, relativePaths map[string]string) error
// Stats returns posting statistics
Stats() Stats
// Close closes the poster
Close()
}
Poster defines the interface for posting articles to Usenet
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 using lock-free atomic operations for better performance under high concurrency.
func NewThrottle ¶ added in v0.0.6
NewThrottle creates a new throttle with the given rate and interval