# Telefact — Python Edition Telefact is a modern re-creation of a Ceefax-style Teletext broadcasting system, written in Python using the Tkinter library. It emulates the visual and structural behaviour of broadcast Teletext systems, maintaining a strict 40×24 character grid layout. This version focuses on the "Broadcaster" mode, replicating the look and timing of early digital information services such as BBC Ceefax and Channel 4 Oracle. ------------------------------------------------------------ VERSION INFORMATION ------------------------------------------------------------ Version: v0.1.2 Language: Python 3.13 Interface: Tkinter (standard library) Target: Desktop application (Linux / Windows) Resolution: 40×24 Teletext grid Font: Modeseven (Teletext recreation) ------------------------------------------------------------ PROJECT GOALS ------------------------------------------------------------ - Faithfully reproduce the look and feel of classic Teletext pages. - Maintain accurate grid alignment for all text and graphics. - Provide a configurable header, footer, and body layout. - Simulate real broadcast elements such as page numbers and timestamps. - Establish the foundation for future expansion into dynamic page rotation and live content updates. ------------------------------------------------------------ CURRENT FEATURES ------------------------------------------------------------ - 40×24 Teletext grid rendering via TelefactRenderer. - Safe-area margins to simulate CRT overscan. - Dynamic Ceefax-style header displaying: - Selected page number (e.g., P100) - Service provider name block (e.g., Telefact) - Current page number (e.g., 100) - Real-time clock (updates every second) - Configurable colours and font settings via config.json. - Keyboard shortcuts: - Q or ESC to exit the application. ------------------------------------------------------------ SOURCE STRUCTURE ------------------------------------------------------------ telefact/ ├── src/ │ ├── core/ │ │ ├── telefact_frame.py │ │ ├── telefact_header.py │ │ └── telefact_formatter.py │ ├── telefact_renderer.py │ └── config_manager.py ├── docs/ │ ├── README.md │ └── CHANGELOG.md ├── assets/ │ └── fonts/ │ ├── Modeseven.ttf │ ├── EuropeanTeletext.ttf │ └── EuropeanTeletextNuevo.ttf └── main.py ------------------------------------------------------------ CONFIGURATION OVERVIEW ------------------------------------------------------------ The configuration file is located at: config/config.json Example: { "Mode": "Broadcaster", "ScreenWidth": 800, "ScreenHeight": 600, "Font": { "Name": "Modeseven", "Path": "assets/fonts/Modeseven.ttf", "Size": 18 }, "ShowGrid": false, "Colours": { "Header": "blue", "Footer": "red", "Background": "black", "TextPrimary": "white", "TextAccent": "yellow", "Clock": "yellow" }, "Header": { "ServiceName": "Telefact", "ServiceFG": "yellow", "ServiceBG": "blue", "SelectedPage": "P100", "CurrentPage": "100" } } ------------------------------------------------------------ ROADMAP ------------------------------------------------------------ v0.1.3 — Footer System and Subpage Counter - Implement footer band with coloured background and subpage indicator. - Integrate page tuning animation (Ceefax-style). - Add configuration options for rotation speed and page timing. v0.2.0 — Page System Expansion - Introduce multiple page definitions with rotation logic. - Implement Teletext page index and feed loading. - Begin adding dynamic content from local cache and static feeds. v0.3.0 — Broadcaster Automation - Simulate channel loop broadcasting through scheduled pages. - Add simple playback manager for testing page timing. ------------------------------------------------------------ AUTHOR AND COPYRIGHT ------------------------------------------------------------ Developed by Stu Leak Leak Technologies (2025) All rights reserved. Fonts: Modeseven and European Teletext by their respective creators.