discord.go 891 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package util
  2. import (
  3. "strings"
  4. "github.com/ayntgl/discordgo"
  5. )
  6. func ChannelToString(c *discordgo.Channel) string {
  7. var repr string
  8. if c.Name != "" {
  9. repr = "#" + c.Name
  10. } else if len(c.Recipients) == 1 {
  11. rp := c.Recipients[0]
  12. repr = rp.Username + "#" + rp.Discriminator
  13. } else {
  14. rps := make([]string, len(c.Recipients))
  15. for i, r := range c.Recipients {
  16. rps[i] = r.Username + "#" + r.Discriminator
  17. }
  18. repr = strings.Join(rps, ", ")
  19. }
  20. return repr
  21. }
  22. func ChannelIsUnread(s *discordgo.State, c *discordgo.Channel) bool {
  23. if c.LastMessageID == "" {
  24. return false
  25. }
  26. for _, rs := range s.ReadState {
  27. if c.ID == rs.ID {
  28. return c.LastMessageID != rs.LastMessageID
  29. }
  30. }
  31. return false
  32. }
  33. func FindMessageByID(ms []*discordgo.Message, mID string) (int, *discordgo.Message) {
  34. for i, m := range ms {
  35. if m.ID == mID {
  36. return i, m
  37. }
  38. }
  39. return -1, nil
  40. }