From 227b370a8066508dbb053b4f0bd5254dd2e15cee Mon Sep 17 00:00:00 2001
From: thehack904 <35552907+thehack904@users.noreply.github.com>
Date: Wed, 15 Oct 2025 21:31:10 -0500
Subject: [PATCH 1/2] DirecTV/Comcast Themes Added
---
templates/about.html | 83 +++++++++++++++++++++++++++++++--
templates/add_user.html | 83 ++++++++++++++++++++++++++++++++-
templates/change_password.html | 82 ++++++++++++++++++++++++++++++++-
templates/change_tuner.html | 83 ++++++++++++++++++++++++++++++++-
templates/delete_user.html | 84 +++++++++++++++++++++++++++++++++-
templates/guide.html | 55 +++++++++++++++++++++-
templates/logs.html | 84 +++++++++++++++++++++++++++++++++-
7 files changed, 545 insertions(+), 9 deletions(-)
diff --git a/templates/about.html b/templates/about.html
index 97da489..de0a493 100644
--- a/templates/about.html
+++ b/templates/about.html
@@ -81,9 +81,33 @@
.about-box li { padding:6px 0; border-bottom:1px solid #555; }
.about-box li:last-child { border-bottom:none; }
- /* Dark / Light */
- body.dark { background:#111; color:#eee; }
+ /* Dark theme */
+ body.dark { background:#111; color:#ddd; }
+ body.dark .header { background:#222; }
+ body.dark #video { background:#000; }
+ body.dark .summary { color:#ccc; }
+ body.dark .chan-col { background:#1a1a1a; border-color:#333; }
+ body.dark .grid-col { background:#181818; }
+ body.dark .chan-header, body.dark .time-header-wrap { background:#222; border-color:#444; }
+ body.dark .time-cell { color:#bbb; border-color:#333; }
+ body.dark .chan-name { color:#fff; border-color:#333; }
+ body.dark .program { background:#3a3a3a; border-color:#555; color:#eee; }
+ body.dark .program.now { background:#2d5030; border-color:#47a447; }
+ body.dark .now-line { background:#0f0; }
+
+ /* Light theme */
body.light { background:#fff; color:#000; }
+ body.light .header { background:#222; }
+ body.light #video { background:#fff; }
+ body.light .summary { color:#000; }
+ body.light .chan-col { background:#f9f9f9; border-color:#ccc; }
+ body.light .grid-col { background:#fafafa; }
+ body.light .chan-header, body.light .time-header-wrap { background:#ddd; border-color:#bbb; }
+ body.light .time-cell { color:#000; border-color:#ccc; }
+ body.light .chan-name { color:#000; border-color:#ccc; }
+ body.light .program { background:#ddd; border-color:#aaa; color:#000; }
+ body.light .program.now { background:#cfe8cf; border-color:#090; }
+ body.light .now-line { background:#090; }
/* Retro AOL / CompuServe Theme */
body.retro-aol { background:#2f4f4f; color:#f0f0f0; font-family:"Tahoma","Arial",sans-serif; }
@@ -124,6 +148,57 @@
body.retro-magazine .program.now { background:#e0e0e0; border:2px solid #000; color:#000; font-weight:bold; }
body.retro-magazine .now-line { background:#000; height:3px; }
body.retro-magazine #current-tuner { color:#000000 !important; font-weight:bold; }
+
+ /* DirecTV Guide Theme */
+ body.directv { background:#001a66; color:#fff; font-family:"Segoe UI","Arial",sans-serif; }
+ body.directv .header { background:linear-gradient(to bottom,#1d72ff,#003a8c); border-bottom:2px solid #001f66; }
+ body.directv .header .links > a, body.directv .header .links > .dropdown > .dropbtn, body.directv .header .links > span, body.directv .header .links > div#clock { color:#ffffff !important; font-weight:bold !important; text-shadow:1px 1px 2px #000 !important; }
+ body.directv .header .links > a:hover, body.directv .header .links > .dropdown:hover > .dropbtn { background:#003f9e !important; color:#ffd802 !important; }
+ body.directv .dropdown-content, body.directv .submenu-content { background:#003a8c !important; border:1px solid #0070ff !important; box-shadow:0 4px 8px rgba(0,0,0,.4) !important; }
+ body.directv .dropdown-content a, body.directv .submenu-content li a { color:#ffffff !important; font-weight:bold !important; }
+ body.directv .dropdown-content a:hover, body.directv .submenu-content li a:hover { background:#0070ff !important; color:#fff !important; }
+ body.directv .dropdown-content .submenu > a { color:#fff !important; padding-right:28px !important; position:relative; }
+ body.directv .dropdown-content .submenu > a::after { content:"▸"; position:absolute; right:10px; top:50%; transform:translateY(-50%); color:#fff; }
+ body.directv .dropdown-content .submenu:hover > a { background:#0070ff !important; color:#fff !important; }
+ body.directv .summary, body.directv #program-info { background:linear-gradient(to bottom,#66b2ff,#003f9e); color:#fff; border:1px solid #004bdb; }
+ body.directv .time-header-wrap { background:#002b80; color:#d8ebff; border-bottom:2px solid #001f66; }
+ body.directv .time-cell { background:#002b80; color:#b9dcff; border-color:#001f66; font-weight:bold; }
+ body.directv .chan-col { background:#001f66; border-right:1px solid #004bdb; color:#fff; font-weight:bold; text-shadow:1px 1px 2px #000; }
+ body.directv .chan-header { background:linear-gradient(to bottom,#0b3b8c,#3c8dff); color:#fff; border-color:#003b91; }
+ body.directv .grid-col { background:#001f66; }
+ body.directv .program { background:#003a8c; border:1px solid #004bdb; color:#fff; border-radius:2px; }
+ body.directv .program.now { background:#ffd802; border:1px solid #caa600; color:#000; font-weight:bold; box-shadow:none; }
+ body.directv .program:hover { background:linear-gradient(to right,#1d67d9,#7fbfff); color:#fff; }
+ body.directv .now-line { background:#ffcc00; }
+ body.directv .footer { background:linear-gradient(to top,#001f66,#004bdb); color:#fff; border-top:2px solid #003580; padding:5px 10px; font-size:0.9em; }
+ body.directv .footer .dot-red { color:#ff3c3c; } body.directv .footer .dot-green { color:#00cc00; } body.directv .footer .dot-yellow { color:#ffd700; } body.directv .footer .dot-blue { color:#4ca9ff; }
+ body.directv #video { background:#000; border:2px solid #004bdb; box-shadow:0 0 6px rgba(0,0,0,0.6); }
+ body.directv #clock::before { content:"TV GUIDE"; display:inline-block; margin-right:10px; padding:3px 8px; background:#e41e26; color:#fff; font-weight:900; font-size:12px; line-height:1; border-radius:3px; border:1px solid rgba(255,255,255,.85); box-shadow:0 1px 2px rgba(0,0,0,.35); letter-spacing:.4px; vertical-align:middle; }
+
+
+ /* Comcast Guide Theme */
+ body.comcast { background:#001b50; color:#fff; font-family:"Segoe UI","Arial",sans-serif; }
+ body.comcast .header { background:linear-gradient(to bottom,#0055cc,#001b50); border-bottom:2px solid #003090; }
+ body.comcast .header .links > a, body.comcast .header .links > .dropdown > .dropbtn, body.comcast .header .links > span, body.comcast .header .links > div#clock { color:#ffffff !important; font-weight:bold !important; text-shadow:1px 1px 2px #000 !important; }
+ body.comcast .header .links > a:hover, body.comcast .header .links > .dropdown:hover > .dropbtn { background:#003890 !important; color:#ffcc00 !important; }
+ body.comcast .dropdown-content, body.comcast .submenu-content { background:#002a70 !important; border:1px solid #0044cc !important; box-shadow:0 4px 8px rgba(0,0,0,.4) !important; }
+ body.comcast .dropdown-content a, body.comcast .submenu-content li a { color:#ffffff !important; font-weight:bold !important; }
+ body.comcast .dropdown-content a:hover, body.comcast .submenu-content li a:hover { background:#0044cc !important; color:#fff !important; }
+ body.comcast .summary, body.comcast #program-info { background:linear-gradient(to bottom,#001b50,#003890); color:#fff; border:1px solid #003090; }
+ body.comcast .time-header-wrap { background:#003890; color:#bcd8ff; border-bottom:2px solid #002b80; }
+ body.comcast .time-cell { background:#003890; color:#ffffff; border-color:#002b80; font-weight:bold; }
+ body.comcast .chan-col { background:#001b50; border-right:1px solid #0044cc; color:#fff; font-weight:bold; text-shadow:1px 1px 2px #000; }
+ body.comcast .chan-header { background:#002a70; color:#fff; border-color:#0044cc; }
+ body.comcast .grid-col { background:#002a70; }
+ body.comcast .program { background:#003890; border:1px solid #0044cc; color:#fff; border-radius:2px; }
+ body.comcast .program.now { background:#ffffff; border:1px solid #cccccc; color:#000; font-weight:bold; }
+ body.comcast .program:hover { background:#0044cc; color:#fff; }
+ body.comcast .now-line { background:#ffcc00; }
+ body.comcast #video { background:#000; border:2px solid #0044cc; box-shadow:0 0 8px rgba(0,0,0,.6); }
+ body.comcast .footer { background:linear-gradient(to top,#001b50,#0044cc); color:#fff; border-top:2px solid #002b80; padding:5px 10px; font-size:0.9em; }
+ body.comcast .footer .dot-red { color:#ff3c3c; } body.comcast .footer .dot-green { color:#00cc00; } body.comcast .footer .dot-yellow { color:#ffd700; } body.comcast .footer .dot-blue { color:#4ca9ff; }
+ body.comcast #clock::before { content:"TV GUIDE"; display:inline-block; margin-right:10px; padding:3px 8px; background:#e41e26; color:#fff; font-weight:900; font-size:12px; line-height:1; border-radius:3px; border:1px solid rgba(255,255,255,.85); box-shadow:0 1px 2px rgba(0,0,0,.35); letter-spacing:.4px; vertical-align:middle; }
+
@@ -159,6 +234,8 @@
Dark
AOL / CompuServe
TV Guide Magazine
+ DirecTV
+ Comcast
@@ -196,7 +273,7 @@ About RetroIPTVGuide
function setTheme(theme) {
const body = document.body;
- body.classList.remove("light", "dark", "retro-tvguide", "retro-aol", "retro-webtv", "retro-tvguide2000", "retro-magazine");
+ body.classList.remove("light", "dark", "retro-tvguide", "retro-aol", "retro-webtv", "retro-tvguide2000", "retro-magazine", "directv", "comcast");
body.classList.add(theme);
localStorage.setItem("theme", theme);
}
diff --git a/templates/add_user.html b/templates/add_user.html
index be6914a..71ca371 100644
--- a/templates/add_user.html
+++ b/templates/add_user.html
@@ -82,6 +82,34 @@
padding: 0;
}
+ /* Dark theme */
+ body.dark { background:#111; color:#ddd; }
+ body.dark .header { background:#222; }
+ body.dark #video { background:#000; }
+ body.dark .summary { color:#ccc; }
+ body.dark .chan-col { background:#1a1a1a; border-color:#333; }
+ body.dark .grid-col { background:#181818; }
+ body.dark .chan-header, body.dark .time-header-wrap { background:#222; border-color:#444; }
+ body.dark .time-cell { color:#bbb; border-color:#333; }
+ body.dark .chan-name { color:#fff; border-color:#333; }
+ body.dark .program { background:#3a3a3a; border-color:#555; color:#eee; }
+ body.dark .program.now { background:#2d5030; border-color:#47a447; }
+ body.dark .now-line { background:#0f0; }
+
+ /* Light theme */
+ body.light { background:#fff; color:#000; }
+ body.light .header { background:#222; }
+ body.light #video { background:#fff; }
+ body.light .summary { color:#000; }
+ body.light .chan-col { background:#f9f9f9; border-color:#ccc; }
+ body.light .grid-col { background:#fafafa; }
+ body.light .chan-header, body.light .time-header-wrap { background:#ddd; border-color:#bbb; }
+ body.light .time-cell { color:#000; border-color:#ccc; }
+ body.light .chan-name { color:#000; border-color:#ccc; }
+ body.light .program { background:#ddd; border-color:#aaa; color:#000; }
+ body.light .program.now { background:#cfe8cf; border-color:#090; }
+ body.light .now-line { background:#090; }
+
/* Retro AOL / CompuServe Theme */
body.retro-aol { background:#2f4f4f; color:#f0f0f0; font-family:"Tahoma","Arial",sans-serif; }
body.retro-aol .header { background:#004466; color:#ffcc00; border-bottom:2px solid #33cccc; }
@@ -107,6 +135,57 @@
body.retro-magazine button.primary { background:#000; color:#fff; }
body.retro-magazine button.primary:hover { background:#333; color:#fff; }
+ /* DirecTV Guide Theme */
+ body.directv { background:#001a66; color:#fff; font-family:"Segoe UI","Arial",sans-serif; }
+ body.directv .header { background:linear-gradient(to bottom,#1d72ff,#003a8c); border-bottom:2px solid #001f66; }
+ body.directv .header .links > a, body.directv .header .links > .dropdown > .dropbtn, body.directv .header .links > span, body.directv .header .links > div#clock { color:#ffffff !important; font-weight:bold !important; text-shadow:1px 1px 2px #000 !important; }
+ body.directv .header .links > a:hover, body.directv .header .links > .dropdown:hover > .dropbtn { background:#003f9e !important; color:#ffd802 !important; }
+ body.directv .dropdown-content, body.directv .submenu-content { background:#003a8c !important; border:1px solid #0070ff !important; box-shadow:0 4px 8px rgba(0,0,0,.4) !important; }
+ body.directv .dropdown-content a, body.directv .submenu-content li a { color:#ffffff !important; font-weight:bold !important; }
+ body.directv .dropdown-content a:hover, body.directv .submenu-content li a:hover { background:#0070ff !important; color:#fff !important; }
+ body.directv .dropdown-content .submenu > a { color:#fff !important; padding-right:28px !important; position:relative; }
+ body.directv .dropdown-content .submenu > a::after { content:"▸"; position:absolute; right:10px; top:50%; transform:translateY(-50%); color:#fff; }
+ body.directv .dropdown-content .submenu:hover > a { background:#0070ff !important; color:#fff !important; }
+ body.directv .summary, body.directv #program-info { background:linear-gradient(to bottom,#66b2ff,#003f9e); color:#fff; border:1px solid #004bdb; }
+ body.directv .time-header-wrap { background:#002b80; color:#d8ebff; border-bottom:2px solid #001f66; }
+ body.directv .time-cell { background:#002b80; color:#b9dcff; border-color:#001f66; font-weight:bold; }
+ body.directv .chan-col { background:#001f66; border-right:1px solid #004bdb; color:#fff; font-weight:bold; text-shadow:1px 1px 2px #000; }
+ body.directv .chan-header { background:linear-gradient(to bottom,#0b3b8c,#3c8dff); color:#fff; border-color:#003b91; }
+ body.directv .grid-col { background:#001f66; }
+ body.directv .program { background:#003a8c; border:1px solid #004bdb; color:#fff; border-radius:2px; }
+ body.directv .program.now { background:#ffd802; border:1px solid #caa600; color:#000; font-weight:bold; box-shadow:none; }
+ body.directv .program:hover { background:linear-gradient(to right,#1d67d9,#7fbfff); color:#fff; }
+ body.directv .now-line { background:#ffcc00; }
+ body.directv .footer { background:linear-gradient(to top,#001f66,#004bdb); color:#fff; border-top:2px solid #003580; padding:5px 10px; font-size:0.9em; }
+ body.directv .footer .dot-red { color:#ff3c3c; } body.directv .footer .dot-green { color:#00cc00; } body.directv .footer .dot-yellow { color:#ffd700; } body.directv .footer .dot-blue { color:#4ca9ff; }
+ body.directv #video { background:#000; border:2px solid #004bdb; box-shadow:0 0 6px rgba(0,0,0,0.6); }
+ body.directv #clock::before { content:"TV GUIDE"; display:inline-block; margin-right:10px; padding:3px 8px; background:#e41e26; color:#fff; font-weight:900; font-size:12px; line-height:1; border-radius:3px; border:1px solid rgba(255,255,255,.85); box-shadow:0 1px 2px rgba(0,0,0,.35); letter-spacing:.4px; vertical-align:middle; }
+
+
+ /* Comcast Guide Theme */
+ body.comcast { background:#001b50; color:#fff; font-family:"Segoe UI","Arial",sans-serif; }
+ body.comcast .header { background:linear-gradient(to bottom,#0055cc,#001b50); border-bottom:2px solid #003090; }
+ body.comcast .header .links > a, body.comcast .header .links > .dropdown > .dropbtn, body.comcast .header .links > span, body.comcast .header .links > div#clock { color:#ffffff !important; font-weight:bold !important; text-shadow:1px 1px 2px #000 !important; }
+ body.comcast .header .links > a:hover, body.comcast .header .links > .dropdown:hover > .dropbtn { background:#003890 !important; color:#ffcc00 !important; }
+ body.comcast .dropdown-content, body.comcast .submenu-content { background:#002a70 !important; border:1px solid #0044cc !important; box-shadow:0 4px 8px rgba(0,0,0,.4) !important; }
+ body.comcast .dropdown-content a, body.comcast .submenu-content li a { color:#ffffff !important; font-weight:bold !important; }
+ body.comcast .dropdown-content a:hover, body.comcast .submenu-content li a:hover { background:#0044cc !important; color:#fff !important; }
+ body.comcast .summary, body.comcast #program-info { background:linear-gradient(to bottom,#001b50,#003890); color:#fff; border:1px solid #003090; }
+ body.comcast .time-header-wrap { background:#003890; color:#bcd8ff; border-bottom:2px solid #002b80; }
+ body.comcast .time-cell { background:#003890; color:#ffffff; border-color:#002b80; font-weight:bold; }
+ body.comcast .chan-col { background:#001b50; border-right:1px solid #0044cc; color:#fff; font-weight:bold; text-shadow:1px 1px 2px #000; }
+ body.comcast .chan-header { background:#002a70; color:#fff; border-color:#0044cc; }
+ body.comcast .grid-col { background:#002a70; }
+ body.comcast .program { background:#003890; border:1px solid #0044cc; color:#fff; border-radius:2px; }
+ body.comcast .program.now { background:#ffffff; border:1px solid #cccccc; color:#000; font-weight:bold; }
+ body.comcast .program:hover { background:#0044cc; color:#fff; }
+ body.comcast .now-line { background:#ffcc00; }
+ body.comcast #video { background:#000; border:2px solid #0044cc; box-shadow:0 0 8px rgba(0,0,0,.6); }
+ body.comcast .footer { background:linear-gradient(to top,#001b50,#0044cc); color:#fff; border-top:2px solid #002b80; padding:5px 10px; font-size:0.9em; }
+ body.comcast .footer .dot-red { color:#ff3c3c; } body.comcast .footer .dot-green { color:#00cc00; } body.comcast .footer .dot-yellow { color:#ffd700; } body.comcast .footer .dot-blue { color:#4ca9ff; }
+ body.comcast #clock::before { content:"TV GUIDE"; display:inline-block; margin-right:10px; padding:3px 8px; background:#e41e26; color:#fff; font-weight:900; font-size:12px; line-height:1; border-radius:3px; border:1px solid rgba(255,255,255,.85); box-shadow:0 1px 2px rgba(0,0,0,.35); letter-spacing:.4px; vertical-align:middle; }
+
+
@@ -140,6 +219,8 @@
Dark
AOL / CompuServe
TV Guide Magazine
+ DirecTV
+ Comcast
@@ -177,7 +258,7 @@ Add New User
});
function setTheme(theme) {
const body = document.body;
- body.classList.remove("light", "dark", "retro-tvguide", "retro-aol", "retro-webtv", "retro-tvguide2000", "retro-magazine");
+ body.classList.remove("light", "dark", "retro-tvguide", "retro-aol", "retro-webtv", "retro-tvguide2000", "retro-magazine", "directv", "comcast");
body.classList.add(theme);
localStorage.setItem("theme", theme);
}
diff --git a/templates/change_password.html b/templates/change_password.html
index fa6366b..17d42ab 100644
--- a/templates/change_password.html
+++ b/templates/change_password.html
@@ -89,7 +89,34 @@
margin: 0;
padding: 0;
}
+ /* Dark theme */
+ body.dark { background:#111; color:#ddd; }
+ body.dark .header { background:#222; }
+ body.dark #video { background:#000; }
+ body.dark .summary { color:#ccc; }
+ body.dark .chan-col { background:#1a1a1a; border-color:#333; }
+ body.dark .grid-col { background:#181818; }
+ body.dark .chan-header, body.dark .time-header-wrap { background:#222; border-color:#444; }
+ body.dark .time-cell { color:#bbb; border-color:#333; }
+ body.dark .chan-name { color:#fff; border-color:#333; }
+ body.dark .program { background:#3a3a3a; border-color:#555; color:#eee; }
+ body.dark .program.now { background:#2d5030; border-color:#47a447; }
+ body.dark .now-line { background:#0f0; }
+ /* Light theme */
+ body.light { background:#fff; color:#000; }
+ body.light .header { background:#222; }
+ body.light #video { background:#fff; }
+ body.light .summary { color:#000; }
+ body.light .chan-col { background:#f9f9f9; border-color:#ccc; }
+ body.light .grid-col { background:#fafafa; }
+ body.light .chan-header, body.light .time-header-wrap { background:#ddd; border-color:#bbb; }
+ body.light .time-cell { color:#000; border-color:#ccc; }
+ body.light .chan-name { color:#000; border-color:#ccc; }
+ body.light .program { background:#ddd; border-color:#aaa; color:#000; }
+ body.light .program.now { background:#cfe8cf; border-color:#090; }
+ body.light .now-line { background:#090; }
+
/* Retro AOL / CompuServe Theme */
body.retro-aol { background:#2f4f4f; color:#f0f0f0; font-family:"Tahoma","Arial",sans-serif; }
body.retro-aol .header { background:#004466; color:#ffcc00; border-bottom:2px solid #33cccc; }
@@ -114,6 +141,57 @@
body.retro-magazine input { border:1px solid #000; background:#fff; color:#000; }
body.retro-magazine button.primary { background:#000; color:#fff; }
body.retro-magazine button.primary:hover { background:#333; color:#fff; }
+
+ /* DirecTV Guide Theme */
+ body.directv { background:#001a66; color:#fff; font-family:"Segoe UI","Arial",sans-serif; }
+ body.directv .header { background:linear-gradient(to bottom,#1d72ff,#003a8c); border-bottom:2px solid #001f66; }
+ body.directv .header .links > a, body.directv .header .links > .dropdown > .dropbtn, body.directv .header .links > span, body.directv .header .links > div#clock { color:#ffffff !important; font-weight:bold !important; text-shadow:1px 1px 2px #000 !important; }
+ body.directv .header .links > a:hover, body.directv .header .links > .dropdown:hover > .dropbtn { background:#003f9e !important; color:#ffd802 !important; }
+ body.directv .dropdown-content, body.directv .submenu-content { background:#003a8c !important; border:1px solid #0070ff !important; box-shadow:0 4px 8px rgba(0,0,0,.4) !important; }
+ body.directv .dropdown-content a, body.directv .submenu-content li a { color:#ffffff !important; font-weight:bold !important; }
+ body.directv .dropdown-content a:hover, body.directv .submenu-content li a:hover { background:#0070ff !important; color:#fff !important; }
+ body.directv .dropdown-content .submenu > a { color:#fff !important; padding-right:28px !important; position:relative; }
+ body.directv .dropdown-content .submenu > a::after { content:"▸"; position:absolute; right:10px; top:50%; transform:translateY(-50%); color:#fff; }
+ body.directv .dropdown-content .submenu:hover > a { background:#0070ff !important; color:#fff !important; }
+ body.directv .summary, body.directv #program-info { background:linear-gradient(to bottom,#66b2ff,#003f9e); color:#fff; border:1px solid #004bdb; }
+ body.directv .time-header-wrap { background:#002b80; color:#d8ebff; border-bottom:2px solid #001f66; }
+ body.directv .time-cell { background:#002b80; color:#b9dcff; border-color:#001f66; font-weight:bold; }
+ body.directv .chan-col { background:#001f66; border-right:1px solid #004bdb; color:#fff; font-weight:bold; text-shadow:1px 1px 2px #000; }
+ body.directv .chan-header { background:linear-gradient(to bottom,#0b3b8c,#3c8dff); color:#fff; border-color:#003b91; }
+ body.directv .grid-col { background:#001f66; }
+ body.directv .program { background:#003a8c; border:1px solid #004bdb; color:#fff; border-radius:2px; }
+ body.directv .program.now { background:#ffd802; border:1px solid #caa600; color:#000; font-weight:bold; box-shadow:none; }
+ body.directv .program:hover { background:linear-gradient(to right,#1d67d9,#7fbfff); color:#fff; }
+ body.directv .now-line { background:#ffcc00; }
+ body.directv .footer { background:linear-gradient(to top,#001f66,#004bdb); color:#fff; border-top:2px solid #003580; padding:5px 10px; font-size:0.9em; }
+ body.directv .footer .dot-red { color:#ff3c3c; } body.directv .footer .dot-green { color:#00cc00; } body.directv .footer .dot-yellow { color:#ffd700; } body.directv .footer .dot-blue { color:#4ca9ff; }
+ body.directv #video { background:#000; border:2px solid #004bdb; box-shadow:0 0 6px rgba(0,0,0,0.6); }
+ body.directv #clock::before { content:"TV GUIDE"; display:inline-block; margin-right:10px; padding:3px 8px; background:#e41e26; color:#fff; font-weight:900; font-size:12px; line-height:1; border-radius:3px; border:1px solid rgba(255,255,255,.85); box-shadow:0 1px 2px rgba(0,0,0,.35); letter-spacing:.4px; vertical-align:middle; }
+
+
+ /* Comcast Guide Theme */
+ body.comcast { background:#001b50; color:#fff; font-family:"Segoe UI","Arial",sans-serif; }
+ body.comcast .header { background:linear-gradient(to bottom,#0055cc,#001b50); border-bottom:2px solid #003090; }
+ body.comcast .header .links > a, body.comcast .header .links > .dropdown > .dropbtn, body.comcast .header .links > span, body.comcast .header .links > div#clock { color:#ffffff !important; font-weight:bold !important; text-shadow:1px 1px 2px #000 !important; }
+ body.comcast .header .links > a:hover, body.comcast .header .links > .dropdown:hover > .dropbtn { background:#003890 !important; color:#ffcc00 !important; }
+ body.comcast .dropdown-content, body.comcast .submenu-content { background:#002a70 !important; border:1px solid #0044cc !important; box-shadow:0 4px 8px rgba(0,0,0,.4) !important; }
+ body.comcast .dropdown-content a, body.comcast .submenu-content li a { color:#ffffff !important; font-weight:bold !important; }
+ body.comcast .dropdown-content a:hover, body.comcast .submenu-content li a:hover { background:#0044cc !important; color:#fff !important; }
+ body.comcast .summary, body.comcast #program-info { background:linear-gradient(to bottom,#001b50,#003890); color:#fff; border:1px solid #003090; }
+ body.comcast .time-header-wrap { background:#003890; color:#bcd8ff; border-bottom:2px solid #002b80; }
+ body.comcast .time-cell { background:#003890; color:#ffffff; border-color:#002b80; font-weight:bold; }
+ body.comcast .chan-col { background:#001b50; border-right:1px solid #0044cc; color:#fff; font-weight:bold; text-shadow:1px 1px 2px #000; }
+ body.comcast .chan-header { background:#002a70; color:#fff; border-color:#0044cc; }
+ body.comcast .grid-col { background:#002a70; }
+ body.comcast .program { background:#003890; border:1px solid #0044cc; color:#fff; border-radius:2px; }
+ body.comcast .program.now { background:#ffffff; border:1px solid #cccccc; color:#000; font-weight:bold; }
+ body.comcast .program:hover { background:#0044cc; color:#fff; }
+ body.comcast .now-line { background:#ffcc00; }
+ body.comcast #video { background:#000; border:2px solid #0044cc; box-shadow:0 0 8px rgba(0,0,0,.6); }
+ body.comcast .footer { background:linear-gradient(to top,#001b50,#0044cc); color:#fff; border-top:2px solid #002b80; padding:5px 10px; font-size:0.9em; }
+ body.comcast .footer .dot-red { color:#ff3c3c; } body.comcast .footer .dot-green { color:#00cc00; } body.comcast .footer .dot-yellow { color:#ffd700; } body.comcast .footer .dot-blue { color:#4ca9ff; }
+ body.comcast #clock::before { content:"TV GUIDE"; display:inline-block; margin-right:10px; padding:3px 8px; background:#e41e26; color:#fff; font-weight:900; font-size:12px; line-height:1; border-radius:3px; border:1px solid rgba(255,255,255,.85); box-shadow:0 1px 2px rgba(0,0,0,.35); letter-spacing:.4px; vertical-align:middle; }
+
@@ -148,6 +226,8 @@
Dark
AOL / CompuServe
TV Guide Magazine
+ DirecTV
+ Comcast
@@ -186,7 +266,7 @@ Change Password
});
function setTheme(theme) {
const body = document.body;
- body.classList.remove("light", "dark", "retro-tvguide", "retro-aol", "retro-webtv", "retro-tvguide2000", "retro-magazine");
+ body.classList.remove("light", "dark", "retro-tvguide", "retro-aol", "retro-webtv", "retro-tvguide2000", "retro-magazine", "directv", "comcast");
body.classList.add(theme);
localStorage.setItem("theme", theme);
}
diff --git a/templates/change_tuner.html b/templates/change_tuner.html
index 3ebc991..f32d16e 100644
--- a/templates/change_tuner.html
+++ b/templates/change_tuner.html
@@ -78,6 +78,34 @@
padding: 0;
}
+ /* Dark theme */
+ body.dark { background:#111; color:#ddd; }
+ body.dark .header { background:#222; }
+ body.dark #video { background:#000; }
+ body.dark .summary { color:#ccc; }
+ body.dark .chan-col { background:#1a1a1a; border-color:#333; }
+ body.dark .grid-col { background:#181818; }
+ body.dark .chan-header, body.dark .time-header-wrap { background:#222; border-color:#444; }
+ body.dark .time-cell { color:#bbb; border-color:#333; }
+ body.dark .chan-name { color:#fff; border-color:#333; }
+ body.dark .program { background:#3a3a3a; border-color:#555; color:#eee; }
+ body.dark .program.now { background:#2d5030; border-color:#47a447; }
+ body.dark .now-line { background:#0f0; }
+
+ /* Light theme */
+ body.light { background:#fff; color:#000; }
+ body.light .header { background:#222; }
+ body.light #video { background:#fff; }
+ body.light .summary { color:#000; }
+ body.light .chan-col { background:#f9f9f9; border-color:#ccc; }
+ body.light .grid-col { background:#fafafa; }
+ body.light .chan-header, body.light .time-header-wrap { background:#ddd; border-color:#bbb; }
+ body.light .time-cell { color:#000; border-color:#ccc; }
+ body.light .chan-name { color:#000; border-color:#ccc; }
+ body.light .program { background:#ddd; border-color:#aaa; color:#000; }
+ body.light .program.now { background:#cfe8cf; border-color:#090; }
+ body.light .now-line { background:#090; }
+
/* Retro AOL / CompuServe Theme */
body.retro-aol { background:#2f4f4f; color:#f0f0f0; font-family:"Tahoma","Arial",sans-serif; }
body.retro-aol .header { background:#004466; color:#ffcc00; border-bottom:2px solid #33cccc; }
@@ -103,6 +131,57 @@
body.retro-magazine button.primary { background:#000; color:#fff; }
body.retro-magazine button.primary:hover { background:#333; color:#fff; }
+ /* DirecTV Guide Theme */
+ body.directv { background:#001a66; color:#fff; font-family:"Segoe UI","Arial",sans-serif; }
+ body.directv .header { background:linear-gradient(to bottom,#1d72ff,#003a8c); border-bottom:2px solid #001f66; }
+ body.directv .header .links > a, body.directv .header .links > .dropdown > .dropbtn, body.directv .header .links > span, body.directv .header .links > div#clock { color:#ffffff !important; font-weight:bold !important; text-shadow:1px 1px 2px #000 !important; }
+ body.directv .header .links > a:hover, body.directv .header .links > .dropdown:hover > .dropbtn { background:#003f9e !important; color:#ffd802 !important; }
+ body.directv .dropdown-content, body.directv .submenu-content { background:#003a8c !important; border:1px solid #0070ff !important; box-shadow:0 4px 8px rgba(0,0,0,.4) !important; }
+ body.directv .dropdown-content a, body.directv .submenu-content li a { color:#ffffff !important; font-weight:bold !important; }
+ body.directv .dropdown-content a:hover, body.directv .submenu-content li a:hover { background:#0070ff !important; color:#fff !important; }
+ body.directv .dropdown-content .submenu > a { color:#fff !important; padding-right:28px !important; position:relative; }
+ body.directv .dropdown-content .submenu > a::after { content:"▸"; position:absolute; right:10px; top:50%; transform:translateY(-50%); color:#fff; }
+ body.directv .dropdown-content .submenu:hover > a { background:#0070ff !important; color:#fff !important; }
+ body.directv .summary, body.directv #program-info { background:linear-gradient(to bottom,#66b2ff,#003f9e); color:#fff; border:1px solid #004bdb; }
+ body.directv .time-header-wrap { background:#002b80; color:#d8ebff; border-bottom:2px solid #001f66; }
+ body.directv .time-cell { background:#002b80; color:#b9dcff; border-color:#001f66; font-weight:bold; }
+ body.directv .chan-col { background:#001f66; border-right:1px solid #004bdb; color:#fff; font-weight:bold; text-shadow:1px 1px 2px #000; }
+ body.directv .chan-header { background:linear-gradient(to bottom,#0b3b8c,#3c8dff); color:#fff; border-color:#003b91; }
+ body.directv .grid-col { background:#001f66; }
+ body.directv .program { background:#003a8c; border:1px solid #004bdb; color:#fff; border-radius:2px; }
+ body.directv .program.now { background:#ffd802; border:1px solid #caa600; color:#000; font-weight:bold; box-shadow:none; }
+ body.directv .program:hover { background:linear-gradient(to right,#1d67d9,#7fbfff); color:#fff; }
+ body.directv .now-line { background:#ffcc00; }
+ body.directv .footer { background:linear-gradient(to top,#001f66,#004bdb); color:#fff; border-top:2px solid #003580; padding:5px 10px; font-size:0.9em; }
+ body.directv .footer .dot-red { color:#ff3c3c; } body.directv .footer .dot-green { color:#00cc00; } body.directv .footer .dot-yellow { color:#ffd700; } body.directv .footer .dot-blue { color:#4ca9ff; }
+ body.directv #video { background:#000; border:2px solid #004bdb; box-shadow:0 0 6px rgba(0,0,0,0.6); }
+ body.directv #clock::before { content:"TV GUIDE"; display:inline-block; margin-right:10px; padding:3px 8px; background:#e41e26; color:#fff; font-weight:900; font-size:12px; line-height:1; border-radius:3px; border:1px solid rgba(255,255,255,.85); box-shadow:0 1px 2px rgba(0,0,0,.35); letter-spacing:.4px; vertical-align:middle; }
+
+
+ /* Comcast Guide Theme */
+ body.comcast { background:#001b50; color:#fff; font-family:"Segoe UI","Arial",sans-serif; }
+ body.comcast .header { background:linear-gradient(to bottom,#0055cc,#001b50); border-bottom:2px solid #003090; }
+ body.comcast .header .links > a, body.comcast .header .links > .dropdown > .dropbtn, body.comcast .header .links > span, body.comcast .header .links > div#clock { color:#ffffff !important; font-weight:bold !important; text-shadow:1px 1px 2px #000 !important; }
+ body.comcast .header .links > a:hover, body.comcast .header .links > .dropdown:hover > .dropbtn { background:#003890 !important; color:#ffcc00 !important; }
+ body.comcast .dropdown-content, body.comcast .submenu-content { background:#002a70 !important; border:1px solid #0044cc !important; box-shadow:0 4px 8px rgba(0,0,0,.4) !important; }
+ body.comcast .dropdown-content a, body.comcast .submenu-content li a { color:#ffffff !important; font-weight:bold !important; }
+ body.comcast .dropdown-content a:hover, body.comcast .submenu-content li a:hover { background:#0044cc !important; color:#fff !important; }
+ body.comcast .summary, body.comcast #program-info { background:linear-gradient(to bottom,#001b50,#003890); color:#fff; border:1px solid #003090; }
+ body.comcast .time-header-wrap { background:#003890; color:#bcd8ff; border-bottom:2px solid #002b80; }
+ body.comcast .time-cell { background:#003890; color:#ffffff; border-color:#002b80; font-weight:bold; }
+ body.comcast .chan-col { background:#001b50; border-right:1px solid #0044cc; color:#fff; font-weight:bold; text-shadow:1px 1px 2px #000; }
+ body.comcast .chan-header { background:#002a70; color:#fff; border-color:#0044cc; }
+ body.comcast .grid-col { background:#002a70; }
+ body.comcast .program { background:#003890; border:1px solid #0044cc; color:#fff; border-radius:2px; }
+ body.comcast .program.now { background:#ffffff; border:1px solid #cccccc; color:#000; font-weight:bold; }
+ body.comcast .program:hover { background:#0044cc; color:#fff; }
+ body.comcast .now-line { background:#ffcc00; }
+ body.comcast #video { background:#000; border:2px solid #0044cc; box-shadow:0 0 8px rgba(0,0,0,.6); }
+ body.comcast .footer { background:linear-gradient(to top,#001b50,#0044cc); color:#fff; border-top:2px solid #002b80; padding:5px 10px; font-size:0.9em; }
+ body.comcast .footer .dot-red { color:#ff3c3c; } body.comcast .footer .dot-green { color:#00cc00; } body.comcast .footer .dot-yellow { color:#ffd700; } body.comcast .footer .dot-blue { color:#4ca9ff; }
+ body.comcast #clock::before { content:"TV GUIDE"; display:inline-block; margin-right:10px; padding:3px 8px; background:#e41e26; color:#fff; font-weight:900; font-size:12px; line-height:1; border-radius:3px; border:1px solid rgba(255,255,255,.85); box-shadow:0 1px 2px rgba(0,0,0,.35); letter-spacing:.4px; vertical-align:middle; }
+
+
@@ -134,6 +213,8 @@
Dark
AOL / CompuServe
TV Guide Magazine
+ DirecTV
+ Comcast
@@ -239,7 +320,7 @@ Rename Tuner
function setTheme(theme) {
const body = document.body;
- body.classList.remove("light", "dark", "retro-tvguide", "retro-aol", "retro-webtv", "retro-tvguide2000", "retro-magazine");
+ body.classList.remove("light", "dark", "retro-tvguide", "retro-aol", "retro-webtv", "retro-tvguide2000", "retro-magazine", "directv", "comcast");
body.classList.add(theme);
localStorage.setItem("theme", theme);
}
diff --git a/templates/delete_user.html b/templates/delete_user.html
index ef70b6f..329fc61 100644
--- a/templates/delete_user.html
+++ b/templates/delete_user.html
@@ -82,6 +82,34 @@
padding: 0;
}
+ /* Dark theme */
+ body.dark { background:#111; color:#ddd; }
+ body.dark .header { background:#222; }
+ body.dark #video { background:#000; }
+ body.dark .summary { color:#ccc; }
+ body.dark .chan-col { background:#1a1a1a; border-color:#333; }
+ body.dark .grid-col { background:#181818; }
+ body.dark .chan-header, body.dark .time-header-wrap { background:#222; border-color:#444; }
+ body.dark .time-cell { color:#bbb; border-color:#333; }
+ body.dark .chan-name { color:#fff; border-color:#333; }
+ body.dark .program { background:#3a3a3a; border-color:#555; color:#eee; }
+ body.dark .program.now { background:#2d5030; border-color:#47a447; }
+ body.dark .now-line { background:#0f0; }
+
+ /* Light theme */
+ body.light { background:#fff; color:#000; }
+ body.light .header { background:#222; }
+ body.light #video { background:#fff; }
+ body.light .summary { color:#000; }
+ body.light .chan-col { background:#f9f9f9; border-color:#ccc; }
+ body.light .grid-col { background:#fafafa; }
+ body.light .chan-header, body.light .time-header-wrap { background:#ddd; border-color:#bbb; }
+ body.light .time-cell { color:#000; border-color:#ccc; }
+ body.light .chan-name { color:#000; border-color:#ccc; }
+ body.light .program { background:#ddd; border-color:#aaa; color:#000; }
+ body.light .program.now { background:#cfe8cf; border-color:#090; }
+ body.light .now-line { background:#090; }
+
/* Retro AOL / CompuServe Theme */
body.retro-aol { background:#2f4f4f; color:#f0f0f0; font-family:"Tahoma","Arial",sans-serif; }
body.retro-aol .header { background:#004466; color:#ffcc00; border-bottom:2px solid #33cccc; }
@@ -106,6 +134,58 @@
body.retro-magazine select { border:1px solid #000; background:#fff; color:#000; }
body.retro-magazine button.danger { background:#000; color:#fff; }
body.retro-magazine button.danger:hover { background:#333; color:#fff; }
+
+ /* DirecTV Guide Theme */
+ body.directv { background:#001a66; color:#fff; font-family:"Segoe UI","Arial",sans-serif; }
+ body.directv .header { background:linear-gradient(to bottom,#1d72ff,#003a8c); border-bottom:2px solid #001f66; }
+ body.directv .header .links > a, body.directv .header .links > .dropdown > .dropbtn, body.directv .header .links > span, body.directv .header .links > div#clock { color:#ffffff !important; font-weight:bold !important; text-shadow:1px 1px 2px #000 !important; }
+ body.directv .header .links > a:hover, body.directv .header .links > .dropdown:hover > .dropbtn { background:#003f9e !important; color:#ffd802 !important; }
+ body.directv .dropdown-content, body.directv .submenu-content { background:#003a8c !important; border:1px solid #0070ff !important; box-shadow:0 4px 8px rgba(0,0,0,.4) !important; }
+ body.directv .dropdown-content a, body.directv .submenu-content li a { color:#ffffff !important; font-weight:bold !important; }
+ body.directv .dropdown-content a:hover, body.directv .submenu-content li a:hover { background:#0070ff !important; color:#fff !important; }
+ body.directv .dropdown-content .submenu > a { color:#fff !important; padding-right:28px !important; position:relative; }
+ body.directv .dropdown-content .submenu > a::after { content:"▸"; position:absolute; right:10px; top:50%; transform:translateY(-50%); color:#fff; }
+ body.directv .dropdown-content .submenu:hover > a { background:#0070ff !important; color:#fff !important; }
+ body.directv .summary, body.directv #program-info { background:linear-gradient(to bottom,#66b2ff,#003f9e); color:#fff; border:1px solid #004bdb; }
+ body.directv .time-header-wrap { background:#002b80; color:#d8ebff; border-bottom:2px solid #001f66; }
+ body.directv .time-cell { background:#002b80; color:#b9dcff; border-color:#001f66; font-weight:bold; }
+ body.directv .chan-col { background:#001f66; border-right:1px solid #004bdb; color:#fff; font-weight:bold; text-shadow:1px 1px 2px #000; }
+ body.directv .chan-header { background:linear-gradient(to bottom,#0b3b8c,#3c8dff); color:#fff; border-color:#003b91; }
+ body.directv .grid-col { background:#001f66; }
+ body.directv .program { background:#003a8c; border:1px solid #004bdb; color:#fff; border-radius:2px; }
+ body.directv .program.now { background:#ffd802; border:1px solid #caa600; color:#000; font-weight:bold; box-shadow:none; }
+ body.directv .program:hover { background:linear-gradient(to right,#1d67d9,#7fbfff); color:#fff; }
+ body.directv .now-line { background:#ffcc00; }
+ body.directv .footer { background:linear-gradient(to top,#001f66,#004bdb); color:#fff; border-top:2px solid #003580; padding:5px 10px; font-size:0.9em; }
+ body.directv .footer .dot-red { color:#ff3c3c; } body.directv .footer .dot-green { color:#00cc00; } body.directv .footer .dot-yellow { color:#ffd700; } body.directv .footer .dot-blue { color:#4ca9ff; }
+ body.directv #video { background:#000; border:2px solid #004bdb; box-shadow:0 0 6px rgba(0,0,0,0.6); }
+ body.directv #clock::before { content:"TV GUIDE"; display:inline-block; margin-right:10px; padding:3px 8px; background:#e41e26; color:#fff; font-weight:900; font-size:12px; line-height:1; border-radius:3px; border:1px solid rgba(255,255,255,.85); box-shadow:0 1px 2px rgba(0,0,0,.35); letter-spacing:.4px; vertical-align:middle; }
+
+
+ /* Comcast Guide Theme */
+ body.comcast { background:#001b50; color:#fff; font-family:"Segoe UI","Arial",sans-serif; }
+ body.comcast .header { background:linear-gradient(to bottom,#0055cc,#001b50); border-bottom:2px solid #003090; }
+ body.comcast .header .links > a, body.comcast .header .links > .dropdown > .dropbtn, body.comcast .header .links > span, body.comcast .header .links > div#clock { color:#ffffff !important; font-weight:bold !important; text-shadow:1px 1px 2px #000 !important; }
+ body.comcast .header .links > a:hover, body.comcast .header .links > .dropdown:hover > .dropbtn { background:#003890 !important; color:#ffcc00 !important; }
+ body.comcast .dropdown-content, body.comcast .submenu-content { background:#002a70 !important; border:1px solid #0044cc !important; box-shadow:0 4px 8px rgba(0,0,0,.4) !important; }
+ body.comcast .dropdown-content a, body.comcast .submenu-content li a { color:#ffffff !important; font-weight:bold !important; }
+ body.comcast .dropdown-content a:hover, body.comcast .submenu-content li a:hover { background:#0044cc !important; color:#fff !important; }
+ body.comcast .summary, body.comcast #program-info { background:linear-gradient(to bottom,#001b50,#003890); color:#fff; border:1px solid #003090; }
+ body.comcast .time-header-wrap { background:#003890; color:#bcd8ff; border-bottom:2px solid #002b80; }
+ body.comcast .time-cell { background:#003890; color:#ffffff; border-color:#002b80; font-weight:bold; }
+ body.comcast .chan-col { background:#001b50; border-right:1px solid #0044cc; color:#fff; font-weight:bold; text-shadow:1px 1px 2px #000; }
+ body.comcast .chan-header { background:#002a70; color:#fff; border-color:#0044cc; }
+ body.comcast .grid-col { background:#002a70; }
+ body.comcast .program { background:#003890; border:1px solid #0044cc; color:#fff; border-radius:2px; }
+ body.comcast .program.now { background:#ffffff; border:1px solid #cccccc; color:#000; font-weight:bold; }
+ body.comcast .program:hover { background:#0044cc; color:#fff; }
+ body.comcast .now-line { background:#ffcc00; }
+ body.comcast #video { background:#000; border:2px solid #0044cc; box-shadow:0 0 8px rgba(0,0,0,.6); }
+ body.comcast .footer { background:linear-gradient(to top,#001b50,#0044cc); color:#fff; border-top:2px solid #002b80; padding:5px 10px; font-size:0.9em; }
+ body.comcast .footer .dot-red { color:#ff3c3c; } body.comcast .footer .dot-green { color:#00cc00; } body.comcast .footer .dot-yellow { color:#ffd700; } body.comcast .footer .dot-blue { color:#4ca9ff; }
+ body.comcast #clock::before { content:"TV GUIDE"; display:inline-block; margin-right:10px; padding:3px 8px; background:#e41e26; color:#fff; font-weight:900; font-size:12px; line-height:1; border-radius:3px; border:1px solid rgba(255,255,255,.85); box-shadow:0 1px 2px rgba(0,0,0,.35); letter-spacing:.4px; vertical-align:middle; }
+
+
@@ -140,6 +220,8 @@
Dark
AOL / CompuServe
TV Guide Magazine
+ DirecTV
+ Comcast
@@ -180,7 +262,7 @@ Delete User
});
function setTheme(theme) {
const body = document.body;
- body.classList.remove("light", "dark", "retro-tvguide", "retro-aol", "retro-webtv", "retro-tvguide2000", "retro-magazine");
+ body.classList.remove("light", "dark", "retro-tvguide", "retro-aol", "retro-webtv", "retro-tvguide2000", "retro-magazine", "directv", "comcast");
body.classList.add(theme);
localStorage.setItem("theme", theme);
}
diff --git a/templates/guide.html b/templates/guide.html
index cc1ad11..5186435 100644
--- a/templates/guide.html
+++ b/templates/guide.html
@@ -208,6 +208,57 @@
body.retro-magazine .now-line { background:#000; height:3px; }
body.retro-magazine #current-tuner { color:#000000 !important; font-weight:bold; }
+ /* DirecTV Guide Theme */
+ body.directv { background:#001a66; color:#fff; font-family:"Segoe UI","Arial",sans-serif; }
+ body.directv .header { background:linear-gradient(to bottom,#1d72ff,#003a8c); border-bottom:2px solid #001f66; }
+ body.directv .header .links > a, body.directv .header .links > .dropdown > .dropbtn, body.directv .header .links > span, body.directv .header .links > div#clock { color:#ffffff !important; font-weight:bold !important; text-shadow:1px 1px 2px #000 !important; }
+ body.directv .header .links > a:hover, body.directv .header .links > .dropdown:hover > .dropbtn { background:#003f9e !important; color:#ffd802 !important; }
+ body.directv .dropdown-content, body.directv .submenu-content { background:#003a8c !important; border:1px solid #0070ff !important; box-shadow:0 4px 8px rgba(0,0,0,.4) !important; }
+ body.directv .dropdown-content a, body.directv .submenu-content li a { color:#ffffff !important; font-weight:bold !important; }
+ body.directv .dropdown-content a:hover, body.directv .submenu-content li a:hover { background:#0070ff !important; color:#fff !important; }
+ body.directv .dropdown-content .submenu > a { color:#fff !important; padding-right:28px !important; position:relative; }
+ body.directv .dropdown-content .submenu > a::after { content:"▸"; position:absolute; right:10px; top:50%; transform:translateY(-50%); color:#fff; }
+ body.directv .dropdown-content .submenu:hover > a { background:#0070ff !important; color:#fff !important; }
+ body.directv .summary, body.directv #program-info { background:linear-gradient(to bottom,#66b2ff,#003f9e); color:#fff; border:1px solid #004bdb; }
+ body.directv .time-header-wrap { background:#002b80; color:#d8ebff; border-bottom:2px solid #001f66; }
+ body.directv .time-cell { background:#002b80; color:#b9dcff; border-color:#001f66; font-weight:bold; }
+ body.directv .chan-col { background:#001f66; border-right:1px solid #004bdb; color:#fff; font-weight:bold; text-shadow:1px 1px 2px #000; }
+ body.directv .chan-header { background:linear-gradient(to bottom,#0b3b8c,#3c8dff); color:#fff; border-color:#003b91; }
+ body.directv .grid-col { background:#001f66; }
+ body.directv .program { background:#003a8c; border:1px solid #004bdb; color:#fff; border-radius:2px; }
+ body.directv .program.now { background:#ffd802; border:1px solid #caa600; color:#000; font-weight:bold; box-shadow:none; }
+ body.directv .program:hover { background:linear-gradient(to right,#1d67d9,#7fbfff); color:#fff; }
+ body.directv .now-line { background:#ffcc00; }
+ body.directv .footer { background:linear-gradient(to top,#001f66,#004bdb); color:#fff; border-top:2px solid #003580; padding:5px 10px; font-size:0.9em; }
+ body.directv .footer .dot-red { color:#ff3c3c; } body.directv .footer .dot-green { color:#00cc00; } body.directv .footer .dot-yellow { color:#ffd700; } body.directv .footer .dot-blue { color:#4ca9ff; }
+ body.directv #video { background:#000; border:2px solid #004bdb; box-shadow:0 0 6px rgba(0,0,0,0.6); }
+ body.directv #clock::before { content:"TV GUIDE"; display:inline-block; margin-right:10px; padding:3px 8px; background:#e41e26; color:#fff; font-weight:900; font-size:12px; line-height:1; border-radius:3px; border:1px solid rgba(255,255,255,.85); box-shadow:0 1px 2px rgba(0,0,0,.35); letter-spacing:.4px; vertical-align:middle; }
+
+
+ /* Comcast Guide Theme */
+ body.comcast { background:#001b50; color:#fff; font-family:"Segoe UI","Arial",sans-serif; }
+ body.comcast .header { background:linear-gradient(to bottom,#0055cc,#001b50); border-bottom:2px solid #003090; }
+ body.comcast .header .links > a, body.comcast .header .links > .dropdown > .dropbtn, body.comcast .header .links > span, body.comcast .header .links > div#clock { color:#ffffff !important; font-weight:bold !important; text-shadow:1px 1px 2px #000 !important; }
+ body.comcast .header .links > a:hover, body.comcast .header .links > .dropdown:hover > .dropbtn { background:#003890 !important; color:#ffcc00 !important; }
+ body.comcast .dropdown-content, body.comcast .submenu-content { background:#002a70 !important; border:1px solid #0044cc !important; box-shadow:0 4px 8px rgba(0,0,0,.4) !important; }
+ body.comcast .dropdown-content a, body.comcast .submenu-content li a { color:#ffffff !important; font-weight:bold !important; }
+ body.comcast .dropdown-content a:hover, body.comcast .submenu-content li a:hover { background:#0044cc !important; color:#fff !important; }
+ body.comcast .summary, body.comcast #program-info { background:linear-gradient(to bottom,#001b50,#003890); color:#fff; border:1px solid #003090; }
+ body.comcast .time-header-wrap { background:#003890; color:#bcd8ff; border-bottom:2px solid #002b80; }
+ body.comcast .time-cell { background:#003890; color:#ffffff; border-color:#002b80; font-weight:bold; }
+ body.comcast .chan-col { background:#001b50; border-right:1px solid #0044cc; color:#fff; font-weight:bold; text-shadow:1px 1px 2px #000; }
+ body.comcast .chan-header { background:#002a70; color:#fff; border-color:#0044cc; }
+ body.comcast .grid-col { background:#002a70; }
+ body.comcast .program { background:#003890; border:1px solid #0044cc; color:#fff; border-radius:2px; }
+ body.comcast .program.now { background:#ffffff; border:1px solid #cccccc; color:#000; font-weight:bold; }
+ body.comcast .program:hover { background:#0044cc; color:#fff; }
+ body.comcast .now-line { background:#ffcc00; }
+ body.comcast #video { background:#000; border:2px solid #0044cc; box-shadow:0 0 8px rgba(0,0,0,.6); }
+ body.comcast .footer { background:linear-gradient(to top,#001b50,#0044cc); color:#fff; border-top:2px solid #002b80; padding:5px 10px; font-size:0.9em; }
+ body.comcast .footer .dot-red { color:#ff3c3c; } body.comcast .footer .dot-green { color:#00cc00; } body.comcast .footer .dot-yellow { color:#ffd700; } body.comcast .footer .dot-blue { color:#4ca9ff; }
+ body.comcast #clock::before { content:"TV GUIDE"; display:inline-block; margin-right:10px; padding:3px 8px; background:#e41e26; color:#fff; font-weight:900; font-size:12px; line-height:1; border-radius:3px; border:1px solid rgba(255,255,255,.85); box-shadow:0 1px 2px rgba(0,0,0,.35); letter-spacing:.4px; vertical-align:middle; }
+
+
/* Placeholder when no guide data exists */
.program.no-guide {
font-style: italic;
@@ -256,6 +307,8 @@
MSN TV / WebTV
TV Guide Channel (2000) -->
TV Guide Magazine
+ DirecTV
+ Comcast
@@ -428,7 +481,7 @@ Program Info
function setTheme(theme) {
const body = document.body;
// Remove all possible theme classes
- body.classList.remove("light", "dark", "retro-tvguide", "retro-aol", "retro-webtv", "retro-tvguide2000", "retro-magazine");
+ body.classList.remove("light", "dark", "retro-tvguide", "retro-aol", "retro-webtv", "retro-tvguide2000", "retro-magazine", "directv", "comcast");
// Add the new one
body.classList.add(theme);
// Save it for next load
diff --git a/templates/logs.html b/templates/logs.html
index bfc3d96..ebd36a7 100644
--- a/templates/logs.html
+++ b/templates/logs.html
@@ -85,6 +85,34 @@
padding: 0;
}
+ /* Dark theme */
+ body.dark { background:#111; color:#ddd; }
+ body.dark .header { background:#222; }
+ body.dark #video { background:#000; }
+ body.dark .summary { color:#ccc; }
+ body.dark .chan-col { background:#1a1a1a; border-color:#333; }
+ body.dark .grid-col { background:#181818; }
+ body.dark .chan-header, body.dark .time-header-wrap { background:#222; border-color:#444; }
+ body.dark .time-cell { color:#bbb; border-color:#333; }
+ body.dark .chan-name { color:#fff; border-color:#333; }
+ body.dark .program { background:#3a3a3a; border-color:#555; color:#eee; }
+ body.dark .program.now { background:#2d5030; border-color:#47a447; }
+ body.dark .now-line { background:#0f0; }
+
+ /* Light theme */
+ body.light { background:#fff; color:#000; }
+ body.light .header { background:#222; }
+ body.light #video { background:#fff; }
+ body.light .summary { color:#000; }
+ body.light .chan-col { background:#f9f9f9; border-color:#ccc; }
+ body.light .grid-col { background:#fafafa; }
+ body.light .chan-header, body.light .time-header-wrap { background:#ddd; border-color:#bbb; }
+ body.light .time-cell { color:#000; border-color:#ccc; }
+ body.light .chan-name { color:#000; border-color:#ccc; }
+ body.light .program { background:#ddd; border-color:#aaa; color:#000; }
+ body.light .program.now { background:#cfe8cf; border-color:#090; }
+ body.light .now-line { background:#090; }
+
/* Retro AOL / CompuServe Theme */
body.retro-aol { background:#2f4f4f; color:#f0f0f0; font-family:"Tahoma","Arial",sans-serif; }
body.retro-aol .header { background:#004466; color:#ffcc00; border-bottom:2px solid #33cccc; }
@@ -108,6 +136,58 @@
body.retro-magazine th { background:#ddd; color:#000; border:1px solid #000; }
body.retro-magazine td { border:1px solid #000; }
+ /* DirecTV Guide Theme */
+ body.directv { background:#001a66; color:#fff; font-family:"Segoe UI","Arial",sans-serif; }
+ body.directv .header { background:linear-gradient(to bottom,#1d72ff,#003a8c); border-bottom:2px solid #001f66; }
+ body.directv .header .links > a, body.directv .header .links > .dropdown > .dropbtn, body.directv .header .links > span, body.directv .header .links > div#clock { color:#ffffff !important; font-weight:bold !important; text-shadow:1px 1px 2px #000 !important; }
+ body.directv .header .links > a:hover, body.directv .header .links > .dropdown:hover > .dropbtn { background:#003f9e !important; color:#ffd802 !important; }
+ body.directv .dropdown-content, body.directv .submenu-content { background:#003a8c !important; border:1px solid #0070ff !important; box-shadow:0 4px 8px rgba(0,0,0,.4) !important; }
+ body.directv .dropdown-content a, body.directv .submenu-content li a { color:#ffffff !important; font-weight:bold !important; }
+ body.directv .dropdown-content a:hover, body.directv .submenu-content li a:hover { background:#0070ff !important; color:#fff !important; }
+ body.directv .dropdown-content .submenu > a { color:#fff !important; padding-right:28px !important; position:relative; }
+ body.directv .dropdown-content .submenu > a::after { content:"▸"; position:absolute; right:10px; top:50%; transform:translateY(-50%); color:#fff; }
+ body.directv .dropdown-content .submenu:hover > a { background:#0070ff !important; color:#fff !important; }
+ body.directv .summary, body.directv #program-info { background:linear-gradient(to bottom,#66b2ff,#003f9e); color:#fff; border:1px solid #004bdb; }
+ body.directv .time-header-wrap { background:#002b80; color:#d8ebff; border-bottom:2px solid #001f66; }
+ body.directv .time-cell { background:#002b80; color:#b9dcff; border-color:#001f66; font-weight:bold; }
+ body.directv .chan-col { background:#001f66; border-right:1px solid #004bdb; color:#fff; font-weight:bold; text-shadow:1px 1px 2px #000; }
+ body.directv .chan-header { background:linear-gradient(to bottom,#0b3b8c,#3c8dff); color:#fff; border-color:#003b91; }
+ body.directv .grid-col { background:#001f66; }
+ body.directv .program { background:#003a8c; border:1px solid #004bdb; color:#fff; border-radius:2px; }
+ body.directv .program.now { background:#ffd802; border:1px solid #caa600; color:#000; font-weight:bold; box-shadow:none; }
+ body.directv .program:hover { background:linear-gradient(to right,#1d67d9,#7fbfff); color:#fff; }
+ body.directv .now-line { background:#ffcc00; }
+ body.directv .footer { background:linear-gradient(to top,#001f66,#004bdb); color:#fff; border-top:2px solid #003580; padding:5px 10px; font-size:0.9em; }
+ body.directv .footer .dot-red { color:#ff3c3c; } body.directv .footer .dot-green { color:#00cc00; } body.directv .footer .dot-yellow { color:#ffd700; } body.directv .footer .dot-blue { color:#4ca9ff; }
+ body.directv #video { background:#000; border:2px solid #004bdb; box-shadow:0 0 6px rgba(0,0,0,0.6); }
+ body.directv #clock::before { content:"TV GUIDE"; display:inline-block; margin-right:10px; padding:3px 8px; background:#e41e26; color:#fff; font-weight:900; font-size:12px; line-height:1; border-radius:3px; border:1px solid rgba(255,255,255,.85); box-shadow:0 1px 2px rgba(0,0,0,.35); letter-spacing:.4px; vertical-align:middle; }
+
+
+ /* Comcast Guide Theme */
+ body.comcast { background:#001b50; color:#fff; font-family:"Segoe UI","Arial",sans-serif; }
+ body.comcast .header { background:linear-gradient(to bottom,#0055cc,#001b50); border-bottom:2px solid #003090; }
+ body.comcast .header .links > a, body.comcast .header .links > .dropdown > .dropbtn, body.comcast .header .links > span, body.comcast .header .links > div#clock { color:#ffffff !important; font-weight:bold !important; text-shadow:1px 1px 2px #000 !important; }
+ body.comcast .header .links > a:hover, body.comcast .header .links > .dropdown:hover > .dropbtn { background:#003890 !important; color:#ffcc00 !important; }
+ body.comcast .dropdown-content, body.comcast .submenu-content { background:#002a70 !important; border:1px solid #0044cc !important; box-shadow:0 4px 8px rgba(0,0,0,.4) !important; }
+ body.comcast .dropdown-content a, body.comcast .submenu-content li a { color:#ffffff !important; font-weight:bold !important; }
+ body.comcast .dropdown-content a:hover, body.comcast .submenu-content li a:hover { background:#0044cc !important; color:#fff !important; }
+ body.comcast .summary, body.comcast #program-info { background:linear-gradient(to bottom,#001b50,#003890); color:#fff; border:1px solid #003090; }
+ body.comcast .time-header-wrap { background:#003890; color:#bcd8ff; border-bottom:2px solid #002b80; }
+ body.comcast .time-cell { background:#003890; color:#ffffff; border-color:#002b80; font-weight:bold; }
+ body.comcast .chan-col { background:#001b50; border-right:1px solid #0044cc; color:#fff; font-weight:bold; text-shadow:1px 1px 2px #000; }
+ body.comcast .chan-header { background:#002a70; color:#fff; border-color:#0044cc; }
+ body.comcast .grid-col { background:#002a70; }
+ body.comcast .program { background:#003890; border:1px solid #0044cc; color:#fff; border-radius:2px; }
+ body.comcast .program.now { background:#ffffff; border:1px solid #cccccc; color:#000; font-weight:bold; }
+ body.comcast .program:hover { background:#0044cc; color:#fff; }
+ body.comcast .now-line { background:#ffcc00; }
+ body.comcast #video { background:#000; border:2px solid #0044cc; box-shadow:0 0 8px rgba(0,0,0,.6); }
+ body.comcast .footer { background:linear-gradient(to top,#001b50,#0044cc); color:#fff; border-top:2px solid #002b80; padding:5px 10px; font-size:0.9em; }
+ body.comcast .footer .dot-red { color:#ff3c3c; } body.comcast .footer .dot-green { color:#00cc00; } body.comcast .footer .dot-yellow { color:#ffd700; } body.comcast .footer .dot-blue { color:#4ca9ff; }
+ body.comcast #clock::before { content:"TV GUIDE"; display:inline-block; margin-right:10px; padding:3px 8px; background:#e41e26; color:#fff; font-weight:900; font-size:12px; line-height:1; border-radius:3px; border:1px solid rgba(255,255,255,.85); box-shadow:0 1px 2px rgba(0,0,0,.35); letter-spacing:.4px; vertical-align:middle; }
+
+
+
@@ -141,6 +221,8 @@
Dark
AOL / CompuServe
TV Guide Magazine
+ DirecTV
+ Comcast
@@ -281,7 +363,7 @@ User Activity Logs
function setTheme(theme) {
const body = document.body;
- body.classList.remove("light", "dark", "retro-tvguide", "retro-aol", "retro-webtv", "retro-tvguide2000", "retro-magazine");
+ body.classList.remove("light", "dark", "retro-tvguide", "retro-aol", "retro-webtv", "retro-tvguide2000", "retro-magazine", "directv", "comcast");
body.classList.add(theme);
localStorage.setItem("theme", theme);
}
From f37abdec8d10be7f2c82b728f918715eaf0403f6 Mon Sep 17 00:00:00 2001
From: thehack904 <35552907+thehack904@users.noreply.github.com>
Date: Wed, 15 Oct 2025 21:51:17 -0500
Subject: [PATCH 2/2] v.3.3.0 Update
---
CHANGELOG.md | 29 +++++++++++++++++++++++------
README.md | 7 +++++--
app.py | 2 +-
install.sh | 2 +-
install_windows.ps1 | 2 +-
retroiptv_rpi.sh | 2 +-
uninstall.sh | 2 +-
uninstall_windows.ps1 | 2 +-
8 files changed, 34 insertions(+), 14 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 30a0bda..80a1183 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -14,7 +14,25 @@ This project follows [Semantic Versioning](https://semver.org/).
---
-## [v3.2.0] - 2025-10-11
+## v3.3.0 - 2025-10-15
+### Added
+
+- Introduced **Comcast Theme** — a faithful recreation of the mid-2000s Comcast digital cable guide.
+ - Authentic deep-blue gradient backgrounds and bright blue grid tones.
+ - White-on-blue typography and yellow “Now Playing” program highlight.
+ - Red “TV Guide” badge in the top-right corner for a nostalgic touch.
+ - Refined dropdown and submenu styling to match the original Comcast on-screen menu look.
+
+- Updated **DirecTV Theme** — redesigned for accuracy based on live reference captures.
+ - Corrected deep-blue gradient palette (`#001a66 → #003a8c`) with crisp white text.
+ - Reworked highlight color for active program tiles (`#ffd802`).
+ - Adjusted gradients and contrast in the header, info panel, and time bar for better readability.
+ - Clean white-and-blue hover effects with authentic DirecTV brightness and contrast levels.
+ - Added matching **red “TV Guide” badge** for uniform branding with Comcast.
+
+---
+
+## v3.2.0 - 2025-10-11
### Added
- **Containerization & TrueNAS Deployment Support**
- Added official Dockerfile and `docker-compose.yml` for cross‑platform container deployments.
@@ -32,6 +50,7 @@ This project follows [Semantic Versioning](https://semver.org/).
### Fixed
- Corrected GHCR tag formatting for TrueNAS (eliminated `:latest:latest` errors).
- Fixed workflow permissions with explicit `packages: write` and PAT authentication.
+
---
## v3.1.0 - 2025-10-09
@@ -83,10 +102,8 @@ This project follows [Semantic Versioning](https://semver.org/).
- Prevented guide from displaying outdated EPG after tuner change.
- Corrected case where missing XML data produced empty grid.
-
---
-
## [3.0.0] - 2025-10-03
### Added
- **Windows Support**:
@@ -115,6 +132,8 @@ This project follows [Semantic Versioning](https://semver.org/).
- Consistent logging of user agreement and installer actions.
- Ensured firewall rule removal on Windows during uninstall.
+---
+
## [2.3.2] - 2025-09-26
### Added
- Introduced unified **Themes submenu** (Light, Dark, AOL/CompuServe, TV Guide Magazine) across all admin and user pages.
@@ -190,9 +209,7 @@ This project follows [Semantic Versioning](https://semver.org/).
- Fixed alignment of tuner forms with consistent dropdowns and validation.
- Ensured flash messages and logging work consistently across all tuner operations.
-
-
-## [v2.0.0] – 2025-09-24
+## [v2.0.0] 2025-09-24
### Added
- Tuner URL validation: new validate_tuner_url() function checks XML/M3U inputs before saving.
- Detects invalid/empty URLs, unresolvable hostnames, and distinguishes between public vs. private IPs.
diff --git a/README.md b/README.md
index 383ba19..41a0afc 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
-
+
@@ -100,7 +100,9 @@ Access the web interface at:
- Light
- Dark
- AOL/CompuServe
- - TV Guide Magazine
+ - TV Guide Magazine
+ - DirecTV (v.3.3.0)
+ - Comcast (v.3.3.0)
- Theme persistence stored in browser localStorage, applied instantly across all pages.
- **About Page under Settings** — shows version, Python, OS, uptime, and paths.
- **Login Page Redesign (v3.0.1)**:
@@ -124,6 +126,7 @@ Access the web interface at:
| Version | Date | Key Features |
|----------|------|---------------|
+| **v3.3.0** | 2025-10-15 | Add Themes DirecTV / Comcast |
| **v3.2.0** | 2025-10-11 | Containerized Deployment / TrueNAS Scale App installer |
| **v3.1.0** | 2025-10-09 | Raspberry Pi installer, verified GPU setup, improved HTTP service check |
| **v3.0.1** | 2025-10-07 | EPG fallback system, tuner refresh fix, login redesign |
diff --git a/app.py b/app.py
index cac8920..5d0a800 100644
--- a/app.py
+++ b/app.py
@@ -1,4 +1,4 @@
-APP_VERSION = "v3.2.0"
+APP_VERSION = "v3.3.0"
APP_RELEASE_DATE = "2025-10-11"
from flask import Flask, render_template, request, redirect, url_for, flash
diff --git a/install.sh b/install.sh
index 178ea1f..efdf675 100644
--- a/install.sh
+++ b/install.sh
@@ -1,7 +1,7 @@
#!/bin/bash
set -e
-VERSION="3.2.0" # RetroIPTVGuide installer version
+VERSION="3.3.0"
# RetroIPTVGuide Debian/Ubuntu Installer
# License: CC BY-NC-SA 4.0
TIMESTAMP=$(date +"%Y-%m-%d_%H-%M-%S")
diff --git a/install_windows.ps1 b/install_windows.ps1
index e1941b4..d517c07 100644
--- a/install_windows.ps1
+++ b/install_windows.ps1
@@ -1,4 +1,4 @@
-$VERSION = "3.2.0"
+$VERSION = "3.3.0"
<#
RetroIPTVGuide Windows Installer
Clean version with only prerequisite checks and service setup
diff --git a/retroiptv_rpi.sh b/retroiptv_rpi.sh
index 16c8150..6bca85a 100644
--- a/retroiptv_rpi.sh
+++ b/retroiptv_rpi.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-VERSION="3.2.0" # RetroIPTVGuide Raspberry Pi installer version
+VERSION="3.3.0"
# RetroIPTVGuide Raspberry Pi Installer (Headless, Pi3/4/5)
# Installs to /home/iptv/iptv-server for consistency with Debian/Windows
# Logs to /var/log/retroiptvguide/install-YYYYMMDD-HHMMSS.log
diff --git a/uninstall.sh b/uninstall.sh
index c89c69e..a03e8ee 100644
--- a/uninstall.sh
+++ b/uninstall.sh
@@ -1,4 +1,4 @@
-VERSION="3.2.0"
+VERSION="3.3.0"
#!/usr/bin/env bash
# RetroIPTVGuide uninstall script
# Run with sudo on Linux; run from Administrator shell on Windows
diff --git a/uninstall_windows.ps1 b/uninstall_windows.ps1
index 8971eb7..4901ef5 100644
--- a/uninstall_windows.ps1
+++ b/uninstall_windows.ps1
@@ -1,4 +1,4 @@
-$VERSION = "3.2.0"
+$VERSION = "3.3.0"
# RetroIPTVGuide Windows Uninstaller
# ==================================