diff --git a/synapse/handlers/room.py b/synapse/handlers/room.py
index 432d13982a..3451250008 100644
--- a/synapse/handlers/room.py
+++ b/synapse/handlers/room.py
@@ -23,7 +23,7 @@ from synapse.api.events.room import (
RoomTopicEvent, MessageEvent, InviteJoinEvent, RoomMemberEvent,
RoomConfigEvent
)
-from synapse.api.streams.event import EventStream, MessagesStreamData
+from synapse.api.streams.event import EventStream, EventsStreamData
from synapse.util import stringutils
from ._base import BaseHandler
@@ -97,30 +97,30 @@ class MessageHandler(BaseHandler):
self.notifier.on_new_room_event(event, store_id)
yield self.hs.get_federation().handle_new_event(event)
-
- @defer.inlineCallbacks
- def get_messages(self, user_id=None, room_id=None, pagin_config=None,
- feedback=False):
- """Get messages in a room.
-
- Args:
- user_id (str): The user requesting messages.
- room_id (str): The room they want messages from.
- pagin_config (synapse.api.streams.PaginationConfig): The pagination
- config rules to apply, if any.
- feedback (bool): True to get compressed feedback with the messages
- Returns:
- dict: Pagination API results
- """
- yield self.auth.check_joined_room(room_id, user_id)
-
- data_source = [MessagesStreamData(self.hs, room_id=room_id,
- feedback=feedback)]
- event_stream = EventStream(user_id, data_source)
- pagin_config = yield event_stream.fix_tokens(pagin_config)
- data_chunk = yield event_stream.get_chunk(config=pagin_config)
- defer.returnValue(data_chunk)
-
+#
+# @defer.inlineCallbacks
+# def get_messages(self, user_id=None, room_id=None, pagin_config=None,
+# feedback=False):
+# """Get messages in a room.
+#
+# Args:
+# user_id (str): The user requesting messages.
+# room_id (str): The room they want messages from.
+# pagin_config (synapse.api.streams.PaginationConfig): The pagination
+# config rules to apply, if any.
+# feedback (bool): True to get compressed feedback with the messages
+# Returns:
+# dict: Pagination API results
+# """
+# yield self.auth.check_joined_room(room_id, user_id)
+#
+# data_source = [MessagesStreamData(self.hs, room_id=room_id,
+# feedback=feedback)]
+# event_stream = EventStream(user_id, data_source)
+# pagin_config = yield event_stream.fix_tokens(pagin_config)
+# data_chunk = yield event_stream.get_chunk(config=pagin_config)
+# defer.returnValue(data_chunk)
+#
@defer.inlineCallbacks
def store_room_data(self, event=None, stamp_event=True):
""" Stores data for a room.
@@ -251,20 +251,27 @@ class MessageHandler(BaseHandler):
user_id=user_id,
membership_list=[Membership.INVITE, Membership.JOIN]
)
- for room_info in room_list:
- if room_info["membership"] != Membership.JOIN:
+
+ ret = []
+
+ for event in room_list:
+ d = event.get_dict()
+ ret.append(d)
+
+ if event.membership != Membership.JOIN:
continue
try:
- event_chunk = yield self.get_messages(
- user_id=user_id,
- pagin_config=pagin_config,
- feedback=feedback,
- room_id=room_info["room_id"]
+ messages = yield self.store.get_recent_events_for_room(
+ event.room_id,
+ limit=50,
)
- room_info["messages"] = event_chunk
+ d["messages"] = [m.get_dict() for m in messages]
except:
pass
- defer.returnValue(room_list)
+
+ logger.debug("snapshot_all_rooms returning: %s", ret)
+
+ defer.returnValue(ret)
class RoomCreationHandler(BaseHandler):
@@ -442,7 +449,7 @@ class RoomMemberHandler(BaseHandler):
member_list = yield self.store.get_room_members(room_id=room_id)
event_list = [
- entry.as_event(self.event_factory).get_dict()
+ entry.get_dict()
for entry in member_list
]
chunk_data = {
@@ -685,7 +692,7 @@ class RoomMemberHandler(BaseHandler):
user_id=user.to_string(), membership_list=membership_list
)
- defer.returnValue([r["room_id"] for r in rooms])
+ defer.returnValue([r.room_id for r in rooms])
@defer.inlineCallbacks
def _do_local_membership_update(self, event, membership, broadcast_msg):
|