120 lines
4.1 KiB
Markdown
120 lines
4.1 KiB
Markdown
# 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.
|