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 @@

    - Version + Version GHCR @@ -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 # ==================================