Update README.md.

This commit is contained in:
Johnnybegood90
2026-03-13 23:12:20 +01:00
+26 -7
View File
@@ -40,8 +40,10 @@ This demo runs with sample XMLTV feeds to showcase the interface.
- 📡 **Multi-EPG sources** — configure multiple EPG/M3U sources, switch from the topbar - 📡 **Multi-EPG sources** — configure multiple EPG/M3U sources, switch from the topbar
- 👤 **Personal EPG** — optionally let visitors use your instance with their own EPG/M3U URLs (saved in localStorage) - 👤 **Personal EPG** — optionally let visitors use your instance with their own EPG/M3U URLs (saved in localStorage)
- 🔍 **Search** — filter the grid by channel name or program title/synopsis (debounced) - 🔍 **Search** — filter the grid by channel name or program title/synopsis (debounced)
-**Favorites** — pin channels to the top of the grid, persisted in localStorage
- 🌍 **i18n** — auto-detects browser language, supports EN / FR / ES (add your own in `locales/`) - 🌍 **i18n** — auto-detects browser language, supports EN / FR / ES (add your own in `locales/`)
- ⚙️ **Guided setup** on first launch — no config files to edit manually - ⚙️ **Re-editable setup** — protected by an admin key, no SSH required to update config
- 🔔 **Update notifications** — a badge appears in the topbar when a new release is available on GitHub
- 🔄 **Auto-reload** EPG every 30 minutes - 🔄 **Auto-reload** EPG every 30 minutes
- 0️⃣ **Zero JS dependencies** — vanilla PHP, hls.js loaded from CDN - 0️⃣ **Zero JS dependencies** — vanilla PHP, hls.js loaded from CDN
@@ -172,6 +174,8 @@ You can re-open the setup page at any time using the admin key generated during
http://guide.your-domain.com/setup.php http://guide.your-domain.com/setup.php
``` ```
Enter your admin key to unlock the configuration form. The key is stored in `config.json` under `admin_key` — if you lose it, you can retrieve it there via SSH.
Or edit `config.json` directly: Or edit `config.json` directly:
```bash ```bash
@@ -206,8 +210,9 @@ nano /var/www/gridtv/config.json
``` ```
gridtv/ gridtv/
├── index.php # Entry point ├── index.php # Entry point
├── setup.php # First-launch + re-configuration page ├── setup.php # Setup + re-configuration (admin key protected)
├── proxy.php # HTTP→HTTPS stream proxy ├── proxy.php # HTTP→HTTPS stream proxy
├── version.json # Current version (used for update check)
├── config.example.json # Config template ├── config.example.json # Config template
├── Dockerfile ├── Dockerfile
├── docker-compose.yml ├── docker-compose.yml
@@ -223,13 +228,24 @@ gridtv/
│ └── steampunk.css │ └── steampunk.css
└── src/ └── src/
├── config.php # Config loader, migration, locale detection ├── config.php # Config loader, migration, locale detection
├── css/ # CSS modules (one file per feature)
│ ├── base.css # Variables, reset, global layout
│ ├── topbar.css # Topbar, nav, source switcher, theme selector
│ ├── grid.css # Grid, channels, programs, ruler, tooltip, loading
│ ├── mobile.css # Mobile list view
│ ├── player.css # HLS PiP player
│ ├── modals.css # Personal EPG modal
│ ├── search.css # Search bar + highlight
│ ├── program.css # Program info modal + midnight marker
│ ├── favorites.css# Favorite button + separator
│ └── updater.css # Update notification badge
├── tpl/ # HTML templates ├── tpl/ # HTML templates
│ ├── head.php # DOCTYPE, <head>, CSS │ ├── head.php # DOCTYPE, <head>, includes CSS modules
│ ├── topbar.php # Topbar (nav, source switcher, search, theme) │ ├── topbar.php # Topbar (nav, source switcher, search, theme)
│ ├── grid.php # Grid + mobile + PiP + overlays │ ├── grid.php # Grid + mobile + PiP + overlays
│ ├── modals.php # Program info modal + Personal EPG modal │ ├── modals.php # Program info modal + Personal EPG modal
│ └── footer.php # JS modules loader, </body></html> │ └── footer.php # JS modules loader, </body></html>
└── js/ # JavaScript modules └── js/ # JavaScript modules (one file per feature)
├── config.js # Constants + PHP-injected vars (incl. locale) ├── config.js # Constants + PHP-injected vars (incl. locale)
├── utils.js # Helpers, clock, EPG fetch ├── utils.js # Helpers, clock, EPG fetch
├── epg.js # Grid rendering ├── epg.js # Grid rendering
@@ -241,6 +257,8 @@ gridtv/
├── themes.js # Theme switcher ├── themes.js # Theme switcher
├── search.js # Search + filter (debounced) ├── search.js # Search + filter (debounced)
├── program.js # Program info modal + IMDb link ├── program.js # Program info modal + IMDb link
├── favorites.js # Favorites (localStorage)
├── updater.js # GitHub update checker
└── live.js # Live updates + responsive └── live.js # Live updates + responsive
``` ```
@@ -345,15 +363,16 @@ GNU Affero General Public License v3.0 (AGPLv3)
- Theme system (4 built-in themes) - Theme system (4 built-in themes)
- Multi-EPG sources with topbar switcher - Multi-EPG sources with topbar switcher
- Personal EPG (localStorage) - Personal EPG (localStorage)
- Modular codebase (src/tpl + src/js) - Modular codebase (src/tpl + src/js + src/css)
- Docker support - Docker support
- **Search** — filter grid by channel name or program title/synopsis (debounced) - **Search** — filter grid by channel name or program title/synopsis (debounced)
- **Date in timebar** — midnight markers with day/date in the ruler - **Date in timebar** — midnight markers with day/date in the ruler
- **Program popup** — full details + IMDb search link on any program click - **Program popup** — full details + IMDb search link on any program click
- **i18n** — EN / FR / ES with browser auto-detection, extensible via locales/ - **i18n** — EN / FR / ES with browser auto-detection, extensible via locales/
- **Favorites** — pin channels to the top of the grid (localStorage)
- **Setup re-editable** — protected by an admin key, auto-generated on first setup
- **Update notifications** — topbar badge links to latest GitHub release
### 🔜 Coming soon ### 🔜 Coming soon
- **Favorites** — pin channels to the top of the grid (localStorage)
- **Setup re-editable** — reopen setup.php with an admin key, no SSH required
- **Dark/Light auto mode** — follow system preference when using the default theme - **Dark/Light auto mode** — follow system preference when using the default theme
- **Grid export** — export today's schedule as PDF or image - **Grid export** — export today's schedule as PDF or image