Skip to content
Snippets Groups Projects
Commit 464e1fcf authored by Erik Johnston's avatar Erik Johnston
Browse files

Merge branch 'master' of github.com:matrix-org/synapse into release-v0.2.0

Conflicts:
	synapse/notifier.py
	webclient/room/room-controller.js
	webclient/room/room.html
parents e565a4bf 7b79c0f0
No related branches found
No related tags found
No related merge requests found
Changes in synapse 0.1.2 (2014-08-29)
=====================================
Webclient:
* Add basic call state UI for VoIP calls.
Changes in synapse 0.1.1 (2014-08-29)
=====================================
Homeserver:
* Fix bug that caused the event stream to not notify some clients about
changes.
Changes in synapse 0.1.0 (2014-08-29)
=====================================
Presence has been reenabled in this release.
Homeserver:
* Update client to server API, including:
- Use a more consistent url scheme.
- Provide more useful information in the initial sync api.
* Change the presence handling to be much more efficient.
* Change the presence server to server API to not require explicit polling of
all users who share a room with a user.
* Fix races in the event streaming logic.
Webclient:
* Update to use new client to server API.
* Add basic VOIP support.
* Add idle timers that change your status to away.
* Add recent rooms column when viewing a room.
* Various network efficiency improvements.
* Add basic mobile browser support.
* Add a settings page.
Changes in synapse 0.0.1 (2014-08-22) Changes in synapse 0.0.1 (2014-08-22)
===================================== =====================================
Presence has been disabled in this release due to a bug that caused the Presence has been disabled in this release due to a bug that caused the
......
0.0.1 0.1.2
...@@ -16,4 +16,4 @@ ...@@ -16,4 +16,4 @@
""" This is a reference implementation of a synapse home server. """ This is a reference implementation of a synapse home server.
""" """
__version__ = "0.0.1" __version__ = "0.1.2"
...@@ -106,7 +106,9 @@ class Notifier(object): ...@@ -106,7 +106,9 @@ class Notifier(object):
# TODO (erikj): Can we make this more efficient by hitting the # TODO (erikj): Can we make this more efficient by hitting the
# db once? # db once?
for listener in listeners:
@defer.inlineCallbacks
def notify(listener):
events, end_key = yield room_source.get_new_events_for_user( events, end_key = yield room_source.get_new_events_for_user(
listener.user, listener.user,
listener.from_token.room_key, listener.from_token.room_key,
...@@ -122,6 +124,13 @@ class Notifier(object): ...@@ -122,6 +124,13 @@ class Notifier(object):
self, events, listener.from_token, end_token self, events, listener.from_token, end_token
) )
def eb(failure):
logger.exception("Failed to notify listener", failure)
yield defer.DeferredList(
[notify(l).addErrback(eb) for l in listeners]
)
@defer.inlineCallbacks @defer.inlineCallbacks
@log_function @log_function
def on_new_user_event(self, users=[], rooms=[]): def on_new_user_event(self, users=[], rooms=[]):
...@@ -140,7 +149,8 @@ class Notifier(object): ...@@ -140,7 +149,8 @@ class Notifier(object):
for room in rooms: for room in rooms:
listeners |= self.rooms_to_listeners.get(room, set()).copy() listeners |= self.rooms_to_listeners.get(room, set()).copy()
for listener in listeners: @defer.inlineCallbacks
def notify(listener):
events, end_key = yield presence_source.get_new_events_for_user( events, end_key = yield presence_source.get_new_events_for_user(
listener.user, listener.user,
listener.from_token.presence_key, listener.from_token.presence_key,
...@@ -156,6 +166,13 @@ class Notifier(object): ...@@ -156,6 +166,13 @@ class Notifier(object):
self, events, listener.from_token, end_token self, events, listener.from_token, end_token
) )
def eb(failure):
logger.exception("Failed to notify listener", failure)
yield defer.DeferredList(
[notify(l).addErrback(eb) for l in listeners]
)
def get_events_for(self, user, rooms, pagination_config, timeout): def get_events_for(self, user, rooms, pagination_config, timeout):
""" For the given user and rooms, return any new events for them. If """ For the given user and rooms, return any new events for them. If
there are no new events wait for up to `timeout` milliseconds for any there are no new events wait for up to `timeout` milliseconds for any
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment