func makeScriptFromMessages(service bruxism.Service, message bruxism.Message, messages []bruxism.Message) *comicgen.Script { speakers := make(map[string]int) avatars := make(map[int]string) script := []*comicgen.Message{} for _, message := range messages { speaker, ok := speakers[message.UserName()] if !ok { speaker = len(speakers) speakers[message.UserName()] = speaker avatars[speaker] = message.UserAvatar() } script = append(script, &comicgen.Message{ Speaker: speaker, Text: message.Message(), Author: message.UserName(), }) } return &comicgen.Script{ Messages: script, Author: fmt.Sprintf(service.UserName()), Avatars: avatars, Type: comicgen.ComicTypeChat, } }