| 
									
										
										
										
											2024-07-20 02:42:35 +00:00
										 |  |  | /* | 
					
						
							|  |  |  | Copyright © 2024 filifa | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | This program is free software: you can redistribute it and/or modify | 
					
						
							|  |  |  | it under the terms of the GNU General Public License as published by | 
					
						
							|  |  |  | the Free Software Foundation, either version 3 of the License, or | 
					
						
							|  |  |  | (at your option) any later version. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | This program is distributed in the hope that it will be useful, | 
					
						
							|  |  |  | but WITHOUT ANY WARRANTY; without even the implied warranty of | 
					
						
							|  |  |  | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
					
						
							|  |  |  | GNU General Public License for more details. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | You should have received a copy of the GNU General Public License | 
					
						
							|  |  |  | along with this program. If not, see <http://www.gnu.org/licenses/>.
 | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | package cmd | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import ( | 
					
						
							|  |  |  | 	"fmt" | 
					
						
							|  |  |  | 	"log" | 
					
						
							|  |  |  | 	"strconv" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	"github.com/spf13/cobra" | 
					
						
							|  |  |  | 	"scm.dairydemon.net/filifa/mlblive/cmd/internal/statsapi" | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-07-28 20:16:01 +00:00
										 |  |  | var date string | 
					
						
							| 
									
										
										
										
											2024-07-28 22:35:56 +00:00
										 |  |  | var team teamFlag | 
					
						
							| 
									
										
										
										
											2024-07-20 02:42:35 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-07-28 22:35:56 +00:00
										 |  |  | var sport string | 
					
						
							|  |  |  | var sportIDs = map[string]statsapi.SportID{ | 
					
						
							|  |  |  | 	"mlb":        statsapi.MLB, | 
					
						
							| 
									
										
										
										
											2024-07-28 22:54:40 +00:00
										 |  |  | 	"aaa":        statsapi.TripleA, | 
					
						
							|  |  |  | 	"aa":         statsapi.DoubleA, | 
					
						
							| 
									
										
										
										
											2024-07-28 22:35:56 +00:00
										 |  |  | 	"higha":      statsapi.HighA, | 
					
						
							| 
									
										
										
										
											2024-07-28 22:54:40 +00:00
										 |  |  | 	"a":          statsapi.SingleA, | 
					
						
							| 
									
										
										
										
											2024-07-28 22:35:56 +00:00
										 |  |  | 	"rookie":     statsapi.Rookie, | 
					
						
							|  |  |  | 	"winter":     statsapi.Winter, | 
					
						
							|  |  |  | 	"milb":       statsapi.MILB, | 
					
						
							|  |  |  | 	"indie":      statsapi.Independent, | 
					
						
							|  |  |  | 	"negro":      statsapi.Negro, | 
					
						
							| 
									
										
										
										
											2024-07-28 22:59:47 +00:00
										 |  |  | 	"kbo":        statsapi.Korea, | 
					
						
							| 
									
										
										
										
											2024-07-28 22:35:56 +00:00
										 |  |  | 	"npb":        statsapi.NPB, | 
					
						
							|  |  |  | 	"int":        statsapi.International, | 
					
						
							|  |  |  | 	"int18u":     statsapi.International18U, | 
					
						
							|  |  |  | 	"int16u":     statsapi.International16U, | 
					
						
							|  |  |  | 	"intamateur": statsapi.InternationalAmateur, | 
					
						
							|  |  |  | 	"college":    statsapi.College, | 
					
						
							|  |  |  | 	"hs":         statsapi.HighSchool, | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-07-20 02:42:35 +00:00
										 |  |  | func schedule(cmd *cobra.Command, args []string) { | 
					
						
							| 
									
										
										
										
											2024-07-28 22:35:56 +00:00
										 |  |  | 	var teamId string | 
					
						
							| 
									
										
										
										
											2024-07-20 03:14:09 +00:00
										 |  |  | 	if team == "" { | 
					
						
							| 
									
										
										
										
											2024-07-28 22:35:56 +00:00
										 |  |  | 		teamId = string(team) | 
					
						
							|  |  |  | 	} else { | 
					
						
							|  |  |  | 		teamId = strconv.Itoa(int(teamIDs[string(team)])) | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	var sportId string | 
					
						
							|  |  |  | 	if sport == "" { | 
					
						
							|  |  |  | 		sportId = string(sport) | 
					
						
							| 
									
										
										
										
											2024-07-20 03:14:09 +00:00
										 |  |  | 	} else { | 
					
						
							| 
									
										
										
										
											2024-07-28 22:35:56 +00:00
										 |  |  | 		sportId = strconv.Itoa(int(sportIDs[sport])) | 
					
						
							| 
									
										
										
										
											2024-07-20 03:14:09 +00:00
										 |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-07-28 22:35:56 +00:00
										 |  |  | 	sched, err := statsapi.RequestSchedule(sportId, teamId, date) | 
					
						
							| 
									
										
										
										
											2024-07-20 02:42:35 +00:00
										 |  |  | 	if err != nil { | 
					
						
							|  |  |  | 		log.Fatal(err) | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	fmt.Println(string(sched)) | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // scheduleCmd represents the schedule command
 | 
					
						
							|  |  |  | var scheduleCmd = &cobra.Command{ | 
					
						
							|  |  |  | 	Use:   "schedule", | 
					
						
							| 
									
										
										
										
											2024-07-29 02:34:11 +00:00
										 |  |  | 	Short: "Fetch daily schedules", | 
					
						
							|  |  |  | 	Long:  `Fetch a day's schedule for the whole league or a specific team.`, | 
					
						
							| 
									
										
										
										
											2024-07-20 17:30:13 +00:00
										 |  |  | 	Args:  cobra.NoArgs, | 
					
						
							| 
									
										
										
										
											2024-07-20 03:03:45 +00:00
										 |  |  | 	Run:   schedule, | 
					
						
							| 
									
										
										
										
											2024-07-20 02:42:35 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func init() { | 
					
						
							|  |  |  | 	rootCmd.AddCommand(scheduleCmd) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// Here you will define your flags and configuration settings.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// Cobra supports Persistent Flags which will work for this command
 | 
					
						
							|  |  |  | 	// and all subcommands, e.g.:
 | 
					
						
							|  |  |  | 	// scheduleCmd.PersistentFlags().String("foo", "", "A help for foo")
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// Cobra supports local flags which will only run when this command
 | 
					
						
							|  |  |  | 	// is called directly, e.g.:
 | 
					
						
							| 
									
										
										
										
											2024-07-29 00:49:10 +00:00
										 |  |  | 	scheduleCmd.Flags().VarP(&team, "team", "t", "team to get schedule for") | 
					
						
							| 
									
										
										
										
											2024-07-28 20:16:01 +00:00
										 |  |  | 	scheduleCmd.Flags().StringVarP(&date, "date", "d", "", "date to get schedule for (YYYY-MM-DD)") | 
					
						
							| 
									
										
										
										
											2024-07-29 00:49:10 +00:00
										 |  |  | 	scheduleCmd.Flags().StringVarP(&sport, "sport", "s", "mlb", "sport to get schedule for") | 
					
						
							| 
									
										
										
										
											2024-07-20 02:42:35 +00:00
										 |  |  | } |