mirror of
https://github.com/Dispatcharr/Dispatcharr.git
synced 2026-01-23 02:35:14 +00:00
Enhancement: Add a {time} and {time24} output for better output formatting of the time.
This commit is contained in:
parent
dee672287b
commit
fe540045fc
2 changed files with 37 additions and 11 deletions
|
|
@ -494,6 +494,32 @@ def generate_custom_dummy_programs(channel_id, channel_name, now, num_days, cust
|
|||
|
||||
# Merge title groups, time groups, and date groups for template formatting
|
||||
all_groups = {**groups, **time_groups, **date_groups}
|
||||
|
||||
# Add formatted time strings for better display (handles minutes intelligently)
|
||||
if time_info:
|
||||
hour_24 = time_info['hour']
|
||||
minute = time_info['minute']
|
||||
|
||||
# Format 24-hour time string - only include minutes if non-zero
|
||||
if minute > 0:
|
||||
all_groups['time24'] = f"{hour_24}:{minute:02d}"
|
||||
else:
|
||||
all_groups['time24'] = f"{hour_24:02d}:00"
|
||||
|
||||
# Convert 24-hour to 12-hour format for {time} placeholder
|
||||
# Note: hour_24 is ALWAYS in 24-hour format at this point (converted earlier if needed)
|
||||
ampm = 'AM' if hour_24 < 12 else 'PM'
|
||||
hour_12 = hour_24
|
||||
if hour_24 == 0:
|
||||
hour_12 = 12
|
||||
elif hour_24 > 12:
|
||||
hour_12 = hour_24 - 12
|
||||
|
||||
# Format 12-hour time string - only include minutes if non-zero
|
||||
if minute > 0:
|
||||
all_groups['time'] = f"{hour_12}:{minute:02d} {ampm}"
|
||||
else:
|
||||
all_groups['time'] = f"{hour_12} {ampm}"
|
||||
|
||||
# Generate programs
|
||||
programs = []
|
||||
|
|
|
|||
|
|
@ -402,7 +402,7 @@ const DummyEPGForm = ({ epg, isOpen, onClose }) => {
|
|||
id="title_template"
|
||||
name="title_template"
|
||||
label="Title Template"
|
||||
description="Format the EPG title using extracted groups. Example: {league} - {team1} vs {team2} @ {hour}:{minute}{ampm}"
|
||||
description="Format the EPG title using extracted groups. Use {time} (12-hour: '10 PM') or {time24} (24-hour: '22:00'). Example: {league} - {team1} vs {team2} @ {time}"
|
||||
placeholder="{league} - {team1} vs {team2}"
|
||||
value={titleTemplate}
|
||||
onChange={(e) => {
|
||||
|
|
@ -416,8 +416,8 @@ const DummyEPGForm = ({ epg, isOpen, onClose }) => {
|
|||
id="description_template"
|
||||
name="description_template"
|
||||
label="Description Template"
|
||||
description="Format the EPG description using extracted groups. Example: Watch {team1} take on {team2} at {hour}:{minute}{ampm}!"
|
||||
placeholder="Watch {team1} take on {team2} in this exciting {league} matchup at {hour}:{minute}{ampm}!"
|
||||
description="Format the EPG description using extracted groups. Use {time} (12-hour) or {time24} (24-hour). Example: Watch {team1} take on {team2} at {time}!"
|
||||
placeholder="Watch {team1} take on {team2} in this exciting {league} matchup at {time}!"
|
||||
minRows={2}
|
||||
value={descriptionTemplate}
|
||||
onChange={(e) => {
|
||||
|
|
@ -446,8 +446,8 @@ const DummyEPGForm = ({ epg, isOpen, onClose }) => {
|
|||
id="upcoming_title_template"
|
||||
name="upcoming_title_template"
|
||||
label="Upcoming Title Template"
|
||||
description="Title for programs before the event starts. Example: Coming Up: {team1} vs {team2}"
|
||||
placeholder="Coming Up: {team1} vs {team2}"
|
||||
description="Title for programs before the event starts. Use {time} (12-hour) or {time24} (24-hour). Example: {team1} vs {team2} starting at {time}."
|
||||
placeholder="{team1} vs {team2} starting at {time}."
|
||||
value={upcomingTitleTemplate}
|
||||
onChange={(e) => {
|
||||
const value = e.target.value;
|
||||
|
|
@ -463,8 +463,8 @@ const DummyEPGForm = ({ epg, isOpen, onClose }) => {
|
|||
id="upcoming_description_template"
|
||||
name="upcoming_description_template"
|
||||
label="Upcoming Description Template"
|
||||
description="Description for programs before the event. Example: {league} game starts soon - {team1} vs {team2}"
|
||||
placeholder="{league} game starts soon - {team1} vs {team2}"
|
||||
description="Description for programs before the event. Use {time} (12-hour) or {time24} (24-hour). Example: Upcoming: Watch the {league} match up where the {team1} take on the {team2} at {time}!"
|
||||
placeholder="Upcoming: Watch the {league} match up where the {team1} take on the {team2} at {time}!"
|
||||
minRows={2}
|
||||
value={upcomingDescriptionTemplate}
|
||||
onChange={(e) => {
|
||||
|
|
@ -481,8 +481,8 @@ const DummyEPGForm = ({ epg, isOpen, onClose }) => {
|
|||
id="ended_title_template"
|
||||
name="ended_title_template"
|
||||
label="Ended Title Template"
|
||||
description="Title for programs after the event has ended. Example: Game Over: {team1} vs {team2}"
|
||||
placeholder="Game Over: {team1} vs {team2}"
|
||||
description="Title for programs after the event has ended. Use {time} (12-hour) or {time24} (24-hour). Example: {team1} vs {team2} started at {time}."
|
||||
placeholder="{team1} vs {team2} started at {time}."
|
||||
value={endedTitleTemplate}
|
||||
onChange={(e) => {
|
||||
const value = e.target.value;
|
||||
|
|
@ -498,8 +498,8 @@ const DummyEPGForm = ({ epg, isOpen, onClose }) => {
|
|||
id="ended_description_template"
|
||||
name="ended_description_template"
|
||||
label="Ended Description Template"
|
||||
description="Description for programs after the event. Example: {league} game has ended - {team1} vs {team2}"
|
||||
placeholder="{league} game has ended - {team1} vs {team2}"
|
||||
description="Description for programs after the event. Use {time} (12-hour) or {time24} (24-hour). Example: The {league} match between {team1} and {team2} started at {time}."
|
||||
placeholder="The {league} match between {team1} and {team2} started at {time}."
|
||||
minRows={2}
|
||||
value={endedDescriptionTemplate}
|
||||
onChange={(e) => {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue