1. Sidebar (Navigation Panel)

The Sidebar is the permanent navigation bar on the left side of the application, featuring a dark mode design.

1.1 Logo

The Zenith logo is displayed at the very top of the sidebar (Arrow + Mountain + "ZENITH" lettering). The logo serves as visual brand identification.

1.2 Navigation Menu

Below the logo is the vertical navigation list. The entries are divided into logical groups, separated by invisible spacers:

Main Areas

Icon Menu Item Description
๐Ÿ“Š Dashboard Command Center โ€” Overview of all systems
๐Ÿ“ค Upload Manage upload queue, add files/folders
โฌ‡ Download Import and download NZB files
โ˜ Cloud Backup Backups to cloud storage (Dropbox, GDrive, etc.)
๐Ÿ“ˆ Statistics Upload history, speed trends, data volumes

Connection

Icon Menu Item Description
๐Ÿ›ก VPN Guard Manage VPN connection, configure Kill-Switch
๐Ÿ”— Remote Inputs Configure RSS/Newznab feeds for automated downloads

Automation

Icon Menu Item Description
๐Ÿ“ Auto-Post Automatic posting to forums after upload completion

Notifications

Icon Menu Item Description
๐Ÿ”” Webhooks Webhook notifications (Discord, Telegram, etc.)

System

Icon Menu Item Description
โš™ Settings Providers, upload/download settings, watched folders
๐Ÿ”‘ License Enter/activate license key, display tier
๐Ÿ›Ÿ Support Report bugs, view logs, FAQ

Active State Styling

1.3 Admin Lock (๐Ÿ”“ Admin)

The Admin Lock button is located at the bottom edge of the sidebar. This allows an administrator to lock specific tabs with a password to prevent unauthorized modifications.

State Display Function
No password set ๐Ÿ”“ Admin (gray) Click opens the Admin dialog for initial setup
Unlocked ๐Ÿ”“ Admin (green) Click opens the Admin dialog for configuration
Locked ๐Ÿ”’ Locked (red) Click opens the unlock dialog (password required)

Locked tabs are marked with a ๐Ÿ”’ symbol and can only be accessed after entering the admin password.

1.4 Demo Notice

In DEMO mode, an orange warning box is displayed at the bottom of the sidebar:

โš  DEMO VERSION
Restricted functions
Upgrade for full access

2. Dashboard (Command Center)

The Dashboard is the home page of the application, providing an at-a-glance overview of all critical systems. It is scrollable and automatically updates every 3 seconds.

2.1 VPN Status Card (Full Width, Top)

The VPN card displays the current connection status and allows toggling the VPN on/off directly from the dashboard.

Elements

Element Description
๐Ÿ›ก Status Icon Large shield symbol
Status Text "VPN Mode ACTIVE" (green) / "VPN Mode INACTIVE" (gray) / "VPN Connecting..." (yellow) / "VPN Error" (red)
Toggle Switch iOS-style toggle switch for turning on/off
Detail Line Displays tunnel type, IP address, and Kill-Switch status

States

State Color Detail Text
Inactive Gray VPN Tunnel: โ€” โ”‚ IP: โ€” โ”‚ Leak Check: โ€”
Connecting Yellow Connecting to WIREGUARD...
Active Green VPN Tunnel: WIREGUARD โ”‚ IP: 185.x.x.x โ”‚ Kill-Switch: Active
Error Red โš  No WireGuard interface configured

Behavior

2.2 Queue Card (Left, Main Area)

The Queue Card occupies the largest portion of the dashboard and features two sub-tabs: Upload and Download.

2.2.1 Upload Page

Displays all upload tasks in the queue as a scrollable list.

Task Entries

Each task is shown as a row containing the following info: - Task name (e.g., rudirudi5 (7th Copy)) - File size (e.g., 656.9 MB) - Status (Pending / Packing / Uploading / Completed / Failed / Paused) - Progress bar (0โ€“100%) - Speed (for active uploads)

Clicking a row selects the task (highlighted in blue), allowing it to be started individually.

Buttons

Button Function Description
โ–ถ Start All Start Queue Starts the entire upload queue (green)
โธ Pause All Pause Queue Pauses all running uploads (orange)
โ–ถ Resume All Resume Queue Resumes the paused queue (green)
โ–ถ Start Single Single Task Starts only the selected task; queue auto-pauses afterward
โœ“ Hide Completed Clean Up Removes completed tasks from the display

3-State Logic: The main button cycles between "Start All" โ†’ "Pause All" โ†’ "Resume All", identical to the Download tab.

2.2.2 Download Page

Displays all download tasks (NZB imports) in the queue.

Button Function
โ–ถ Start All Start all downloads
โธ Pause All Pause all downloads
โ–ถ Resume Downloads Resume paused downloads
โ–ถ Start Single Start only the selected download
โœ“ Hide Completed Remove completed downloads

2.3 Watched Folders (Top Right)

Displays all configured monitored folders (Watchfolders) with individual toggle switches.

Element Description
Folder Path Full path, e.g., /home/user/Videos/Upload
Toggle Switch On/Off switch for activation/deactivation

Behavior - Deactivating: Removes all pending tasks of this folder from the queue. - Activating: Restarts the watchdog and scans the folder for existing files. - Folders are added/removed via Settings โ†’ Watched Folders. - If no folders are configured: "No watchfolders configured".

2.4 Disk Space Guard (Bottom Right)

Displays current storage consumption and contains several sub-sections.

2.4.1 Disk Usage

Element Description
Percentage Large, centered display (e.g., 79%) in Cyan
"DISK USAGE" Label below the percentage
Progress Bar Color gradient from Blue to Cyan to Orange. Contains a red threshold marker
โš  Limit: 90% Configurable threshold โ€” if usage exceeds this value, Disk Guard stops packing
Details Free: 42.8 Gi โ”‚ Total: 60.1 Gi

2.4.2 Cache

Element Description
๐Ÿ“ฆ Cache: X.X MB Displays the size of the temporary cache (temp directory)
๐Ÿ—‘ Clear Cache Button to delete all temporary files. Red text, grayed out when cache is empty

2.4.3 RAM Mode

Below a purple divider line is the RAM Mode indicator:

Element Description
๐Ÿง  RAM MODE Header in Magenta
Status "Active" (if tmpfs available) / "Disabled" / "Not Available"
Progress Bar Purple color gradient shows RAM utilization
Details Free: 7.5 Gi โ”‚ Total: 15.5 Gi
Max File Size Maximum file size that can be processed in RAM (e.g., Max File Size: 5.2 GB)

RAM Mode: When enabled, upload tasks are processed in RAM (tmpfs under /dev/shm) instead of on the hard drive. This speeds up packing and PAR2 operations significantly but requires sufficient free memory.

2.4.4 Speedtest

Element Description
โšก Speedtest Button to start a speed test with the configured Usenet provider

2.5 Title Bar (Custom)

Zenith uses its own frameless window title bar at the top edge:

Element Description
Title Zenith Uploader vX.X in muted blue-gray
โ€” (Minimize) Minimize window
โ–ก (Maximize) Maximize / restore window. Also accessible via double-click on the title bar
โœ• (Close) Close window (shows a warning if tasks are active)
Drag & Move Window can be moved by dragging the title bar

2.6 Status Bar (Bottom)

At the bottom edge of the window is the permanent status bar:

Element Example Description
Queue 3 remaining โ”‚ 2 done Active + waiting upload tasks
Speed 63.2 MB/s Current upload speed
Remaining 2.5 GB Remaining data volume
ETA 00:04:23 Estimated remaining time
โ”‚ Separator Visual separation between Upload/Download
โฌ‡ X โฌ‡ 1 remaining โ”‚ 1 done Download queue status
โฌ‡ Speed โฌ‡ 45.2 MB/s Current download speed

2.7 System Tray Icon

Zenith shows a system tray icon in the taskbar (next to the clock): - Right-click: Context menu with Show/Hide, Pause/Resume, Quit - Left-click: Show/hide window - When the "Minimize to Tray" option is enabled, closing the window only hides it.


2.8 Ad Banner (DEMO only)

In DEMO mode, a rotating ad banner is displayed above the content area (across all tabs): - Rotates every 15 seconds - Displays upgrade offers and partner advertisements - Disappears after license activation


Upload Tab โ€” Upload Queue

The Upload tab is the central hub for managing all upload tasks. Here, files and folders are added, the upload process is controlled, and progress is monitored.

1. Page Overview

The tab is vertically split into the following areas: - Header โ€” Title and description - Control Bar โ€” Button to add files - Drag & Drop Zone โ€” Drop files via mouse - Upload Queue โ€” Interactive table with all tasks - Upload Log โ€” Real-time activity protocol

2. Header

Element Description
Title "Upload Queue" in Cyan
Subtitle "Add and manage files and folders in the upload queue."

3. Control Bar

โž• Add Upload โ–พ (Dropdown Button)

A primary button with a dropdown menu offering two options:

Menu Item Function Description
๐Ÿ“„ Add File(s) Opens system file dialog to select individual files. Multi-selection enabled
๐Ÿ“ Add Folder Opens system folder dialog to select a complete folder

Added files/folders are queued immediately.

4. Drag & Drop Zone

Below the control bar is a dashed drop zone:

๐Ÿ“ฅ Drag and drop files or folders here to upload

Behavior - Normal: Dashed gray border - On Drag Hover: Border changes to Cyan with a slight background glow - After Drop: Files are automatically added to the queue - Supports files and folders simultaneously - Multiple files can be dropped at once

5. Upload Queue (Main Area)

The queue is an interactive table housed inside a dark card with rounded corners.

5.1 Queue Header

Element Description
๐Ÿ“‹ Upload Queue Title on the left
Remaining: X GB Remaining data volume on the right
ETA: HH:MM:SS Estimated remaining time
Speed Indicator Current upload speed displayed as an animated value

5.2 Table Columns

Column Description
โœ“ (Checkbox) Selection checkbox per task. Header checkbox toggles all
Name Name of the file/folder
Size File size (e.g., 656.9 MB)
Status Current processing status
Progress Neon progress bar (0โ€“100%) with gradient
Speed Current speed (e.g., 63.2 MB/s)
Actions Action buttons per row

5.3 Status Values

Status Meaning
Pending Waiting for processing
Packing Being compressed/split with 7-Zip
Generating PAR2 PAR2 recovery files are being created
Uploading Being uploaded to the Usenet server
Paused Paused by the user
Completed Successfully finished
Failed Error occurred (details in the log)

5.4 Action Buttons (Per Row)

Each row features three small buttons on the right:

Button Symbol Function Glow Color
Pause โธ Pause task / Unpause (Toggle) Orange when paused
Play โ–ถ Start single task (Single-Task Mode) Green when active
Remove โœ• Remove task from queue Red on hover

Glow Logic - Active Task (Packing/Uploading): Play button glows green - Paused Task: Pause button glows orange - Completed/Failed Task: No glow, buttons remain neutral - Pending: All buttons neutral (gray)

5.5 Neon Progress Bar

The progress bar is a custom widget (NeonProgressBar) featuring: - Color gradient from Dark Blue to Cyan to Bright Blue - Glow effect at the leading edge of progress - Percentage displayed as overlay text

6. Global Control Buttons (Below Table)

Button Color Function
โ–ถ Start All Green Starts the entire upload queue. First state
โธ Pause All Orange Pauses all running uploads (Graceful Pause)
โ–ถ Resume All Green Resumes paused queue (after being paused)
๐Ÿ“‚ NZB Folder Gray Opens the directory containing generated NZB files in file manager
๐Ÿ“‚ Mapping Folder Gray Opens the directory containing mapping/export files in file manager
โœ“ Hide Completed Cyan Removes all completed tasks from the display
๐Ÿ—‘ Delete Selected Red Deletes all tasks marked via checkbox

Graceful Pause: When pausing, the current processing step (e.g., packing or uploading) is completed before the task halts. Active NNTP connections are not abruptly severed.

Automated Removal

If "Automatically remove completed uploads" is enabled in settings: - The "โœ“ Hide Completed" button is grayed out and disabled. - Tooltip displays: "Automated removal is enabled". - Completed tasks are automatically removed from the table after 5 seconds.

7. Upload Log

At the bottom edge of the tab is a real-time protocol log inside its own card:

Appearance - Background: Dark terminal design with monospace font - Auto-Scroll: Automatically jumps to the newest entry

Color Coding

Color Meaning Example
Green Success โœ… Task #3 completed: rudirudi5
Red Error/Warning โŒ Task #5 failed: rudirudi5 โ€” Error
Gray Info/Normal ๐Ÿ“Ž Added to queue: rudirudi5 (656.9 MB)

Log Entry Prefixes - ๐Ÿ“Ž File added to queue - ๐Ÿ“ฆ Task is packing (7-Zip) - ๐Ÿ›ก PAR2 creation running - โฌ† Upload in progress - โœ… Task completed - โŒ Task failed - โš  Warning (e.g., no selection) - โ–ถ Queue started/resumed - โธ Queue paused - ๐Ÿ—‘ Task removed - โœ“ Completed entries removed

8. Pipeline Processing

The background upload engine works in a pipelined mode:

While Task A is uploading, Task B can already begin packing.

9. Single-Task Mode

By clicking the โ–ถ button on an individual task or via the "โ–ถ Start Single" button in the dashboard, an isolated task can be launched:


Download Tab โ€” Usenet Downloader

The Download tab enables downloading files from Usenet via NZB files. It supports multi-connection downloads, automatic password detection, PAR2 repair, 7-Zip extraction, and NZBLNK protocol handling.

1. Page Overview

The tab is vertically split into the following sections: - Header โ€” Title and description - NZB Import Card โ€” NZB file/URL entry, password, queue button - Download Queue โ€” Table with all download tasks - Download Log โ€” Real-time activity log

2. Header

Element Description
Title "Usenet Downloader" in Cyan
Subtitle "Import NZB files and download directly from Usenet."

3. NZB Import Card

A rounded card housing the import widget to add new downloads.

3.1 Drag & Drop Zone

๐Ÿ“Ž Drag & Drop NZB file here

3.2 NZB Input Field

Element Description
Input Field Paste path to NZB file or NZB URL
Placeholder Insert /path/to/file.nzb or NZB URL...
๐Ÿ“‚ Choose NZB Button to open file dialog (Filter: *.nzb)

Supported Inputs - Local File: /home/user/downloads/example.nzb - URL: https://example.com/releases/example.nzb โ€” downloaded automatically - Clipboard: NZB URLs and NZBLNK links are auto-detected from the clipboard

3.3 Password Field

Element Description
Password: Label on the left
Input Field Password for encrypted archives
Placeholder Blank = auto-detect from NZB name...

Automatic Password Detection

The system automatically extracts passwords from the NZB filename using common formats: - filename {{password}}.nzb - filename [password].nzb - filename - password.nzb

Upon detection, the password field is auto-populated and logged: ๐Ÿ”‘ Password detected: p*****d

3.4 Action Button

โž• Add to Queue: Adds the NZB file to the download queue. Only becomes active when a valid NZB file/URL is provided.

Note: This button only queues the task; it does not start the download automatically. Execution is handled via the separate Start button.

4. Download Queue

4.1 Queue Header

Element Description
๐Ÿ“‹ Download Queue Title on the left
Speed Display Current download speed (green)

4.2 Table

Identical column structure to the Upload Queue:

Column Description
โœ“ (Checkbox) Selection checkbox per task
Name Name of the NZB / content
Size Download size (estimated from NZB segments)
Status Current status
Progress Neon progress bar
Speed Current speed
Actions โธ Pause / โ–ถ Play / โœ• Remove

4.3 Status Values

Status Meaning
Pending Waiting in queue
Downloading Articles are being downloaded
Repairing PAR2 repair in progress
Extracting 7-Zip unpacking the archives
Completed Download and extraction successful
Paused Paused by the user
Failed Error occurred
Mirror: Uploading Mirror Mode: Downloaded file is being re-uploaded

4.4 Right-Click Context Menu

Right-clicking a queue entry reveals a context menu: - ๐Ÿ”‘ Set/Change Password: Opens a dialog to enter or modify the password for this download.

5. Control Buttons

Button Color Function
โ–ถ Start Downloads Green Starts the entire download queue
โธ Pause All Orange Pauses all downloads
โ–ถ Resume Downloads Green Resumes paused downloads
๐Ÿ“‚ Open Download Folder Gray Opens the download destination directory in the file manager
โœ“ Hide Completed Cyan Removes completed downloads from the view
๐Ÿ—‘ Remove Selected Red Deletes all tasks marked via checkbox

6. Download Log

Real-time log tracking identical to the Upload tab: - Background: Terminal design with monospace font - Color Coding: Green (Success), Red (Error), Gray (Info)

Typical Log Entries - ๐Ÿ“Ž NZB added to queue - ๐Ÿ“ฅ Downloading NZB from URL - ๐Ÿ“‹ NZB link detected from clipboard - ๐Ÿ”‘ Password detected or set - ๐Ÿ” Searching Binsearch/NZBIndex/Newznab - โฌ‡ Download in progress (progress tracking) - ๐Ÿ›ก PAR2 repair - ๐Ÿ“ฆ Extraction - โœ… Download completed - โŒ Download failed - โธ Download(s) paused - โ–ถ Download(s) resumed/started

7. Special Features

7.1 Clipboard Monitoring

Zenith automatically monitors the clipboard for: - NZB URLs: Links containing .nzb are automatically loaded into the input field. - NZBLNK Links: nzblnk: protocol links are processed automatically.

This feature can be turned off in settings (dl_clipboard_monitor).

7.2 NZBLNK Protocol Support

Zenith registers as a handler for the nzblnk: URI scheme. Clicking an NZBLNK link in a browser will: 1. Open Zenith (or bring the existing window to the foreground). 2. Process the link automatically. 3. Search for the NZB across the following sources (in order): - Newznab indexers (if configured) - Binsearch.info (free, no API key required) - NZBIndex.com (free, RSS feed) 4. If found, the NZB is downloaded and added to the queue. 5. The password embedded in the NZBLNK is automatically applied.

7.3 Automatic Password Detection

The system extracts passwords from: - NZB Filename: Common patterns like {{password}}, [password] - NZBLNK Data: Password field inside the NZBLNK URI - Manual: Right-click โ†’ Set Password

7.4 Auto-Extraction

Following download completion, the system automatically runs: 1. PAR2 Repair: Repairs missing/corrupt segments if needed (configurable). 2. CRC Check: Verifies download integrity (configurable). 3. 7-Zip Extraction: Unpacks archives (configurable). 4. Archive Cleanup: Deletes RAR/7z files post-extraction (configurable). 5. Junk Cleanup: Deletes unneeded files like NFO, TXT, etc. (configurable).

7.5 Mirror Mode

Mirror Mode automates re-uploading after downloading:

Download โ†’ Extraction โ†’ Automated Upload via identical configuration

Status shifts to Mirror: Uploading. Controlled via the Remote Input tab or API.

7.6 Queue Persistence

The download queue saves automatically and restores upon application restart. Pending tasks survive app closures.

7.7 ConnectionBudget

Downloads and uploads split NNTP connections dynamically via the ConnectionBudget system: - If an upload runs, connections available for downloads scale back. - The Provider Usage Mode (Upload / Download / Both) dictates allocation. - If provider usage is locked to "Download", only download connections deploy.

8. Configurable Settings

The following choices can be customized under Settings โ†’ Download:

Setting Default Description
Download Folder ~/Downloads Target folder for finished downloads
Temp Folder (blank) Temporary folder for active downloads (optional)
Auto-Extraction โœ… On Automatically unpack archives post-download
PAR2 Repair โœ… On PAR2 recovery for missing segments
CRC Check โœ… On File integrity checks
Archive Cleanup โœ… On Delete RAR/7z files post-extraction
NZB Cleanup โŒ Off Delete NZB file post-download
Junk Cleanup โŒ Off Delete NFO/TXT files
Max Connections 0 (Auto) Maximum parallel connections
Speed Limit 0 (None) Download speed limit caps
Retry Count 3 Number of failed segment retry attempts
Clipboard Monitor โœ… On Auto-detect NZB URLs from clipboard
Auto-Removal โŒ Off Auto-clear finished downloads from the queue table

Cloud Backup โ€” Encrypted Usenet Backup

The Cloud Backup tab provides tools to encrypt folders using AES-256, upload them to Usenet, and recover them later. The resulting NZB file acts as the decryption and restoration "key" โ€” viable as long as the Usenet retention window remains open.

1. Page Overview

The tab layout features five distinct card modules: - ๐Ÿ“ Backup Sources โ€” Manage folders - ๐Ÿ” Encryption & Settings โ€” Passwords and configurations - ๐Ÿ“‹ Backup History โ€” Archive log tracking - ๐Ÿ“ฅ Restoration โ€” NZB-driven data recovery - ๐Ÿ“‹ Backup Log โ€” Real-time logging console

2. Backup Sources (Card 1)

2.1 Folder List

Each folder entry features a dedicated row containing:

Element Description
โœ“ Checkbox Choose folder for inclusion in next backup batch
Folder Name Bold display name
Path Complete file path (small, grayed font)
Schedule Dropdown Manual / Every 24h / Weekly / Monthly
Status โ— Ready (green) / โ— Backed Up (green) / โš  X Folders (orange, for modified data)
โš™ Settings Collapsible per-folder configuration menu
โœ• Remove Exclude folder from the backup roster

2.2 Per-Folder Settings (Collapsible)

Setting Options Default Description
Backup Mode Individual Folders / Consolidated Archive Individual Folders "Individual" maps one archive per subfolder; "Consolidated" bundles everything together
Backup Type Full / Incremental Full Backup Incremental flags only altered files
Compression None / Normal / Ultra Normal 7-Zip compression tiers (0 / 5 / 9)
Volume Size 10โ€“2000 MB 100 MB Split archive volumes for massive backups

2.3 Change Detection

Zenith monitors backup paths every 5 minutes for modifications: - Tracks new, altered, or wiped files. - Status transitions to orange: โš  3 Folders with localized tooltip data. - Successful backups clear the state back to green.

2.4 Buttons

3. Encryption & Settings (Card 2)

3.1 Left Side โ€” Password

Element Description
Encryption Password Master key for AES-256 encryption (Required field)
๐Ÿ‘ Eye Button Reveal/hide password string
๐Ÿ”‘ Key Button Generate complex, high-entropy password
Confirm Password Re-enter string for safety validation
โ˜ Remember Password Store key within the encrypted configuration profile

โš  Critical: Lose the password, lose the backup. There is no password recovery or backdoor mechanism.

3.2 Right Side โ€” Global Settings

Element Default Description
โ˜ Stealth Upload (No Newsgroup) โœ… On Strip newsgroup headers for private, unindexed uploads
โ˜ Retention Warning โœ… On Warn when archives edge near provider retention limits
Retention (Days) 5000 Retention scope of provider (e.g., Eweka: 5700)
NZB Save Location ~/.zenith-uploader/backup_nzb/ Output folder for backup index NZB files

4. Backup History (Card 3)

A log tracking historical archives:

Column Description
Name Target folder name
Size Size of the encrypted archive
Date Archive completion timestamp
Status Success / Failed
Progress Runtime progress bar tracking
Actions Action tools

5. Restoration (Card 4)

Recovering data requires three inputs:

Field Description
NZB File Select the metadata archive generated at backup time (Browse button)
Password Input the associated AES-256 decryption key
Destination Target directory for unpacked data extraction (Browse button)

Restoration Workflow: Download (Encrypted Archives via Provider) โ†’ PAR2 Repair (20% Redundancy Checks) โ†’ Decryption (7-Zip Unpacking) โ†’ Restored Files (Target Output Verified)

Button โ†’ ๐Ÿ“ฅ Restore: Commences the retrieval pipeline.

6. Backup Log (Card 5)

Matches the logger implementation found in the main upload/download modules: - Terminal monospace aesthetics. - Color coding: Green (Success), Red (Failure), Gray (Info).

Log Prefixes - ๐Ÿ“ Backup path registered - ๐Ÿ” Encryption active - โœ… Crypto / Upload / Download task finished - ๐Ÿ›ก PAR2 generation processing (20% redundancy) - ๐Ÿ“ค Uploading archive chunks - ๐Ÿ“ฅ Pulling archive chunks (Restoration) - โฐ Operational scheduling updated - โš  Retention threshold reached / Critical anomaly triggered - ๐Ÿ—‘ Backup source purged

7. Automation Features

7.1 Scheduled Backups

Schedule Interval Description
Manual โ€” Executes exclusively via "Start Backup Now" button
Every 24h 24 Hours Once-daily automated backup
Weekly 7 Days System runs once per week
Monthly 30 Days System runs once per month

7.2 Retention Warning

7.3 Change Detection

8. Backup Process (Technical Specification)

8.1 Encryption Parameters

8.2 Backup Modes

Mode Description
Individual Folders Processes each first-tier directory branch into its own separate archive payload
Consolidated Archive Treats the target folder tree root as a single grouped container package

Statistics Tab โ€” Upload & Download Statistics

The Statistics tab displays an overview of all upload and download histories, rendering data via interactive charts, metrics cards, and historical lists. Data is polled directly from a local SQLite engine every 5 seconds.

1. Page Overview

2. Header & Timeframe Filters

Element Description
๐Ÿ“ˆ Statistics View header title in Cyan
Timeframe: Control label + dropdown selector on the right
Option Range Scope Chart Grouping Granularity
7 Days 7 Days Daily Bar Nodes (DD.MM)
30 Days 30 Days Daily Bar Nodes (DD.MM)
Yearly 365 Days Monthly Bar Nodes (MM)
Total Infinite Yearly Bar Nodes (YYYY)

Changing options filters values across metrics cards, charts, and histories.

3. Upload Metrics (โฌ† UPLOADS)

Six cards span horizontally, displaying icons, titles, and data values:

Icon Title Color Description
๐Ÿ“ฆ Total Volume Cyan Total data volume uploaded in timeframe (e.g., 145.3 GB)
๐Ÿ“„ Files Green Total successful file/folder uploads count
โŒ Failed Red Total failed upload tasks
๐Ÿ“… Today Yellow Data payloads processed during current date
โฑ Upload Time Cyan Cumulative active upload duration (e.g., 2h 45m)
โšก Avg Speed Green Average upload velocity throughput (e.g., 63.2 MB/s)

4. Upload Volume Chart

A custom widget (BarChartWidget) drawn directly via QPainter: - Bars: Rounded corners running a Dark Blue to Cyan gradient fill. - Y-Axis: Dynamic scaling algorithm bounded by dashed mesh lines. - X-Axis: Timestamps scale according to active filters (DD.MM, MM, or YYYY). - Metrics: Floating values display centered above individual bars. - Empty States: Renders "No data available" fallbacks if query rows return null.

5. Download Metrics (โฌ‡ DOWNLOADS)

Matches the upload metrics card structure, styled using a purple theme:

Icon Title Color Description
๐Ÿ“ฆ Total Volume Purple Cumulative downloaded data footprint volume
๐Ÿ“„ Files Green Successful incoming extraction tasks completed
โŒ Failed Red Terminated or corrupted download attempts
๐Ÿ“… Today Yellow Data payloads pulled during current date
โฑ Download Time Purple Cumulative network download duration
โšก Avg Speed Green System average download throughput speed

6. Download Volume Chart

Identical to the upload chart design, but rendered with a purple color gradient.

7. Recent Uploads (History List)

Renders the 10 most recent upload rows inside a scrollable menu list:

Element Description
Name Original source file or directory string name
Size Native payload byte capacity metrics (e.g., 656.9 MB)
Status โœ… Success / โŒ Failed / โณ Pending
Date Event processing timestamp (DD.MM.YYYY HH:MM)

Status Colors: โœ… Success: Green, โŒ Failed: Red, โณ Pending: Yellow

Empty State Text: "No upload history available."

8. Recent Downloads (History List)

Identical layout matching the upload list structure, detailing recent downloads.

Empty State Text: "No download history available."

9. Reset Statistics

A red warning button is located at the bottom edge:

Button โ†’ ๐Ÿ—‘ Reset Statistics: Clears database rows tracking structural metrics.

Before clearing records, the system prompts the user with an alert dialog:

Are you sure you want to reset all statistics? This action permanently clears all upload and download statistics, as well as the job history logs. This action cannot be undone.

10. Data Source Specifications

Data maps from internal tables stored at ~/.zenith-uploader/zenith.db:

Table: stats (Daily Aggregated Logs)

Column Name Description
date Primary Key string formatted as YYYY-MM-DD
bytes_uploaded Total outbound payload bytes processed
files_uploaded Integers tracking completed upload instances
files_failed Integers tracking broken upload operations
bytes_downloaded Total inbound payload bytes processed
files_downloaded Integers tracking completed download jobs
downloads_failed Integers tracking broken download operations
upload_seconds Total time elapsed processing upload streams
download_seconds Total time elapsed processing download streams
timed_bytes_uploaded Active outbound network byte transfer volume counts
timed_bytes_downloaded Active inbound network byte transfer volume counts

VPN Guard โ€” VPN Protection for Uploads

The VPN Guard tab manages OpenVPN and WireGuard connection profiles, offering server configuration slots and custom location mapping. A built-in Kill-Switch automatically halts active queues if network tunnels drop.

1. Page Overview

2. Header

Element Description
Title "VPN Guard" in Cyan
Subtitle "Secure your uploads using VPN tunneling and integrated Kill-Switch systems."

3. Root Access Warning (Linux Environments)

Linux host runtimes poll environment spaces to ensure root permissions or active pkexec backends exist. Missing hooks trigger a warning banner:

โš  Root privileges unavailable. VPN subsystems require root permissions (pkexec or sudo). Please install policykit-1 dependencies: sudo apt install policykit-1

This warning is automatically hidden on Windows platforms.

4. Status Card (Main Area)

4.1 Status Display

State Icon Display Text Color Detail String
Inactive ๐Ÿ›ก INACTIVE Gray "No active VPN tunnel detected"
Connecting ๐Ÿ›ก CONNECTING... Yellow "Establishing connection to OPENVPN/WIREGUARD..."
Connected ๐Ÿ›ก CONNECTED Green "OPENVPN ยท IP: 185.xxx.xxx.xxx"
Error ๐Ÿ›ก ERROR Red Localized diagnostic anomaly string details

4.2 Connect/Disconnect Buttons

Button State Context Color Function
๐Ÿ”Œ Connect Inactive Blue-Cyan Gradient Fires connection pipeline using active target profile
โณ Connecting... Processing Muted Gray Button locks disabled while connection handshake works
โœ“ Connected Active Tunnel Muted Gray Button locks disabled while tunnel state remains stable
โน Disconnect Active Tunnel Crimson Red Terminates active background processes and clears tunnels

5. Saved Profiles

5.1 Profile Cards

Empty State View: "No profiles saved. Add a new VPN profile configuration to begin."

5.2 Add Profile Dialog (๏ผ‹ Button)

Input Label Format / Behavior
Profile Name Text string field (e.g., "Mullvad Amsterdam") โ€” Required
Provider Selector Dropdown: Mullvad, ProtonVPN, AirVPN, NordVPN, Surfshark, PIA, Windscribe, IVPN, Privado, Custom
Protocol Selector Toggle: OpenVPN / WireGuard
Country Selector 21 countries with flag emoji metadata
Config File Source File path to .ovpn or .conf (Browse button) โ€” Required
Username Visible only under OpenVPN; optional
Password Visible only under OpenVPN; optional

Supported Countries: ๐Ÿ‡ณ๐Ÿ‡ฑ Netherlands, ๐Ÿ‡ฉ๐Ÿ‡ช Germany, ๐Ÿ‡บ๐Ÿ‡ธ USA, ๐Ÿ‡ฌ๐Ÿ‡ง UK, ๐Ÿ‡จ๐Ÿ‡ญ Switzerland, ๐Ÿ‡ธ๐Ÿ‡ช Sweden, ๐Ÿ‡ซ๐Ÿ‡ท France, ๐Ÿ‡จ๐Ÿ‡ฆ Canada, ๐Ÿ‡ฏ๐Ÿ‡ต Japan, ๐Ÿ‡ฆ๐Ÿ‡บ Australia, ๐Ÿ‡ท๐Ÿ‡ด Romania, ๐Ÿ‡ธ๐Ÿ‡ฌ Singapore, ๐Ÿ‡ช๐Ÿ‡ธ Spain, ๐Ÿ‡ฎ๐Ÿ‡น Italy, ๐Ÿ‡ณ๐Ÿ‡ด Norway, ๐Ÿ‡ซ๐Ÿ‡ฎ Finland, ๐Ÿ‡ฆ๐Ÿ‡น Austria, ๐Ÿ‡ง๐Ÿ‡ช Belgium, ๐Ÿ‡ต๐Ÿ‡ฑ Poland, ๐Ÿ‡จ๐Ÿ‡ฟ Czech Republic, ๐ŸŒ Other.

6. Settings

Kill-Switch Parameters

Toggle Switch Default Logic
โ˜‘ Enable Kill-Switch โœ… On "Halt active upload processes instantly if VPN paths drop"

If the tunnel tears unexpectedly, the master AppController catches the exception via the vpn_status_changed listener loop. It immediately pauses all active uploads, switches the display to ERROR, and logs the event. Queues must be restarted manually after establishing a safe connection path.

7. VPN Log Console

Monospace console interface with real-time log updates.

8. VPN Engine Architecture

Protocol Binary Config File Schema
OpenVPN openvpn Native .ovpn configurations
WireGuard wg-quick Native *.conf definitions

Part 7a: Remote Inputs โ€” RSS Feeds


Remote Sources โ€” RSS Feeds

The RSS Feed sub-tab automates polling remote indexer endpoints, scraping for target NZB releases matching defined parameters, and routing payloads directly into download task streams.

1. Structural Overview

The module uses a vertical adjustable layout: - Top Half: Interactive grid displaying all saved RSS configurations. - Bottom Half: Granular editor form fields + feed preview nodes + background logging.

2. Feed Grid Matrix (Top Section)

2.1 Table Columns

Column Description
Active Flag Checkbox โ€” Toggle automated parsing loops on/off
Identifier Unique display tag name given to the feed source
Target URL Endpoint Complete string address mapping, inclusive of API parameters
โŠ˜ Purge Row Clear selection row from memory

Button โ†’ ๏ผ‹ Add New Feed: Injects a blank configuration row entry into the data matrix.

3. Detail Configuration Form (Bottom Section)

Selecting any row entry maps its parameters directly into the granular input form fields.

3.1 Field Mappings

Field Placeholder Description
Feed Identifier Name My RSS Feed User display string label tag
Feed URL Endpoint https://endpoint.com/rss?... Target address string, including authorization parameters
Destination Path ~/Downloads/RSS/ Dedicated target save location
Polling Interval 30 min Execution loop timing interval (5โ€“1440 minutes)
Batch Limit Caps 25 Maximum release downloads per single run pass (1โ€“500)
Regex Filter String (?=.1080p)(?=.2026) Case-insensitive regex tracking token
Minimum File Threshold No Minimum Floor constraint size limit in megabytes (0 disables)
Maximum File Threshold No Maximum Ceiling constraint size limit in megabytes (0 disables)
โ˜ Auto-Queue Injection Unchecked Push matches straight into download tasks without manual approval

3.2 Regular Expression Filter Blueprints

Regex Example Filtering Effect
single.charts Matches titles containing the string literal
(?=.*1080p)(?=.*german) Match requires both 1080p AND german tokens
1080p\|720p Boolean matching allows either 1080p OR 720p
^The\\. Matches strings starting with the exact prefix "The."
\\.2026\\. Forces selection to require the specific year notation .2026.

The dot . acts as a wildcard match character. Escape via \\. to target literal dots. Use .* for flexible character fills. Checks are case-insensitive.

3.3 Functional Actions

Button Color Function
๐Ÿ’พ Save Feed Profile Orange Gradient Commits parameters to local configuration
๐Ÿ”„ Force Immediate Poll Orange Hover Glow Bypasses intervals to execute an on-demand feed scrape

4. Results Preview Grid

Manual polling actions return target node arrays for validation:

Column Description
Selector Checked rows mark records for download processing
Release Title Structural name parsed from raw endpoint nodes
Calculated Size File payload capacity estimates

Preview Controls - โ˜‘ Select All: Checks all visible rows. - โฌ‡ Download Checked: Pushes selected rows into download queues. - ๐Ÿ—‘ Dismiss Records: Removes selected records from preview tables.

Dismissed or downloaded items register their unique GUID hashes into local storage to prevent duplicates on subsequent polling iterations.

5. Background Engine Automation

When automated parsing loops run: 1. Timer Fires โ†’ Scrape API Source โ†’ Filter Out Known GUIDs โ†’ Run Regex & Size Verifications 2. If Auto-Queue Disabled: Append to Display Matrix 3. If Auto-Queue Enabled: Inject Tasks Directly


Part 7b: Remote Inputs โ€” Newznab Indexers


Remote Sources โ€” Newznab Indexer

The Newznab integration layer connects directly to compatible indexing endpoints via native API query routing, running custom parameter filtering protocols.

1. Overview

Matches the split layout structure used by the RSS component: - Top Half: Grid displaying active indexing engines. - Bottom Half: Profile editor fields + communication log.

2. Configuration Grid (Top Section)

Column Description
Active State Toggle validation loops for the selected provider
Engine Tag Display identifier (e.g., "NZBGeek")
Base API Address Host address endpoint for API connectivity
Target Save Path File destination folder for this endpoint profile
โŠ˜ Purge Profile Deletes provider entry from memory

Button โ†’ ๏ผ‹ Add Indexer: Appends a blank indexer entry row.

3. Detail Configuration (Bottom Section)

Field Placeholder Description
Indexer Name NZBGeek Unique tag mapping reference name
Base URL https://api.nzbgeek.info Core endpoint address routing node
API Key Token (Masked) Unique cryptographic access credential
Category Targets 2000,5000,7000 Comma-delimited Newznab category IDs
Download Save Path ~/Downloads/Newznab/ Save location override path
Polling Interval 30 min Background scheduling (5โ€“1440 minutes)
Batch Cap 100 Search result limits (10โ€“500 rows)
Title Filtering Expression .1080p.BluRay.* Regex targeting release parameters
Minimum File Bounds No Minimum Floor constraint in megabytes
Maximum File Bounds No Maximum Ceiling constraint in megabytes
โ˜ Automated Pulls Unchecked Auto-download when criteria matches
โ˜ Auto-Start Engines Checked Instantly launch download workers upon queue insertion

Newznab Category Reference

Category ID Target Category ID Target
2000 Video / Movies 1000 Emulators / Console
5000 Television / TV Series 4000 Computer / PC Software
7000 Digital Books / E-Books 6000 Adult Content
3000 Audio / Music

Tip: Separate multiple IDs with commas. Leaving the field blank polls all categories.

4. Functional Controls

Button Color Function
๐Ÿ’พ Commit Configuration Blue-Cyan Gradient Commits to local config database
๐Ÿ”— Validate Connection Cyan Queries /api?t=caps to verify authorization
๐Ÿ”„ Force Run Scrape Cyan Bypasses scheduling for immediate crawl

5. Background API Architecture

Newznab Endpoint Mapping: - Capability Diagnostics: GET /api?t=caps&apikey=TOKEN - Keyword Queries: GET /api?t=search&q=QUERY&apikey=TOKEN&cat=CATS&limit=LIMIT - NZB Fetching: GET /api?t=get&id=GUID&apikey=TOKEN

Processing Flow: 1. Background timer triggers execution tasks. 2. Issues HTTP GET requests with parsed categories and limits. 3. Iterates responses against active title regex matrices. 4. Drops entries failing size threshold checks. 5. Skips previously parsed items via stored GUID records. 6. If "Automated Pulls" enabled, fetches NZB and appends to active lists. 7. If "Auto-Start Engines" enabled, execution begins immediately.

6. Validated Indexer Networks

Supported systems include all standard Newznab-compliant providers: NZBGeek, DrunkenSlug, NZBFinder, NZBPlanet, DOGnzb, and Tabula Rasa.


Part 7c: Remote Inputs โ€” FTP / SFTP


Remote Sources โ€” FTP / SFTP

The FTP/SFTP module provides an integrated remote terminal file browser, featuring path tree navigation and background downloads to pull assets directly into localized workspace directories.

1. Structural Overview

2. Connection Settings

2.1 Form Fields

Field Default Description
Target Host Address โ€” Remote domain string or IP endpoint
Connection Port 22 Channel selection (22 for SFTP, 21 for FTP)
User Identity โ€” Authentication credential string
Security Key/Password (Masked) Authentication security string
โ˜‘ Enforce SFTP (SSH) Checked Force SSH encapsulation over cleartext FTP
Remote Root Path / Target directory initialized post-handshake

2.2 System Actions

Button Color Function
๐Ÿ”— Establish Connection Green Connects to remote endpoint and initializes file listing
๐Ÿ”Œ Drop Connection Red Kills active background sessions
๐Ÿงช Diagnostic Test Cyan Verifies reachability and credentials without locking session

