Files
golib/tmdb/crew_functions.go
2026-01-01 20:42:50 +11:00

42 lines
912 B
Go

package tmdb
import "sort"
type BilledCrew struct {
Name string
Roles []string
}
func (credits *Credits) BilledCrew() []BilledCrew {
crewmap := make(map[string][]string)
billedcrew := []BilledCrew{}
for _, crew := range credits.Crew {
if crew.Job == "Director" ||
crew.Job == "Screenplay" ||
crew.Job == "Writer" ||
crew.Job == "Novel" ||
crew.Job == "Story" {
crewmap[crew.Name] = append(crewmap[crew.Name], crew.Job)
}
}
for name, jobs := range crewmap {
billedcrew = append(billedcrew, BilledCrew{Name: name, Roles: jobs})
}
for i := range billedcrew {
sort.Strings(billedcrew[i].Roles)
}
sort.Slice(billedcrew, func(i, j int) bool {
return billedcrew[i].Roles[0] < billedcrew[j].Roles[0]
})
return billedcrew
}
func (billedcrew *BilledCrew) FRoles() string {
jobs := ""
for _, job := range billedcrew.Roles {
jobs += job + ", "
}
return jobs[:len(jobs)-2]
}