postie

command module
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: May 9, 2025 License: MIT Imports: 1 Imported by: 0

README

Postie

A high-performance Usenet binary poster written in Go, inspired by Nyuu-Obfuscation.

Features

  • Multi-server support with automatic failover
  • Yenc encoding using rapidyenc for high performance
  • Post checking with multiple attempts
  • Configurable segment size
  • Automatic retry on failure
  • SSL/TLS support
  • Connection pooling for better performance
  • PAR2 support with configurable redundancy
  • Multiple obfuscation policies
  • Configurable group posting policies

Installation

go install github.com/javi11/postie@latest

Configuration

Create a configuration file (e.g., config.yaml) based on the example in config.yaml.example:

servers:
  - host: news.server.com
    port: 1199
    username: ""
    password: ""
    ssl: false
    max_connections: 50

posting:
  max_retries: 3
  retry_delay: 5s
  max_check_retries: 5
  segment_size: 750000
  groups:
    - alt.binaries.example

par2:
  par2_path: ./parpar
  redundancy: 10
  volume_size: 153600000
Configuration Options
Servers Configuration
  • servers: Array of NNTP servers to use
    • host: Server hostname
    • port: Server port (119 for non-SSL, 563 for SSL)
    • username: Username for authentication
    • password: Password for authentication
    • ssl: Whether to use SSL/TLS
    • max_connections: Maximum number of concurrent connections per server
Posting Configuration
  • posting: Main posting configuration
    • max_retries: Maximum number of retry attempts for posting
    • retry_delay: Delay between retry attempts
    • max_check_retries: Maximum number of post check attempts
    • article_size_in_bytes: Size of each article in bytes
    • groups: List of newsgroups to post to
    • throttle_rate: Upload speed limit in bytes per second
    • message_id_format: Format of message IDs ("random" or "ngx")
    • obfuscation_policy: Level of obfuscation ("full", "partial", or "none")
    • group_policy: How to distribute posts across groups ("all" or "each_file")
    • post_headers: Additional headers configuration
      • add_ngx_header: Whether to add X-NXG header
      • default_from: Default poster name
      • custom_headers: List of custom headers to add
Post Check Configuration
  • post_check: Configuration for verifying posts
    • enabled: Whether to check posts after uploading
    • delay: Delay between check attempts
    • max_retries: Maximum number of check attempts
    • max_reposts: Maximum number of reposts if check fails
PAR2 Configuration
  • par2: PAR2 recovery file configuration
    • par2_path: Path to par2 executable
    • redundancy: Percentage of redundancy (default: 10%)
    • volume_size: Size of each volume in bytes (default: 150MB)

Usage

postie -config config.yaml

The tool will post all files in the current directory to the specified newsgroups.

Building from Source

git clone https://github.com/javi11/postie.git
cd postie
go build

License

This project is licensed under the MIT License - see the LICENSE file for details.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
cmd
internal
nzb
pkg

Jump to

Keyboard shortcuts

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