From 360145686fae9150e4db52d7f369b0f6861385cd Mon Sep 17 00:00:00 2001 From: Johnnybegood90 Date: Mon, 9 Mar 2026 14:43:02 +0100 Subject: [PATCH] Update README + add screenshot --- README.md | 118 +++++++++++++++++++++++++----------------------------- 1 file changed, 54 insertions(+), 64 deletions(-) diff --git a/README.md b/README.md index ce3ccd2..8f02901 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # ๐Ÿ“บ GridTV -> Guide TV IPTV en temps rรฉel, pensรฉ pour [Tunarr](https://github.com/chrisbenincasa/tunarr) et toute source XMLTV/M3U. +> A real-time IPTV TV guide, built for [Tunarr](https://github.com/chrisbenincasa/tunarr) and any XMLTV/M3U source. ![PHP](https://img.shields.io/badge/PHP-8.0+-777BB4?style=flat-square&logo=php&logoColor=white) ![Nginx](https://img.shields.io/badge/Nginx-ready-009639?style=flat-square&logo=nginx&logoColor=white) @@ -8,70 +8,60 @@ --- -## โœจ Fonctionnalitรฉs - -- ๐ŸŽ›๏ธ **Grille timeline** โ€” vue horizontale faรงon guide TV classique, avec ligne "maintenant" en temps rรฉel -- ๐Ÿ“ฑ **Responsive** โ€” vue liste optimisรฉe sur mobile -- โฑ๏ธ **Barre de progression** en direct sur le programme en cours -- ๐Ÿ•ถ๏ธ **Programmes passรฉs** attรฉnuรฉs automatiquement -- ๐Ÿ“‹ **Tooltip** au survol โ€” titre, synopsis, saison/รฉpisode, horaires, durรฉe -- ๐Ÿ”— **Boutons copie** EPG & M3U en un clic dans la topbar -- โš™๏ธ **Setup guidรฉ** au premier lancement โ€” zรฉro fichier ร  รฉditer ร  la main -- ๐Ÿ”„ **Rechargement automatique** de l'EPG toutes les 30 minutes -- 0๏ธโƒฃ **Zรฉro dรฉpendance** โ€” PHP vanilla + nginx, c'est tout +![GridTV Preview](assets/preview.png) --- -## ๐Ÿ“ธ Aperรงu +## โœจ Features -``` -โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” -โ”‚ MonGroupe / GridTV Lun 09 Mar 14:32:18 โ—€1h Maintenant 1hโ–ถ EPG M3U โ— LIVE โ”‚ -โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค -โ”‚ 1 Action โ”‚ โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ Terminator โ–ˆโ–ˆโ–ˆโ–ˆ โ”‚ Die Hard โ”‚ ... โ”‚ -โ”‚ 2 Legend โ”‚ Bio de Jimi Hendrix โ”‚ โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ โ”‚ ... โ”‚ -โ”‚ 3 Sรฉries โ”‚ Sopranos S02E07 โ–ˆโ–ˆโ–ˆโ–ˆ โ”‚ ... โ”‚ โ”‚ -โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ -``` +- ๐ŸŽ›๏ธ **Timeline grid** โ€” horizontal EPG-style view with a live "now" indicator +- ๐Ÿ“ฑ **Responsive** โ€” optimized list view on mobile +- โฑ๏ธ **Live progress bar** on the currently airing program +- ๐Ÿ•ถ๏ธ **Past programs** automatically dimmed +- ๐Ÿ“‹ **Hover tooltip** โ€” title, synopsis, season/episode, schedule, duration +- ๐Ÿ”— **One-click copy** buttons for EPG & M3U URLs in the topbar +- โš™๏ธ **Guided setup** on first launch โ€” no config files to edit manually +- ๐Ÿ”„ **Auto-reload** EPG every 30 minutes +- 0๏ธโƒฃ **Zero dependencies** โ€” vanilla PHP + nginx, that's it --- ## ๐Ÿš€ Installation -### Prรฉrequis +### Requirements -- Serveur web avec **PHP 8.0+** et **php-fpm** -- **Nginx** (ou Apache) -- Une source **EPG au format XMLTV** (ex: Tunarr, Jellyfin, xTeVe...) -- *(Optionnel)* Une playlist **M3U** +- A web server running **PHP 8.0+** with **php-fpm** +- **Nginx** (or Apache) +- An **EPG source in XMLTV format** (e.g. Tunarr, Jellyfin, xTeVe...) +- *(Optional)* An **M3U playlist** --- -### 1. Cloner le repo +### 1. Clone the repo ```bash -git clone https://github.com/Johnnybegood90/gridtv.git /var/www/gridtv +git clone https://github.com/Johnnybegood90/GridTV.git /var/www/gridtv cd /var/www/gridtv ``` --- -### 2. Permissions +### 2. Set permissions ```bash -# Le serveur web doit pouvoir รฉcrire config.json lors du setup +# The web server needs write access to create config.json during setup chmod 775 /var/www/gridtv chown -R www-data:www-data /var/www/gridtv ``` --- -### 3. Configurer Nginx +### 3. Configure Nginx ```nginx server { listen 80; - server_name guide.ton-domaine.fr; + server_name guide.your-domain.com; root /var/www/gridtv; index index.php; @@ -87,7 +77,7 @@ server { } ``` -> ๐Ÿ’ก Adapte la version de PHP (`php8.2-fpm`) ร  celle installรฉe sur ton serveur. +> ๐Ÿ’ก Adjust the PHP version (`php8.2-fpm`) to match the one installed on your server. ```bash nginx -t && systemctl reload nginx @@ -95,23 +85,23 @@ nginx -t && systemctl reload nginx --- -### 4. Premier lancement โ€” Setup +### 4. First launch โ€” Setup -Ouvre ton navigateur sur `http://guide.ton-domaine.fr`. +Open your browser at `http://guide.your-domain.com`. -GridTV dรฉtecte l'absence de config et te redirige automatiquement vers la page de setup : +GridTV detects the missing config and automatically redirects you to the setup page: -| Champ | Description | +| Field | Description | |---|---| -| **Nom du groupe** | S'affiche en haut ร  gauche (ex: *JohnnyBeGood*, *MaTV*...) | -| **URL EPG (XMLTV)** | L'URL de ton guide รฉlectronique des programmes | -| **URL M3U** *(optionnel)* | Ta playlist IPTV, pour copie rapide depuis la topbar | +| **Group name** | Displayed top-left in the topbar (e.g. *MyTV*, *FamilyTV*...) | +| **EPG URL (XMLTV)** | Your electronic program guide URL | +| **M3U URL** *(optional)* | Your IPTV playlist, for quick copy from the topbar | -Une fois validรฉ, le fichier `config.json` est crรฉรฉ sur le serveur. **La page setup devient inaccessible.** +Once submitted, `config.json` is created on the server. **The setup page becomes inaccessible.** --- -### 5. Modifier la config plus tard +### 5. Editing the config later ```bash # Via SSH @@ -120,7 +110,7 @@ nano /var/www/gridtv/config.json ```json { - "group_name": "MonGroupe TV", + "group_name": "MyGroup TV", "epg_url": "http://192.168.0.3:8000/api/xmltv.xml", "m3u_url": "http://192.168.0.3:8000/api/channels.m3u" } @@ -128,51 +118,51 @@ nano /var/www/gridtv/config.json --- -## ๐Ÿ“ Structure du projet +## ๐Ÿ“ Project structure ``` gridtv/ -โ”œโ”€โ”€ index.php # Le guide TV (redirige vers setup si pas de config) -โ”œโ”€โ”€ setup.php # Page de configuration initiale -โ”œโ”€โ”€ config.example.json # Template de config (ร  copier โ†’ config.json) -โ”œโ”€โ”€ .gitignore # config.json exclu du repo +โ”œโ”€โ”€ index.php # The TV guide (redirects to setup if no config found) +โ”œโ”€โ”€ setup.php # First-launch configuration page +โ”œโ”€โ”€ config.example.json # Config template (copy to config.json and fill in) +โ”œโ”€โ”€ .gitignore # config.json excluded from the repo โ””โ”€โ”€ README.md ``` -> `config.json` est dans le `.gitignore` โ€” tes URLs privรฉes ne seront jamais poussรฉes sur GitHub. +> `config.json` is listed in `.gitignore` โ€” your private URLs will never be pushed to GitHub. --- -## โš™๏ธ Configuration avancรฉe +## โš™๏ธ Advanced configuration -Les constantes suivantes sont modifiables directement dans `index.php` : +The following constants can be tweaked directly in `index.php`: ```js -const PX_PER_MIN = 5; // Zoom horizontal (pixels par minute) -const HOURS_BEFORE = 1; // Heures passรฉes visibles dans la grille -const HOURS_AFTER = 3; // Heures futures visibles -const ROW_H = 80; // Hauteur d'une ligne chaรฎne (px) +const PX_PER_MIN = 5; // Horizontal zoom (pixels per minute) +const HOURS_BEFORE = 1; // Past hours visible in the grid +const HOURS_AFTER = 3; // Future hours visible in the grid +const ROW_H = 80; // Channel row height (px) ``` --- -## ๐Ÿงฉ Compatibilitรฉ EPG +## ๐Ÿงฉ EPG Compatibility -GridTV parse le format **XMLTV standard**. Testรฉ avec : +GridTV parses the standard **XMLTV format**. Tested with: - โœ… [Tunarr](https://github.com/chrisbenincasa/tunarr) - โœ… [xTeVe](https://github.com/xteve-project/xTeVe) -- โœ… [Jellyfin](https://jellyfin.org/) (via plugin LiveTV) -- โœ… Tout fichier XMLTV conforme ร  la spec +- โœ… [Jellyfin](https://jellyfin.org/) (via LiveTV plugin) +- โœ… Any XMLTV-compliant file --- -## ๐Ÿค Contribuer +## ๐Ÿค Contributing -Les PRs sont les bienvenues ! Si t'as une idรฉe, une correction, ou une feature โ€” ouvre une issue ou envoie direct une PR. +PRs are welcome! Got an idea, a fix, or a feature request โ€” open an issue or send a PR directly. --- -## ๐Ÿ“„ Licence +## ๐Ÿ“„ License -MIT โ€” fais-en ce que tu veux. +MIT โ€” do whatever you want with it.