Change time zone to central and remove double timezone listing

This commit is contained in:
phlux 2024-11-11 12:25:19 -05:00
parent fa7185ec01
commit 551f077158
3 changed files with 53 additions and 4 deletions

28
Dockerfile Normal file
View File

@ -0,0 +1,28 @@
# Use the official Go 1.23 image for building the application
FROM golang:1.23-alpine AS builder
# Set the working directory inside the container
WORKDIR /app
# Copy the Go modules manifest and download dependencies
COPY go.mod go.sum ./
RUN go mod download
# Copy the rest of the application source code
COPY . .
# Build the Go application from the appropriate directory inside 'cmd'
RUN go build -o discord-scores-bot ./cmd/main.go
# Create a minimal runtime image
FROM alpine:latest
RUN apk --no-cache add ca-certificates
# Set the working directory
WORKDIR /root/
# Copy the built Go binaries from the builder stage
COPY --from=builder /app/discord-scores-bot .
# Run the bot (use separate Dockerfiles if needed for distinct deployments)
CMD ["./discord-scores-bot"]

View File

@ -1,6 +1,6 @@
package config
var BotToken = " "
var BotToken = "REDACTED"
var CustomTeamNames = map[string]string{
"UGA": "Georgia",

View File

@ -7,6 +7,7 @@ import (
"log"
"net/http"
"strings"
"time"
"unicode"
)
@ -32,6 +33,22 @@ type Team struct {
} `json:"names"`
}
// Convert time from Eastern to Central
func convertToCentralTime(easternTime string) (string, error) {
parsedTime, err := time.Parse("03:04PM ET", easternTime)
if err != nil {
return "", fmt.Errorf("error parsing time: %w", err)
}
centralLocation, err := time.LoadLocation("America/Chicago")
if err != nil {
return "", fmt.Errorf("error loading Central Time location: %w", err)
}
centralTime := parsedTime.In(centralLocation)
return centralTime.Format("03:04 PM"), nil
}
func GetGameInfo(teamName string) string {
teamName = strings.TrimSpace(teamName)
week := ""
@ -90,8 +107,13 @@ func GetGameInfo(teamName string) string {
game.Game.Home.Names.Short, game.Game.Home.Score,
period, game.Game.ContestClock)
} else if game.Game.GameState == "pre" {
gameInfo = fmt.Sprintf("Upcoming: %s @ %s on %s at %s ET",
game.Game.Away.Names.Short, game.Game.Home.Names.Short, game.Game.StartDate, game.Game.StartTime)
centralTime, err := convertToCentralTime(game.Game.StartTime)
if err != nil {
log.Printf("Time conversion error: %v", err)
centralTime = game.Game.StartTime // Fall back to the original if conversion fails
}
gameInfo = fmt.Sprintf("Upcoming: %s @ %s on %s at %s CT",
game.Game.Away.Names.Short, game.Game.Home.Names.Short, game.Game.StartDate, centralTime)
} else if game.Game.GameState == "final" {
gameInfo = fmt.Sprintf("Final: %s: **%s** %s: **%s**",
game.Game.Away.Names.Short, game.Game.Away.Score,
@ -108,4 +130,3 @@ func GetGameInfo(teamName string) string {
return "No game found for the specified team."
}