3. Remote Directory Tree Browser

3.1 Navigation Ribbon

3.2 Directory Content Table

Column Description
File Type Icon ๐Ÿ“ for directories, ๐Ÿ“„ for files
Name Filename parsed from remote listings
Size Byte sizes from filesystem records
Modified Last write timestamp from host metadata

3.3 Interactions

3.4 Library Implementations

4. Download Engine

Element Description
Local Workspace Box Output destination path selector
๐Ÿ“ Browse Button System folder picker for destinations
โฌ‡ Pull Checked Files Downloads all files marked in browser

Part 8a: Auto-Post โ€” Forum Poster


Auto-Post โ€” Forum Poster

The Forum Poster sub-tab manages automated release indexing notifications, rendering data via template formatting engines, and pushing topics directly into targeted forum boards.

1. Overview

The UI splits into four functional layout segments: - Header Ribbon โ€” Title + "๏ผ‹ Add New Profile" trigger - Profile Selection Grid โ€” Active destination board configurations - Posting Hold Queue โ€” Manual approval workspace - Reference Help Card โ€” Contextual documentation and syntax tips

2. Destination Profile Cards

2.1 Interface Components

Component Description
โ— / โ—‹ Active Toggle Modulates automation loops (Green โ— active / Gray โ—‹ standby)
Forum Software Icon Board backend type (e.g., ๐Ÿ”ต vBulletin, ๐ŸŸฃ XenForo)
Profile Label Bold identification tag (e.g., "MovieBoard")
Path Info Target board engine type + shortened URL
Automation Badges ๐Ÿค– Auto (Green), ๐Ÿ“‹ Manual (Yellow), โธ Disabled (Gray)
Last Activity Date of last verified posting submission
๐Ÿ—‘ Purge Button Triggers profile deletion verification

2.2 Board Software Engine Colors

Engine Icon Border Accent
vBulletin ๐Ÿ”ต Royal Blue
XenForo ๐ŸŸฃ Purple
MyBB ๐ŸŸ  Orange
WoltLab Suite ๐Ÿ”ด Crimson Red
IP.Board ๐ŸŸข Emerald Green

3. Profile Management Dialog

3.1 Form Fields

Field Description
Board Profile Label Reference tag name โ€” Required
Engine Platform Type Dropdown: WoltLab Suite, XenForo, vBulletin, MyBB, IP.Board
Board Target URL Target URL routing node โ€” Required
Authentication Identifier Login name parameter
Authentication Key Security key (masked)
Layout Template Dropdown selecting parsing formats from Template Editor
Thread Title Blueprint {filename} โ€” Title formatting with custom tokens
Posting Automation Mode Automated or Manual Hold Queue
Anti-Spam Throttle 30 sec hardcoded delay (0โ€“600 seconds)

3.2 Thread Title Tokens

Token Effect
{filename} Resolves to complete source file name
{filesize} Resolves to formatted data size (e.g., 656.9 MB)
{date} Inserts execution date timestamps

3.3 Modal Actions

4. Operational Modes

Mode Badge Behavior
Automated ๐Ÿค– Pushes topics directly upon upload completion
Manual ๐Ÿ“‹ Routes to staging queue for review
Disabled โธ Halts all communication pipelines

5. Manual Staging Hold Queue

Jobs under Manual mode wait inside this workspace: - ๐Ÿ“„ Content Title: Source release filename. - โ†’ Destination: Target profile and engine version. - โ–ถ Post Release: Instantly processes topic submission. - ๐Ÿ—‘ Drop Task: Purges staged notification.

Empty State: "No notifications staged inside the manual validation hold queue."

6. Engine Compatibility

Platform Status URL Routing Syntax
vBulletin 3.x โœ… Stable Requires forumdisplay.php?f=ID
XenForo ๐Ÿ”œ Development Future release
WoltLab Suite ๐Ÿ”œ Development Future release
MyBB ๐Ÿ”œ Development Future release
IP.Board ๐Ÿ”œ Development Future release

Part 8b: Auto-Post โ€” Templates


Auto-Post โ€” Template Manager

The Templates workspace handles BBCode and HTML string formatting, letting users map dynamic tokens into target forum post payloads.

1. Overview

The interface uses a horizontal split layout: - Top Ribbon: Chip-based listing of all available token tags. - Left Pane: Listing of all saved layout definitions. - Right Canvas: Monospace text editor with format control toolbar.

2. Token Reference Chips

Token Description
{title} Source filename minus file extension
{filename} Full raw source file name
{password} Unique plaintext password for archive security
{header} Unique Usenet subject line identifier
{filesize} Formatted data footprint (e.g., 656.9 MB)
{nzb_name} Generated NZB metadata filename
{date} Execution date timestamp
{newsgroup} Target binaries group assignment
{description} User descriptive notes via prompt
{nfo_content} Raw text extracted from .nfo file pairs

Tokens display inside green chips with hover tooltips detailing evaluation mechanics.

3. Left Navigation Pane

Limits: Minimum 1 active template. Maximum 10 templates (MAX_POSTING_TEMPLATES). Auto-generates a standard template if all records are cleared.

4. Right Editing Canvas & Toolbar

4.1 Components

Component Description
Template Title Input Reference name (e.g., "vBulletin 3")
Format Selection Dropdown: BBCode / HTML
Fast Code Toolbar Buttons to inject formatting tags
Monospace Canvas Text editor with green-on-dark interface

4.2 Toolbar Buttons

11 toolbar buttons for quick insertion of formatting tags:

Button Left Tag Right Tag
B [b] [/b]
I [i] [/i]
U [u] [/u]
Color [color=red] [/color]
Size [size=3] [/size]
Center [center] [/center]
URL [url] [/url]
IMG [img] [/img]
Code [code] [/code]
Hide [hide] [/hide]
Quote [quote] [/quote]

Highlighting text wraps selection inside chosen tags. Clicking without selection inserts at cursor.

4.3 Save Actions

Button โ†’ ๐Ÿ’พ Save Layout Profile: Writes names, formats, and text blocks to global config.

5. Default Boilerplate Layout (vBulletin 3.x)

[center][size=5][color=red][b]{title}[/b][/color][/size][/center]

[center][size=3][color=][b]ยปContent Descriptionยซ[/b][/color][/size]
[size=2][color=white]{description}[/color][/size][/center]

[nfo]{nfo_content}[/nfo]

[hide]
[center][size=3][color=][b]ยปUsenet Release Headerยซ[/b][/color][/size]
[size=2][color=white]{header}[/color][/size][/center]

[center][size=3][color=][b]ยปArchive Security Passwordยซ[/b][/color][/size]
[size=2][color=white]{password}[/color][/size][/center]

[center][nzblnk]nzblnk:?t={title}&h={header}&p={password}[/nzblnk]
[/center][/hide]

6. Rendering Engine Process

  1. Pulls assigned format from active profile definitions.
  2. Regex replacement loop swaps all {placeholder} tags with runtime parameters.
  3. Renders thread title separately using its own formatting rules.
  4. Forwards finalized text to forum poster threads.

Webhooks & Notifications

The Webhooks sub-tab hooks into API interfaces to push real-time status alerts across communication applications when milestones or warnings trip.

1. Overview

2. Supported API Providers

Provider Icon Color Description
Discord ๐Ÿ’ฌ Blurple Blue Standard inbound webhook payload processing
Telegram ๐Ÿ“จ Sky Blue Bot API messaging via Chat ID selectors
E-Mail โœ‰ Muted Silver SMTP mail relay with custom auth keys
ntfy ๐Ÿ”” Clay Orange Push topics via public/private ntfy.sh nodes
Custom Endpoint ๐Ÿ”— Cyan Teal Raw HTTP sending custom JSON maps

3. Webhook Profile Items

Component Description
Provider Icon + Label Platform type + user identifier (e.g., ๐Ÿ’ฌ Discord Uploads)
Context Info Active configurations (e.g., Discord ยท 5 Target Events Selected)
Platform Badge 3-letter code on brand identity backdrop (e.g., DIS in blue)
โ— Activity State Green = live, Gray = deactivated
โœ• Delete Button Opens confirmation dialog

Empty State: "No webhook alert paths mapped. Configure a tracking profile to receive status logs."

4. Configuration Wizard Dialog

4.1 Base Setup

