You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

100 lines
2.6 KiB

  1. # -*- coding: utf-8 -*-
  2. # Copyright 2014 matrix.org
  3. #
  4. # Licensed under the Apache License, Version 2.0 (the "License");
  5. # you may not use this file except in compliance with the License.
  6. # You may obtain a copy of the License at
  7. #
  8. # http://www.apache.org/licenses/LICENSE-2.0
  9. #
  10. # Unless required by applicable law or agreed to in writing, software
  11. # distributed under the License is distributed on an "AS IS" BASIS,
  12. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. # See the License for the specific language governing permissions and
  14. # limitations under the License.
  15. from . import SynapseEvent
  16. class RoomTopicEvent(SynapseEvent):
  17. TYPE = "m.room.topic"
  18. def __init__(self, **kwargs):
  19. kwargs["state_key"] = ""
  20. super(RoomTopicEvent, self).__init__(**kwargs)
  21. def get_content_template(self):
  22. return {"topic": u"string"}
  23. class RoomMemberEvent(SynapseEvent):
  24. TYPE = "m.room.member"
  25. valid_keys = SynapseEvent.valid_keys + [
  26. "target_user_id", # target
  27. "membership", # action
  28. ]
  29. def __init__(self, **kwargs):
  30. if "target_user_id" in kwargs:
  31. kwargs["state_key"] = kwargs["target_user_id"]
  32. super(RoomMemberEvent, self).__init__(**kwargs)
  33. def get_content_template(self):
  34. return {"membership": u"string"}
  35. class MessageEvent(SynapseEvent):
  36. TYPE = "m.room.message"
  37. valid_keys = SynapseEvent.valid_keys + [
  38. "msg_id", # unique per room + user combo
  39. ]
  40. def __init__(self, **kwargs):
  41. super(MessageEvent, self).__init__(**kwargs)
  42. def get_content_template(self):
  43. return {"msgtype": u"string"}
  44. class FeedbackEvent(SynapseEvent):
  45. TYPE = "m.room.message.feedback"
  46. valid_keys = SynapseEvent.valid_keys + [
  47. "msg_id", # the message ID being acknowledged
  48. "msg_sender_id", # person who is sending the feedback is 'user_id'
  49. "feedback_type", # the type of feedback (delivery, read, etc)
  50. ]
  51. def __init__(self, **kwargs):
  52. super(FeedbackEvent, self).__init__(**kwargs)
  53. def get_content_template(self):
  54. return {}
  55. class InviteJoinEvent(SynapseEvent):
  56. TYPE = "m.room.invite_join"
  57. valid_keys = SynapseEvent.valid_keys + [
  58. "target_user_id",
  59. "target_host",
  60. ]
  61. def __init__(self, **kwargs):
  62. super(InviteJoinEvent, self).__init__(**kwargs)
  63. def get_content_template(self):
  64. return {}
  65. class RoomConfigEvent(SynapseEvent):
  66. TYPE = "m.room.config"
  67. def __init__(self, **kwargs):
  68. kwargs["state_key"] = ""
  69. super(RoomConfigEvent, self).__init__(**kwargs)
  70. def get_content_template(self):
  71. return {}