mirror of
https://github.com/Xevion/banner.git
synced 2025-12-09 12:06:32 -06:00
Add proper meeting type handling with place/time stringification fns
This commit is contained in:
@@ -93,6 +93,7 @@ func SearchCommandHandler(session *discordgo.Session, interaction *discordgo.Int
|
||||
professorLink := fmt.Sprintf("[%s](https://google.com)", displayName)
|
||||
|
||||
identifierText := fmt.Sprintf("%s %s (CRN %s)\n%s", categoryLink, classLink, course.CourseReferenceNumber, professorLink)
|
||||
meetings := course.MeetingsFaculty[0]
|
||||
|
||||
fields = append(fields, &discordgo.MessageEmbedField{
|
||||
Name: "Identifier",
|
||||
@@ -104,7 +105,7 @@ func SearchCommandHandler(session *discordgo.Session, interaction *discordgo.Int
|
||||
Inline: true,
|
||||
}, &discordgo.MessageEmbedField{
|
||||
Name: "Meeting Time",
|
||||
Value: "MWF 11AM-12:15PM",
|
||||
Value: meetings.String(),
|
||||
Inline: true,
|
||||
},
|
||||
)
|
||||
|
||||
44
types.go
44
types.go
@@ -1,6 +1,7 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strconv"
|
||||
"time"
|
||||
|
||||
@@ -55,6 +56,49 @@ type MeetingTimeResponse struct {
|
||||
Term string `json:"term"`
|
||||
}
|
||||
|
||||
func (m *MeetingTimeResponse) String() string {
|
||||
switch m.MeetingTime.MeetingType {
|
||||
case "HB":
|
||||
return fmt.Sprintf("%s\nHybrid %s", m.TimeString(), m.PlaceString())
|
||||
case "H2":
|
||||
return fmt.Sprintf("%s\nHybrid %s", m.TimeString(), m.PlaceString())
|
||||
case "H1":
|
||||
return fmt.Sprintf("%s\nHybrid %s", m.TimeString(), m.PlaceString())
|
||||
case "OS":
|
||||
return fmt.Sprintf("%s\nOnline Only", m.TimeString())
|
||||
case "OA":
|
||||
return "No Time\nOnline Asynchronous"
|
||||
case "OH":
|
||||
return fmt.Sprintf("%s\nOnline Partial", m.TimeString())
|
||||
case "ID":
|
||||
return "TBA"
|
||||
case "FF":
|
||||
return fmt.Sprintf("%s\n%s", m.TimeString(), m.PlaceString())
|
||||
}
|
||||
|
||||
// TODO: Add error log
|
||||
return "Unknown"
|
||||
}
|
||||
|
||||
func (m *MeetingTimeResponse) TimeString() string {
|
||||
startTime := m.StartTime()
|
||||
endTime := m.EndTime()
|
||||
|
||||
if startTime == nil || endTime == nil {
|
||||
return "???"
|
||||
}
|
||||
|
||||
return fmt.Sprintf("%s %s-%s", WeekdaysToString(m.Days()), m.StartTime().String(), m.EndTime().String())
|
||||
}
|
||||
|
||||
func (m *MeetingTimeResponse) PlaceString() string {
|
||||
if m.MeetingTime.Room == "" {
|
||||
return "???"
|
||||
}
|
||||
|
||||
return fmt.Sprintf("%s %s", m.MeetingTime.Building, m.MeetingTime.Room)
|
||||
}
|
||||
|
||||
func (m *MeetingTimeResponse) Days() map[time.Weekday]bool {
|
||||
days := map[time.Weekday]bool{}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user