Field Description
Webhook Label Reference tag (e.g., "Discord Uploads") โ€” Required
Target Provider Dropdown: Discord, Telegram, E-Mail, ntfy, Custom

4.2 Platform-Specific Fields

Discord: Target Webhook URL โ€” Required

Telegram: Bot Token (via @BotFather) โ€” Required; Chat ID โ€” Required

E-Mail SMTP: Host Server, Port (587), โ˜‘ TLS, Username, Password, Recipient โ€” Required

ntfy: Server URL (https://ntfy.sh), Topic Channel โ€” Required, Access Token โ€” Optional

Custom HTTP: Destination URL โ€” Required, HTTP Method (POST/PUT/GET), Headers (JSON)

5. Event Triggers

Event Key Label Trigger
upload_done Upload Completed Outbound job completed successfully
upload_failed Upload Failed Outbound pipeline error
download_done Download Completed Inbound asset downloaded and verified
download_failed Download Failed Inbound download error
queue_empty Queues Empty Zero remaining pipeline jobs
vpn_lost VPN Guard Intervention Tunnel dropped, tasks paused
watchdog_new Monitored File Identified New file in watched directories
disk_critical Free Space Anomaly Drive thresholds crossed

All events default to checked on new profiles.

6. Payload Data Switches

Toggle Display Default
filename Filename Label On
filesize Data Footprint Off
duration Runtime Delta Off
status Operational Status On
error_details Exception Analysis Off
timestamp Time Indicator On
speed Network Throughput Off
nzb_name NZB Tracking Name Off

7. Test Pipeline

๐Ÿ”” Dispatch Test Alert: Generates transient test profile, formats mock payloads customized to platform rules, transmits to target, returns confirmation popup.


Part 10a: Settings โ€” Provider


Settings โ€” Provider

The Provider panel houses Usenet network connection profiles, managing news server configurations and balancing outbound upload pipelines alongside inbound file retrievals.

1. Overview

2. Provider Account Matrix

Column Description
Name Account display name (double-click for inline edits)
Host NNTP endpoint domain address (inline editable)
Port Connection port (inline editable)
SSL Enforces SSL/TLS communication (inline editable)
Connections Allocated connection slots (inline editable)
Speed Limit Velocity caps in KB/s. 0 = unlimited
Usage Mode Dropdown: Both / Upload / Download
โŒ Delete Drop selected account record

3. Account Configuration Form

Field Default Description
Account Name โ€” Account tag label โ€” Required
Host โ€” Destination address (e.g., news.provider.com) โ€” Required
Port 563 Target port (1โ€“65535)
Username โ€” Authorization name
Password (Masked) Authorization key
โ˜‘ Enforce SSL Checked Enforces SSL/TLS connections
Connection Limit 10 Simultaneous connections (1โ€“100)
Speed Throttle Unlimited Throttling in KB/s (0 disables)
Connection Routing Both Directs: Both / Upload Only / Download Only

4. Connection Test

๐Ÿ”Œ Verify Server Connection: Automated connectivity diagnostic:

  1. Formulate account mapping โ†’ Query nntplib โ†’ Inject SSL handshake
  2. Open TCP channel โ†’ Measure latency (ms) โ†’ Return welcome headers

Exceptions stop execution and redirect raw feedback to diagnostic boxes.


Part 10b: Settings โ€” Upload


Settings โ€” Upload Settings

The Upload Settings manager handles configuration profiles for outbound compression, metadata recovery, and execution layer optimization.

1. Overview

2. Standard Settings

2.1 General Application Behavior

Setting Default Description
Application Language English Dropdown: German, English, Spanish, French, Italian, Dutch, Russian
๐Ÿ”„ Reload Interface โ€” Restarts GUI to populate updated translations
โ˜‘ Launch at System Boot Unchecked Maps hooks to system startup
โ˜‘ Minimize to System Tray Unchecked Minimize to tray instead of closing
โ˜‘ Launch in Tray Hidden Unchecked Forces boot in hidden tray state
NZB Output Path ~/.zenith-uploader/nzb/ Output folder for finalized NZB listings
Mappings Save Folder ~/.zenith-uploader/mappings/ Output for indexing database maps
Temporary Cache Directory ~/.zenith-uploader/tmp/ Workspace for packing and encoding

2.2 Processing Engine Pipeline

Setting Default Description
Task Processing Mode Sequential Sequential / Pipelined
Upload Execution Sorting FIFO FIFO / First Compressed (Pipelined only)
Parallel Task Threshold 1 Max concurrent workers (1โ€“20; Sequential only)
โ˜‘ Enforce Task Re-Uploads Unchecked Forces raw transfers, skipping duplicate checks
Global Archive Attachments โ€” Appends specified file extensions to every upload

Pipeline Modes: Sequential completes each task before starting the next. Pipelined runs compression on upcoming jobs while uploading active payloads. DiskGuard monitors storage consumption.

2.3 Disk Guard

Setting Default Description
โ˜‘ Enforce Disk Guard Checked Continuous drive storage monitoring
Processing Halt Floor 20 GB Free space requirement (1โ€“500 GB)
Emergency Cut-off 90% Hard capacity limit (50%โ€“99%)
โ˜‘ Active RAM Cache Checked Maps temp to memory (tmpfs on Linux /dev/shm)
โ˜‘ Exclude Hard Drive Fallbacks Unchecked Wait for memory instead of falling back to disk
โ˜‘ File Stability Check Checked 5-second I/O hold to guarantee files finish copying

2.4 Cleanup Operations

Setting Default Description
โ˜‘ Purge Temporary Archives Checked Deletes intermediate 7z volumes after upload
โ˜‘ Purge Local Source Files Unchecked Deletes original files from host post-upload
โ˜‘ Auto-Clear Dashboard Rows Unchecked Removes task items 5 seconds after success
Log Retention Scope 7 Days Log file lifetime (1โ€“365 days)

2.5 Process Priority

Level Description
Low Background processing, preserves UI responsiveness
Normal Standard priority. Recommended for daily operations
High Boosted encoding speeds. Requires root on Linux
Maximum Dedicated processing assets. Requires root privileges

3. Expert Settings (Purple Accent Box)

3.1 7-Zip Compression

Setting Default Description
Password Method Auto Auto (random per task) / Manual (static key)
Key Character Length 16 Generation length (4โ€“16 characters)
โ˜‘ Include Alphabetic Checked Adds text strings to random generation
โ˜‘ Include Numeric Checked Adds integers to random generation
โ˜‘ Include Special Symbols Unchecked Adds special characters to generation
Fixed Password โ€” Static password under manual mode
Compression Engine LZMA2 LZMA2 / LZMA / PPMd / BZip2
Compression Tier 0 (Store) Store (0) up to Ultra (9)
Dictionary Cap 32 MB Data allocation (64 KB โ€“ 1532 MB)
Word Size 32 Verification frame (8โ€“273)
โ˜‘ Solid Archive Units Checked Unified bit-allocation frameworks
Volume Split Method Auto Auto / Custom (Fixed MB) / Divider (Split Counts)
Custom Volume Size 100 MB Fixed chunk allocations (10โ€“4096 MB)
File Divider 40 Parts Uniform piece count (2โ€“999)
โ˜‘ Encrypt Headers Checked (Locked) Hardcoded header encryption

3.2 ParPar Metadata Recovery

Setting Default Description
Parity Redundancy 10% Parity volume (1%โ€“100%)
Recovery Block Sizes Auto Auto or scaled 128 KB โ€“ 4 MB
Block Distribution pow2 pow2 / uniform / equal
Processing Threads Auto Encoding worker tasks (0โ€“32)

3.3 NNTP Network Tuning

Setting Default Description
Article Block Size 768000 bytes Packet size (100,000โ€“800,000 bytes)
Global Newsgroup Indices โ€” Target binaries lists (Enter to save)
โ˜‘ Obfuscate Headers Checked Randomize article subjects
Verify Connections 0 (Disabled) Parallel validation slots (0โ€“10)
โ˜‘ Randomize Identity Checked Anonymous identifiers in headers
Manual Identity Address โ€” Custom placeholder mail string
Poster Identifier Tag โ€” Branding tags in NNTP headers

Part 10c: Settings โ€” Download


Settings โ€” Download Settings

The Download Settings workspace optimizes downstream bandwidth, file system cache parameters, and multi-part archive assembly processing.

1. Overview

Five component clusters in a two-column framework: - Folders & System Workspace - Unpacking Engine Pipeline - Network Connection Parameters - Disk Guard Safeties - Mirror Mode Pipelines

2. Folders & System Workspace

Setting Default Description
Destination Path ~/Downloads/ Folder for assembled extraction payloads
Work Cache Directory ~/.zenith-uploader/dl_temp/ Active multi-part segment processing
โ˜‘ Purge Temporary Archives Checked Clears split archive parts after unpacking
โ˜‘ Purge NZB Origin Files Unchecked Clears NZB files after extraction
Central NZB Cache Folder ~/.zenith-uploader/nzb_cache/ Active download metadata profiles
โ˜‘ Sanitize Download Titles Unchecked Normalizes folder names from archive metadata
โ˜‘ Append Password to File Checked Appends decryption keys in {{password}} format
โ˜‘ Monitor Clipboard Links Checked Captures incoming NZB URLs or NZBLNK items

3. Unpacking Engine Pipeline

Setting Default Description
โ˜‘ Auto-Extract Archives Checked Launches 7z/RAR extraction upon assembly
โ˜‘ Lazy PAR2 Recovery Checked Defers parity downloads unless corruption detected
โ˜‘ Validate yEnc CRC Checked Integrity scanning of yEnc checksums
โ˜‘ Auto-Clear Task Rows Unchecked Removes completed rows after 5 seconds
โ˜‘ Strip Junk Assets Unchecked Purges text files, URLs, shortcuts post-unpacking

Junk Extension Selector: โœ… .txt, โœ… .html, โœ… .url, โœ… .nfo, โœ… .info (Individual filters grayed out until main toggle enabled).

4. Network Connection Parameters

Setting Default Description
Max Connection Allocation Auto (Provider) Connection limits per profile (0 = account values)
Bandwidth Caps Unlimited Incoming speed caps (0โ€“10,000 MB/s)
Segment Retries 3 Retry passes per failed block (0โ€“20)

5. Disk Guard (Downstream)

Setting Default Description
โ˜‘ Enforce Downstream Guards Checked Monitors download drives for capacity
Emergency Limit 80% Hard stop threshold (50%โ€“99%)
Safe Operations Floor 10 GB Space requirement before pausing (1โ€“500 GB)

Tip: Map downstream limits 10% lower than upload guards (e.g., Uploads 90% โ†’ Downloads 80%) to ensure download tasks never consume temporary cache headroom required for active uploads.

6. Mirror Mode

Setting Default Description
โ˜‘ Enforce Mirror Cleanup Unchecked Deletes broken extractions to prevent loop errors

Enabling this flag clears corrupted archives from disk, preventing watchfolder scrapers from reprocessing failed packages. Disabling leaves defective data intact for manual troubleshooting.


Part 10d: Settings โ€” Watch Folders


Settings โ€” Watch Folders

The Watch Folders interface configures automated directory polling loops. The engine captures new files placed inside monitored locations and queues them for processing.

1. Overview

2. Directory Monitor Cards

2.1 Interface Components

2.2 Status Verification

Color State Description
โ— Green Active Directory exists and poll verification ready
โ— Yellow Standby Path disabled by user actions
โ— Red Fault Path missing, unmounted, or blocked by privileges

3. Newsgroup Category Allocations

Configuration Schema:

{
 "/home/user/Videos/Upload": ["alt.binaries.boneless", "alt.binaries.misc"],
 "/home/user/Private/Backup": ["__none__"]
}

4. Adding Watch Folders

  1. Click "๏ผ‹ Add Monitored Path".
  2. System folder picker maps target filesystem paths.
  3. Filters check against existing records to block duplicates.
  4. Maximum 10 entries. Cap disables addition buttons.
  5. Changes trigger automated watchdog engine reloads.

5. Removing Watch Folders

6. Dashboard Synchronization

Toggle switches on the main dashboard write to watch_folders_disabled configuration. Components reload and sync when users navigate back to settings.


License

The License tab controls authorization activations, displays active license validity metrics, and manages device HWID allocation during equipment replacement cycles.

1. Overview

2. Licensing Tiers

Tier Badge Styling Access
DEMO VERSION โš  Amber Yellow Restricted task capacities and file processing limits
FULL VERSION โœ“ Bright Green Infinite unthrottled operations

3. License Badge Card

4. Registration & Key Activation

Element Description
Input Box Monospace, restricted to: XXXX โ€“ XXXX โ€“ XXXX โ€“ XXXX
๐Ÿ”‘ Activate Key Triggers validation: license.activate(key)

Workflow: Input Key โ†’ Execute license.activate(key) โ†’ Query Validation Endpoint โ†’ Invalid: Error dialog / Valid: Write to config โ†’ Prompt reboot.

5. Licensing Utilities

5.1 ๐Ÿ”„ Reset Hardware Identity (HWID Reset)

Resets registration tracking hardware keys to permit migration to alternative workstations. Raises security verification alert. Dispatches license.reset_hwid.

5.2 โ›” Deactivate Device License

Strips licensing authorizations from local equipment. Returns to Demo mode post-reboot. Crimson red button styling.

5.3 ๐Ÿ“‹ Capture System HWID

Copies raw computed hardware identification hash to system clipboard via QApplication.clipboard.setText(license.hwid).

6. Demo Limitations (DEMO Only)

An amber warning banner lists restrictions: - ๐Ÿ“ฆ File Cap: Maximum 1 GB per execution batch. - ๐Ÿ“Š Queue Counter: Maximum 10 upload tasks per day. - ๐Ÿท Branding Injection: Injects branding markers in outbound NNTP headers. - External URL: โ†’ zenith-uploader.com upgrades portal.

7. Unlocked Features (Full Version Only)

A green checklist summarizes active feature sets: - โœ“ Unrestricted processing capabilities. - โœ“ Anonymous outbound metadata (zero branding injections). - โœ“ Dynamic performance profiles without speed limits. - โœ“ Full VPN Guard & Kill-Switch controls. - โœ“ High-priority customer support routing.


Support & Diagnostics

The Support tab provides real-time system performance insights, environment parsing tracking logs, and automated assistance report submission toolkits.

1. Overview

2. System Status Roster

Module Icon Data Source
Operating System ๐Ÿ–ฅ platform.system / distro
Python Runtime ๐Ÿ platform.python_version
Memory Allocation ๐Ÿ’พ psutil.virtual_memory
CPU Thread Count โšก os.cpu_count
Platform Output Format
Linux distro.name distro.version
Windows Windows platform.version
macOS macOS mac_ver

3. Application Log Viewer

3.1 Toolbar

Component Description
๐Ÿ“‹ App Logs Left-aligned console label
๐Ÿ” Search Filter Case-insensitive substring filtration
Severity Dropdown All Levels / INFO / WARNING / ERROR / DEBUG
Line Counter Parsed records count (e.g., "Viewing 452 Rows")

3.2 Console Parameters

3.3 Severity Color Mapping

Severity Color
CRITICAL Bright Neon Red
ERROR Light Red
WARNING Amber Yellow
INFO Light Cyan
DEBUG Muted Gray

3.4 Console Navigation Bar

Button Action
๐Ÿ”„ Reload Buffer Reloads log files, bypassing polling timers
โฌ† Snap to Top Jumps to top of logs
โฌ‡ Snap to Bottom Jumps to end of logs
๐Ÿ“‹ Capture Stream Copies log entries to clipboard
โš  Errors Only Enforces strict ERROR category filter
โ— Autorefresh Green badge confirms active 10s parsing

4. Quick Assistance Actions

4.1 ๐Ÿ› Bug Report Compilation

4.2 ๐Ÿ“‚ Open Log Directory

Opens ~/.zenith-uploader/logs/ in native file explorer. Auto-creates missing directories.

4.3 ๐Ÿ“‹ Capture Log Path

Copies absolute filesystem path to system clipboard.

4.4 ๐Ÿ“Š Capture Environment Diagnostics

Copies formatted system info text:

Zenith Uploader โ€” System Environment Diagnostic Data Map
======================================================
Host OS Platform: [OS]
Python Runtime Version: [Version]
Available Processor Threads: [Threads]
Memory Utilization: [Used] / [Total] GB
Log Path: [Path]

5. Footer Links

๐Ÿ“ง [SUPPORT_EMAIL] ยท Documentation & Guides: zenith-uploader.com