Amiga-Z Wiki

β€œModern tools for old-school communities.”

User Tools

Site Tools


projects:fido_man

FTN Nodelist Editor

A PyQt6 desktop application for Linux to create, view, edit, and maintain FidoNet-style (FTN) nodelists, including Fido, FSX, and RetroNet formats.

This tool is intended to assist network coordinators in maintaining accurate and consistent nodelists, as well as bootstrapping new FTN networks.


Project Goals

  • Read existing FTN nodelist files
  • Display nodelist hierarchy in a tree view
  • Edit node information via structured editor fields
  • Validate common FTN constraints
  • Save modified nodelists back to disk
  • Generate new nodelists for new networks

Supported Formats

  • Fido-style nodelists
  • FSX extensions
  • RetroNet conventions
  • Comment preservation

Application Layout

Main Window

  • Menu bar
    • File β†’ New
    • File β†’ Open
    • File β†’ Save
    • File β†’ Save As
    • File β†’ Exit
  • Editor panel (top)
    • Address fields (Zone / Net / Node / Point)
    • Sysop
    • Location
    • Flags
    • Misc data
  • Tree view (bottom)
    • Zone
      • Region
        • Net
          • Node
            • Point
  • Action buttons
    • Save
    • Cancel

v0.1 Feature Scope

Included

  • Load and parse existing nodelists
  • Structured in-memory data model
  • Tree-based navigation
  • Field-based editor panel
  • Add / delete nodes via context menu
  • Validation:
    • Required fields
    • Duplicate addresses
  • Unsaved-change detection
  • New nodelist creation

Deferred (Post v0.1)

  • Undo / Redo
  • Diff preview
  • Multiple output formats
  • Template system
  • NODEDIFF generation

Internal Architecture

Directory Layout

ftn-nodelist-editor/
β”œβ”€β”€ app.py
β”œβ”€β”€ ui/
β”œβ”€β”€ model/
β”œβ”€β”€ parser/
β”œβ”€β”€ validation/
└── resources/

Design Principles

  • UI operates on structured objects, not raw text
  • Parsing and serialization are isolated
  • Errors are non-fatal and reported to the user
  • Future formats supported via parser modules

Development Notes

  • Target platform: Linux
  • Toolkit: PyQt6
  • Encoding awareness required (CP437 vs UTF-8)
  • Preserve comments and ordering on save

Future Ideas

  • Network-wide statistics view
  • Echomail announcement generator
  • Export node blocks
  • Visual diff viewer
  • Plug-in validation rules

Status

  • Planning: IN PROGRESS
  • Initial parser:*
projects/fido_man.txt Β· Last modified: by freedomotter

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki