Skip to content

Commit

Permalink
Added some helper functions
Browse files Browse the repository at this point in the history
  • Loading branch information
diamondburned committed Jan 21, 2020
1 parent 0759805 commit c7d33f5
Show file tree
Hide file tree
Showing 2 changed files with 63 additions and 3 deletions.
14 changes: 11 additions & 3 deletions discord/time.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,23 @@ func (t *Timestamp) UnmarshalJSON(v []byte) error {
}

func (t Timestamp) MarshalJSON() ([]byte, error) {
if time.Time(t).IsZero() {
if !t.Valid() {
return []byte("null"), nil
}

return []byte(`"` + time.Time(t).Format(TimestampFormat) + `"`), nil
return []byte(`"` + t.Format(TimestampFormat) + `"`), nil
}

func (t Timestamp) Valid() bool {
return !time.Time(t).IsZero()
return !t.Time().IsZero()
}

func (t Timestamp) Format(fmt string) string {
return t.Time().Format(fmt)
}

func (t Timestamp) Time() time.Time {
return time.Time(t)
}

//
Expand Down
52 changes: 52 additions & 0 deletions state/state.go
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,58 @@ func (s *State) Unhook() {
s.unhooker()
}

//// Helper methods

func (s *State) AuthorDisplayName(message discord.Message) string {
if !message.GuildID.Valid() {
return message.Author.Username
}

n, err := s.MemberDisplayName(message.GuildID, message.Author.ID)
if err != nil {
return message.Author.Username
}

return n
}

func (s *State) MemberDisplayName(
guildID, userID discord.Snowflake) (string, error) {

member, err := s.Member(guildID, userID)
if err != nil {
return "", err
}

if member.Nick == "" {
return member.User.Username, nil
}

return member.Nick, nil
}

func (s *State) AuthorColor(message discord.Message) discord.Color {
if !message.GuildID.Valid() {
return discord.DefaultMemberColor
}

return s.MemberColor(message.GuildID, message.Author.ID)
}

func (s *State) MemberColor(guildID, userID discord.Snowflake) discord.Color {
member, err := s.Member(guildID, userID)
if err != nil {
return discord.DefaultMemberColor
}

guild, err := s.Guild(guildID)
if err != nil {
return discord.DefaultMemberColor
}

return discord.MemberColor(*guild, *member)
}

////

func (s *State) Permissions(
Expand Down

0 comments on commit c7d33f5

Please sign in to comment.