diff options
author | Paul "LeoNerd" Evans <paul@matrix.org> | 2014-08-29 17:39:33 +0100 |
---|---|---|
committer | Paul "LeoNerd" Evans <paul@matrix.org> | 2014-08-29 17:39:33 +0100 |
commit | 6dd50da54ea944610eb3836621c45a2d6b2a532b (patch) | |
tree | 9ba22386eb6b5bd82d16240095d2913424d9e4ca /synapse | |
parent | Avoid hardcoding names of individual stream token keys in its own implementat... (diff) | |
download | synapse-6dd50da54ea944610eb3836621c45a2d6b2a532b.tar.xz |
Define a new event stream data source for typing notifications (currently null)
Diffstat (limited to 'synapse')
-rw-r--r-- | synapse/handlers/typing.py | 14 | ||||
-rw-r--r-- | synapse/streams/events.py | 20 | ||||
-rw-r--r-- | synapse/types.py | 2 |
3 files changed, 28 insertions, 8 deletions
diff --git a/synapse/handlers/typing.py b/synapse/handlers/typing.py index 9fab0ff37c..8a1e3dc5e8 100644 --- a/synapse/handlers/typing.py +++ b/synapse/handlers/typing.py @@ -145,3 +145,17 @@ class TypingNotificationHandler(BaseHandler): typing): # TODO(paul) steal this from presence.py pass + + +class TypingNotificationEventSource(object): + def __init__(self, hs): + self.hs = hs + + def get_new_events_for_user(self, user, from_token, limit): + return ([], 0) + + def get_current_token_part(self): + return 0 + + def get_pagination_rows(self, user, pagination_config, key): + return ([], 0) diff --git a/synapse/streams/events.py b/synapse/streams/events.py index 321faf4b03..4bec6605bd 100644 --- a/synapse/streams/events.py +++ b/synapse/streams/events.py @@ -19,6 +19,7 @@ from synapse.types import StreamToken from synapse.handlers.presence import PresenceEventSource from synapse.handlers.room import RoomEventSource +from synapse.handlers.typing import TypingNotificationEventSource class NullSource(object): @@ -41,6 +42,7 @@ class EventSources(object): SOURCE_TYPES = { "room": RoomEventSource, "presence": PresenceEventSource, + "typing": TypingNotificationEventSource, } def __init__(self, hs): @@ -49,15 +51,19 @@ class EventSources(object): for name, cls in EventSources.SOURCE_TYPES.items() } - @staticmethod - def create_token(events_key, presence_key): - return StreamToken(events_key=events_key, presence_key=presence_key) - @defer.inlineCallbacks def get_current_token(self): - events_key = yield self.sources["room"].get_current_token_part() - presence_key = yield self.sources["presence"].get_current_token_part() - token = EventSources.create_token(events_key, presence_key) + token = StreamToken( + events_key=( + yield self.sources["room"].get_current_token_part() + ), + presence_key=( + yield self.sources["presence"].get_current_token_part() + ), + typing_key=( + yield self.sources["typing"].get_current_token_part() + ) + ) defer.returnValue(token) diff --git a/synapse/types.py b/synapse/types.py index aa6f589a20..d93b02a56e 100644 --- a/synapse/types.py +++ b/synapse/types.py @@ -97,7 +97,7 @@ class RoomID(DomainSpecificString): class StreamToken( namedtuple( "Token", - ("events_key", "presence_key") + ("events_key", "presence_key", "typing_key") ) ): _SEPARATOR = "_" |