Update README.md
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user