Spaces:
Running
Running
Update app.R
Browse files
app.R
CHANGED
|
@@ -760,12 +760,27 @@ calculate_leaderboards <- function(df, team_meta_df = team_meta) {
|
|
| 760 |
}
|
| 761 |
|
| 762 |
get_logo <- function(team_abbr) {
|
| 763 |
-
|
| 764 |
-
|
| 765 |
-
|
| 766 |
-
|
| 767 |
-
|
| 768 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 769 |
|
| 770 |
# Game Info
|
| 771 |
stadium <- if ("Stadium" %in% names(df)) unique(na.omit(df$Stadium))[1] else "Unknown"
|
|
@@ -773,21 +788,29 @@ calculate_leaderboards <- function(df, team_meta_df = team_meta) {
|
|
| 773 |
|
| 774 |
league <- if ("League" %in% names(df)) unique(na.omit(df$League))[1] else ""
|
| 775 |
|
| 776 |
-
|
| 777 |
-
|
| 778 |
-
|
| 779 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 780 |
if (grepl("^\\d{4}-\\d{1,2}-\\d{1,2}", raw_date)) {
|
| 781 |
as.Date(raw_date, format = "%Y-%m-%d")
|
| 782 |
} else if (grepl("^\\d{1,2}/\\d{1,2}/\\d{4}", raw_date)) {
|
| 783 |
as.Date(raw_date, format = "%m/%d/%Y")
|
|
|
|
|
|
|
| 784 |
} else {
|
| 785 |
as.Date(raw_date)
|
| 786 |
}
|
| 787 |
-
}
|
| 788 |
-
|
| 789 |
-
} else format(Sys.Date(), "%m/%d/%Y")
|
| 790 |
|
|
|
|
|
|
|
|
|
|
| 791 |
# Calculate final score from RunsScored
|
| 792 |
teams <- unique(c(df$BatterTeam, df$PitcherTeam))
|
| 793 |
teams <- teams[!is.na(teams)]
|
|
|
|
| 760 |
}
|
| 761 |
|
| 762 |
get_logo <- function(team_abbr) {
|
| 763 |
+
if (is.null(team_meta_df) || is.null(team_abbr) || is.na(team_abbr) || team_abbr == "") return("")
|
| 764 |
+
# Try exact match first
|
| 765 |
+
|
| 766 |
+
idx <- which(team_meta_df$team_abbr == team_abbr)
|
| 767 |
+
if (length(idx) > 0) return(team_meta_df$BTeamLogo[idx[1]])
|
| 768 |
+
# Try case-insensitive match
|
| 769 |
+
idx <- which(tolower(team_meta_df$team_abbr) == tolower(team_abbr))
|
| 770 |
+
if (length(idx) > 0) return(team_meta_df$BTeamLogo[idx[1]])
|
| 771 |
+
""
|
| 772 |
+
}
|
| 773 |
+
|
| 774 |
+
get_team_name <- function(abbr) {
|
| 775 |
+
if (is.null(team_meta_df) || is.null(abbr) || is.na(abbr) || abbr == "") return(abbr)
|
| 776 |
+
# Try exact match first
|
| 777 |
+
idx <- which(team_meta_df$team_abbr == abbr)
|
| 778 |
+
if (length(idx) > 0) return(team_meta_df$BTeamName[idx[1]])
|
| 779 |
+
# Try case-insensitive match
|
| 780 |
+
idx <- which(tolower(team_meta_df$team_abbr) == tolower(abbr))
|
| 781 |
+
if (length(idx) > 0) return(team_meta_df$BTeamName[idx[1]])
|
| 782 |
+
abbr
|
| 783 |
+
}
|
| 784 |
|
| 785 |
# Game Info
|
| 786 |
stadium <- if ("Stadium" %in% names(df)) unique(na.omit(df$Stadium))[1] else "Unknown"
|
|
|
|
| 788 |
|
| 789 |
league <- if ("League" %in% names(df)) unique(na.omit(df$League))[1] else ""
|
| 790 |
|
| 791 |
+
game_date <- if ("Date" %in% names(df)) {
|
| 792 |
+
raw_date <- unique(na.omit(df$Date))[1]
|
| 793 |
+
parsed <- tryCatch({
|
| 794 |
+
# Handle if already a Date object
|
| 795 |
+
if (inherits(raw_date, "Date")) {
|
| 796 |
+
raw_date
|
| 797 |
+
} else {
|
| 798 |
+
raw_date <- as.character(raw_date)
|
| 799 |
if (grepl("^\\d{4}-\\d{1,2}-\\d{1,2}", raw_date)) {
|
| 800 |
as.Date(raw_date, format = "%Y-%m-%d")
|
| 801 |
} else if (grepl("^\\d{1,2}/\\d{1,2}/\\d{4}", raw_date)) {
|
| 802 |
as.Date(raw_date, format = "%m/%d/%Y")
|
| 803 |
+
} else if (grepl("^\\d{1,2}/\\d{1,2}/\\d{2}$", raw_date)) {
|
| 804 |
+
as.Date(raw_date, format = "%m/%d/%y")
|
| 805 |
} else {
|
| 806 |
as.Date(raw_date)
|
| 807 |
}
|
| 808 |
+
}
|
| 809 |
+
}, error = function(e) NA)
|
|
|
|
| 810 |
|
| 811 |
+
if (is.na(parsed)) "N/A" else format(parsed, "%m/%d/%Y")
|
| 812 |
+
} else "N/A"
|
| 813 |
+
|
| 814 |
# Calculate final score from RunsScored
|
| 815 |
teams <- unique(c(df$BatterTeam, df$PitcherTeam))
|
| 816 |
teams <- teams[!is.na(teams)]
|