LNRoomUserMessage.swift 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. //
  2. // LNRoomUserMessageItem.swift
  3. // Gami
  4. //
  5. // Created by OneeChan on 2026/3/12.
  6. //
  7. import Foundation
  8. import AtomicXCore
  9. enum LNRoomMessageItemType {
  10. case chat
  11. case system
  12. }
  13. let LNRoomChatMessageTypeKey = "type"
  14. enum LNRoomChatMessageType: String, CaseIterable {
  15. case chat = "0"
  16. }
  17. class LNRoomUserMessage {
  18. let innerMessage: Barrage
  19. let type: LNRoomChatMessageType
  20. var messageItems: [LNRoomMessageItem]? {
  21. var list: [LNRoomMessageItem] = []
  22. switch type {
  23. case .chat:
  24. let item = LNRoomChatMessageItem()
  25. item.sender = innerMessage.sender.userID
  26. item.avatar = innerMessage.sender.avatarURL
  27. item.nickname = innerMessage.sender.userName
  28. item.content = innerMessage.textContent
  29. list.append(item)
  30. }
  31. return list
  32. }
  33. init?(info: Barrage) {
  34. guard info.messageType == .text else {
  35. return nil
  36. }
  37. guard let value = info.extensionInfo?[LNRoomChatMessageTypeKey],
  38. let subType = LNRoomChatMessageType(rawValue: value) else {
  39. return nil
  40. }
  41. type = subType
  42. innerMessage = info
  43. }
  44. }