summary refs log tree commit diff
path: root/synapse/handlers/presence.py (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Add a timestamp to USER_SYNC commandErik Johnston2017-03-311-7/+7
| | | | This timestamp is used to indicate when the user last sync'd
* Fix up presenceErik Johnston2017-03-311-1/+3
|
* Remove user from process_presence when stops syncingErik Johnston2017-03-301-0/+1
|
* Add functions to presence to support remote syncsErik Johnston2017-03-301-0/+66
| | | | | | | The TCP replication protocol streams deltas of who has started or stopped syncing. This is different from the HTTP API which periodically sends the full list of users who are syncing. This commit adds support for the new TCP style of sending deltas.
* Cache hosts in roomErik Johnston2017-03-241-2/+1
|
* Don't recreate so many setsErik Johnston2017-03-161-8/+9
|
* Merge pull request #2014 from Half-Shot/hs/fix-appservice-presenceErik Johnston2017-03-151-1/+4
|\ | | | | Add fallback to last_active_ts if it beats the last sync time on a presence timeout.
| * Add a great comment to handle_timeout for active vs sync times.Will Hunt2017-03-151-0/+2
| |
| * Add fallback to last_active_ts if it beats the last sync time.Will Hunt2017-03-151-1/+2
| |
* | Cache set of users whose presence the other user should seeErik Johnston2017-03-151-13/+27
| |
* | CommentErik Johnston2017-03-151-0/+3
| |
* | Format presence events on the edges instead of reformatting them multiple timesErik Johnston2017-03-151-15/+15
|/
* Cache get_presence storageErik Johnston2017-02-131-1/+1
|
* Make presence.get_new_events a bit fasterErik Johnston2017-02-021-29/+15
| | | | We do this by caching the set of users a user shares rooms with.
* Use DB cache of joined users for presenceErik Johnston2017-01-301-3/+3
|
* Use new federation_sender DIErik Johnston2016-11-161-5/+6
|
* Fix typo "persiting"Paul "LeoNerd" Evans2016-09-131-2/+2
|
* Clobber EDUs in send queueErik Johnston2016-09-091-15/+5
|
* Deduplicate presence in _update_statesErik Johnston2016-09-091-0/+6
|
* Check the user_id for presence/typing matches originErik Johnston2016-09-081-0/+7
|
* Record counts of state changesErik Johnston2016-09-061-0/+4
|
* Short circuit if presence is the sameErik Johnston2016-09-061-0/+3
|
* Fiddle should_notify to better report statsErik Johnston2016-09-061-12/+7
|
* Record why we have chosen to notifyErik Johnston2016-09-051-0/+8
|
* Fix typo in log lineErik Johnston2016-09-011-1/+1
|
* Merge pull request #1055 from matrix-org/erikj/occaisonally_persistErik Johnston2016-08-301-0/+28
|\ | | | | Occaisonally persist unpersisted presence updates
| * Check correct variableErik Johnston2016-08-301-1/+1
| |
| * Occaisonally persist unpersisted presence updatesErik Johnston2016-08-301-0/+28
| |
* | Don't notify for online -> online transitions.Erik Johnston2016-08-301-1/+6
|/ | | | | Specifically, if currently_active remains true then we should not notify if only the last active time changes.
* Use state handler instead of get_users_in_room/get_joined_hostsErik Johnston2016-08-261-4/+9
|
* Make synchrotron accept /eventsErik Johnston2016-08-121-8/+19
|
* Don't change status_msg on /syncWill Hunt2016-08-101-3/+6
|
* .values() returns list of setsErik Johnston2016-06-061-1/+2
|
* Fix typosErik Johnston2016-06-061-32/+36
|
* Fire after 30s not 8hErik Johnston2016-06-061-1/+1
|
* Change metric styleErik Johnston2016-06-031-5/+4
|
* Presence metrics. Change def of small deltaErik Johnston2016-06-031-5/+10
|
* Allow external processes to mark a user as syncing. (#812)Mark Haines2016-06-021-13/+106
| | | | | | | | | | | | * Add infrastructure to the presence handler to track sync requests in external processes * Expire stale entries for dead external processes * Add an http endpoint for making users as syncing Add some docstrings and comments. * Fixes
* Merge pull request #787 from matrix-org/markjh/liberate_presence_handlerMark Haines2016-05-171-19/+21
|\ | | | | Move the presence handler out of the Handlers object
| * Don't inherit PresenceHandler from BaseHandler, remove references to self.hs ↵Mark Haines2016-05-161-19/+21
| | | | | | | | from presence handler
| * Move the presence handler out of the Handlers objectMark Haines2016-05-161-1/+1
| |
* | Spell "domain" correctlyMark Haines2016-05-161-2/+2
|/ | | | s/domian/domain/g
* Add and use get_domian_from_idErik Johnston2016-05-091-2/+2
|
* Reduce database inserts when sending transactionsErik Johnston2016-05-061-1/+1
|
* Remove another unused function from presenceMark Haines2016-03-171-4/+0
|
* Remove dead code left over from presence changesMark Haines2016-03-171-4/+0
|
* Merge pull request #612 from matrix-org/erikj/cache_sizeErik Johnston2016-03-021-0/+4
|\ | | | | Add environment variable SYNAPSE_CACHE_FACTOR, default it to 0.1
| * Add enviroment variable SYNAPSE_CACHE_FACTOR, default it to 0.1Erik Johnston2016-03-011-0/+4
| |
* | Add a /replication API for extracting the updates that happened onMark Haines2016-03-011-0/+19
|/ | | | | | | | | | | | | | | | | | | | | | | | synapse This is necessary for replicating the data in synapse to be visible to a separate service because presence and typing notifications aren't stored in a database so won't be visible to another process. This API can be used to either get the raw data by requesting the tables themselves or to just receive notifications for updates by following the streams meta-stream. Returns updates for each table requested a JSON array of arrays with a row for each row in the table. Each table is prefixed by a header row with the: name of the table, current stream_id position for the table, number of rows, number of columns and the names of the columns. This is followed by the rows that have been added to the server since the requester last asked. The API has a timeout and is hooked up to the notifier so that a slave can long poll for updates.
* Check presence token interval is less than 100, rather than the token itselfErik Johnston2016-02-231-4/+4
|
* Merge pull request #602 from matrix-org/erikj/presenceErik Johnston2016-02-231-19/+45
|\ | | | | Change the way we figure out presence updates for small deltas
| * Handle get_all_entities_changed returning NoneErik Johnston2016-02-231-0/+3
| |
| * Add commentsErik Johnston2016-02-231-0/+4
| |
| * Change the way we figure out presence updates for small deltasErik Johnston2016-02-231-17/+36
| |
* | Merge pull request #600 from matrix-org/erikj/presenceErik Johnston2016-02-231-26/+30
|\| | | | | Measure PresenceEventSource.get_new_events
| * Don't include defer.returnValue in Measure blockErik Johnston2016-02-231-9/+12
| |
| * Measure PresenceEventSource.get_new_eventsErik Johnston2016-02-231-34/+35
| |
* | Pick up currently_active across federationErik Johnston2016-02-231-0/+1
|/
* Correctly filter statesErik Johnston2016-02-191-2/+2
|
* Only send presence updates to remote hosts if user is oursErik Johnston2016-02-191-2/+10
|
* Add Measures to presenceErik Johnston2016-02-191-57/+62
|
* Add presence metricErik Johnston2016-02-191-0/+3
|
* Remove spurious extra metricsErik Johnston2016-02-191-1/+0
|
* Don't set currently_active for remote presenceErik Johnston2016-02-191-6/+12
|
* More metricsErik Johnston2016-02-191-0/+6
|
* Add presence metricsErik Johnston2016-02-191-0/+8
|
* Remove invalid arg.Erik Johnston2016-02-181-1/+0
|
* Add unit testErik Johnston2016-02-181-93/+187
|
* Add stuff pulled from the DB to the cacheErik Johnston2016-02-181-2/+4
|
* PEP8Erik Johnston2016-02-181-2/+2
|
* Prefix TS fields with _tsErik Johnston2016-02-181-27/+27
|
* Remove status_msg when going offline. Don't offline -> online if you send a ↵Erik Johnston2016-02-181-5/+15
| | | | message
* Check presence state is a valid oneErik Johnston2016-02-181-0/+6
|
* Move if statementErik Johnston2016-02-181-8/+8
|
* CommentErik Johnston2016-02-181-0/+2
|
* Remove spurious commentErik Johnston2016-02-171-1/+0
|
* Initial cutErik Johnston2016-02-171-1031/+631
|
* Fix up logcontextsErik Johnston2016-02-081-9/+11
|
* Fix flake8 warnings for new flake8Daniel Wagner-Hall2016-02-021-1/+1
|
* copyrightsMatthew Hodgson2016-01-071-1/+1
|
* Wrap calls to distributor.fire in appropriately named functions so that ↵Mark Haines2015-12-011-7/+11
| | | | static analysis can work out want is calling what
* Rename presence_handler.send_invite to presence_handler.send_presence_invite ↵Mark Haines2015-12-011-1/+1
| | | | to distinguish it from normal invites
* Allow guest users to join and message roomsDaniel Wagner-Hall2015-11-101-1/+2
|
* Open up /events to anonymous users for room events onlyDaniel Wagner-Hall2015-11-051-2/+2
| | | | Squash-merge of PR #345 from daniel/anonymousevents
* Fix some races in the synapse presence handler caused by not yielding on ↵Mark Haines2015-10-091-3/+8
| | | | deferreds
* TypoErik Johnston2015-08-181-1/+1
|
* None checkErik Johnston2015-08-181-0/+2
|
* More helpful variable namesErik Johnston2015-08-181-7/+7
|
* Doc stringsErik Johnston2015-08-181-0/+28
|
* Remove debug try/catchErik Johnston2015-08-181-47/+43
|
* Implement a batched presence_handler.get_state and use itErik Johnston2015-08-171-0/+63
|
* Consolidate duplicate code in notifierErik Johnston2015-07-021-1/+1
|
* Don't do unecessary db ops in presence.get_stateErik Johnston2015-06-161-14/+14
|
* Add a cache for getting the presence list for a userMark Haines2015-05-221-9/+15
|
* Remove spurious TODO commentMark Haines2015-05-221-1/+0
|
* Removed unused 'is_visible' methodMark Haines2015-05-201-27/+0
|
* Clean up the presence_list checking logic a bitMark Haines2015-05-201-12/+9
|
* Speed up the get_pagination_rows as wellMark Haines2015-05-181-3/+17
|
* Cache the most recent serial for each roomMark Haines2015-05-181-6/+22
|
* Move updating the serial and state of the presence cache into a single functionMark Haines2015-05-181-17/+43
|
* Merge branch 'notifier_performance' into markjh/presence_performanceMark Haines2015-05-181-0/+4
|\
| * Merge branch 'develop' into notifier_performanceMark Haines2015-05-181-49/+220
| |\
| * \ Merge branch 'notifier_unify' into notifier_performanceMark Haines2015-05-141-20/+6
| |\ \
| * | | Don't bother checking for updates if the stream token hasn't advanced for a userMark Haines2015-05-131-0/+4
| | | |
* | | | Add more doc string, reduce C+P boilerplate for getting room listMark Haines2015-05-181-6/+22
| |_|/ |/| |
* | | More whitespaceMark Haines2015-05-151-0/+1
| | |
* | | Add some missed argument types, cleanup the whitespace a bitMark Haines2015-05-141-6/+17
| | |
* | | More doc-stringsMark Haines2015-05-141-39/+202
| | |
* | | Remove unused arguments and doc PresenceHandler.push_update_to_clientsMark Haines2015-05-141-12/+8
| |/ |/|
* | Revert "Improvement to performance of presence event stream handling"Mark Haines2015-05-121-20/+6
|/
* Merge pull request #147 from matrix-org/presence-performanceMark Haines2015-05-121-6/+20
|\ | | | | Improvement to performance of presence event stream handling
| * Use the presence cachemap ordering to early-abort the iteration loopPaul "LeoNerd" Evans2015-05-071-2/+7
| |
| * Store presence cachemap in an ordered dict, so that the newer serials will ↵Paul "LeoNerd" Evans2015-05-071-4/+13
| | | | | | | | be at the end
* | Fix up leak. Add warnings.Erik Johnston2015-05-081-4/+6
| |
* | Change the way we do logging contexts so that they survive divergencesErik Johnston2015-05-081-19/+15
|/
* Fix off by one in presence token handlingErik Johnston2015-04-291-1/+1
|
* Ensure we never miss any presence updatesErik Johnston2015-04-281-1/+7
|
* Fix typoErik Johnston2015-04-281-1/+1
|
* Ensure the serial returned by presence is always an integerErik Johnston2015-04-281-3/+3
|
* Remove users from the remote_offline_serials list (and clean up empty ↵Paul "LeoNerd" Evans2015-04-231-1/+11
| | | | elements) when they go online again
* Don't let the remote offline serial list grow arbitrarily largePaul "LeoNerd" Evans2015-04-231-0/+5
|
* Store a list of the presence serial number at which remote users went ↵Paul "LeoNerd" Evans2015-04-231-0/+21
| | | | offline, so that when we delete them from the cachemap, we can still synthesize OFFLINE events for them (SYN-261)
* Generate presence event-stream JSON structures directlyPaul "LeoNerd" Evans2015-04-231-8/+9
|
* Reduce activity timer granularity to avoid too many quick updates (SYN-247)Paul "LeoNerd" Evans2015-03-231-0/+8
|
* Appease pep8Paul "LeoNerd" Evans2015-03-121-2/+3
|
* Use _ instead of . as a metric namespacing separator, for PrometheusPaul "LeoNerd" Evans2015-03-121-1/+1
|
* Add a scalar gauge metric on the size of the presence user cachemapPaul "LeoNerd" Evans2015-03-121-0/+7
|
* Change room handlers get_rooms_for_user to get_joined_rooms_for_user. This ↵Erik Johnston2015-03-091-3/+3
| | | | uses the a storage api that is cached.
* Use consumeErrors=True on all DeferredLists.Erik Johnston2015-02-171-4/+4
| | | | | | This is so that the DeferredLists actually consume the error instead of propogating down the non-existent errback chain. This should reduce the number of unhandled errors we are seeing.
* Fix code-styleMark Haines2015-02-101-4/+4
|
* Code-style fixesMark Haines2015-02-101-1/+3
|
* Merge branch 'develop' into pushersDavid Baker2015-01-281-11/+12
|\ | | | | | | | | | | Conflicts: synapse/handlers/events.py synapse/server.py
| * Replace hs.parse_userid with UserID.from_stringMark Haines2015-01-231-11/+12
| |
* | Reset badge count to zero when last active time is bumpedDavid Baker2015-01-281-0/+5
|/
* Update copyright noticesMark Haines2015-01-061-1/+1
|
* Merge branch 'develop' of github.com:matrix-org/synapse into events_refactorErik Johnston2014-12-041-5/+7
|\
| * @log_function on PresenceStream's get_new_events_for_user()Paul "LeoNerd" Evans2014-12-031-1/+3
| |
| * Store any incoming presence push in the local cache anyway, even if there's ↵Paul "LeoNerd" Evans2014-12-031-4/+4
| | | | | | | | no interested observers (yet *hint*) (SYN-115)
* | Merge branch 'develop' of github.com:matrix-org/synapse into events_refactorErik Johnston2014-12-031-0/+5
|\|
| * Extra verbosity on logging of received presence infoPaul "LeoNerd" Evans2014-12-021-0/+5
| |
* | Change DomainSpecificString so that it doesn't use a HomeServer objectErik Johnston2014-12-021-19/+19
|/
* Add a few missing yields, Move deferred lists inside PreserveLoggingContext ↵Mark Haines2014-11-201-21/+27
| | | | because they don't interact well with the logging contexts
* Initialise UserPresenceCache instances to always contain a 'presence' keyPaul "LeoNerd" Evans2014-11-191-4/+2
|
* Added ability to .get_state() from the PresenceHandler by returning a ↵Paul "LeoNerd" Evans2014-11-181-2/+15
| | | | complete m.presence event
* Don't expect all _user_cachemap entries to definitely contain a ↵Paul "LeoNerd" Evans2014-11-181-3/+3
| | | | "last_active" key
* Fix pep8 warningsMark Haines2014-10-301-18/+15
|
* Fix an off-by-one bug in presence event stream pagination; this might be ↵Paul "LeoNerd" Evans2014-10-291-1/+1
| | | | responsible for any number of bug reports
* Construct a source-specific 'SourcePaginationConfig' to pass into ↵Paul "LeoNerd" Evans2014-10-291-20/+5
| | | | get_pagination_rows; meaning each source doesn't have to care about its own name any more
* Remove redundant (and incorrect) presence pagination fetching codePaul "LeoNerd" Evans2014-10-291-3/+0
|
* Fix race in presence handler where we evicted things from cache while ↵Erik Johnston2014-09-061-2/+3
| | | | handling a key therein
* fix the copyright holder from matrix.org to OpenMarket Ltd, as matrix.org ↵Matthew Hodgson2014-09-031-1/+1
| | | | hasn't been incorporated in time for launch.
* Kill the statePaul "LeoNerd" Evans2014-09-031-26/+5
| | | | ... key from all the Presence messages
* Bugfix for back-pagination of presencePaul "LeoNerd" Evans2014-09-031-0/+2
|
* Implement presence state visibilty limiting when polling eventsource for streamPaul "LeoNerd" Evans2014-09-031-9/+57
|
* Update API docs to use 'presence' key not 'state'. Fixed error messages when ↵Kegan Dougal2014-09-031-1/+1
| | | | setting presence.
* Rename the 'do_users_share_a_room' to something slightly less verb-soundingPaul "LeoNerd" Evans2014-09-031-1/+1
|
* Neater is_presence_visible() codePaul "LeoNerd" Evans2014-09-031-9/+8
|
* Safer handling of incoming presence EDUs that may or maynot contain ↵Paul "LeoNerd" Evans2014-09-021-3/+13
| | | | 'presence' or 'state'
* 'continue' to go to the next item in a for loop, not 'break'Paul "LeoNerd" Evans2014-09-021-1/+1
|
* Reënable presence visibility permission checking now it's not used on ↵Paul "LeoNerd" Evans2014-09-011-4/+0
| | | | redundant code paths
* No need to test is_presence_visible in _start_polling_local because we know ↵Paul "LeoNerd" Evans2014-09-011-4/+0
| | | | it will be by when it's called
* Bump a user's presence last_active time every time they send a message to a roomPaul "LeoNerd" Evans2014-09-011-0/+6
|
* Rename API-visible 'mtime' presence field to 'last_active'; slightly ↵Paul "LeoNerd" Evans2014-09-011-23/+49
| | | | different semantics
* Rename 'state' presence key to the much more obvious 'presence'; maintain a ↵Paul "LeoNerd" Evans2014-09-011-11/+31
| | | | legacy 'state' copy for now
* Bugfixes on presence pushes on user joining:Paul "LeoNerd" Evans2014-08-291-9/+8
| | | | | | | | | * No need to inform clients of status of remote users; as that will arrive in due course anyway. We don't -have- the state currently, so we'd only send an unknown message * Remember to bump the presence serial for the event source, so the notifiers will wake up and report it
* Renamed get_current_token_part to get_current_keyPaul "LeoNerd" Evans2014-08-291-1/+1
|
* Have EventSource's get_new_events_for_user() API work only on keys within ↵Paul "LeoNerd" Evans2014-08-291-10/+4
| | | | that source, not overall eventstream tokens
* Move the *EventSource classes into the handlers they relate to, so it's ↵Paul "LeoNerd" Evans2014-08-291-0/+78
| | | | easier to find the code
* Fix a couple of bugs in presence handler related to pushing updatesto the ↵Erik Johnston2014-08-291-18/+41
| | | | correct user. Fix presence tests.
* Turn of trace_function loggingErik Johnston2014-08-281-8/+8
|
* Only poll remote users if they are in our presence list, rather than in a ↵Erik Johnston2014-08-281-53/+66
| | | | common room
* Don't query the rooms members table so much by using the new notifier api ↵Erik Johnston2014-08-281-61/+45
| | | | that allows you to specify room_ids to notify.
* Merge branch 'develop' of github.com:matrix-org/synapse into presence_loggingErik Johnston2014-08-281-2/+14
|\ | | | | | | | | Conflicts: synapse/handlers/presence.py
| * Only send presence "poll"/"unpoll" EDUs when changing from/to zero remotesPaul "LeoNerd" Evans2014-08-281-2/+14
| |
| * Re-enable presence, un-skip presence testsPaul "LeoNerd" Evans2014-08-281-8/+0
| |
* | And more logging.Erik Johnston2014-08-281-0/+1
| |
* | Add more logging. Up the event stream timer to 10sErik Johnston2014-08-281-0/+2
| |
* | Add logging to try and figure out what is going on with the presence stuffErik Johnston2014-08-281-2/+9
|/
* Turn off presence again.Erik Johnston2014-08-271-2/+2
|
* Implement presence event source. Change the way the notifier indexes listenersErik Johnston2014-08-271-6/+1
|
* Enable presence again. Fix up api to match old api.Erik Johnston2014-08-261-2/+2
|
* WIP: Completely change how event streaming and pagination work. This ↵Erik Johnston2014-08-261-32/+0
| | | | reflects the change in the underlying storage model.
* Fix pyflakes errorsMark Haines2014-08-261-1/+1
|
* Add a do_users_share_a_room method and use that in the presence handler.Erik Johnston2014-08-261-5/+4
|
* Oops, we need to use defer.returnValue.Erik Johnston2014-08-221-1/+2
|
* Make is_presence_visible always return true as it was thrashing the database.Erik Johnston2014-08-221-0/+3
|
* Add indices to schemaErik Johnston2014-08-221-0/+4
|
* Merge branch 'master' of github.com:matrix-org/synapse into sql_refactorErik Johnston2014-08-191-3/+0
|\
| * Don't delete OFFLINE users from the presence cache, so we can report on ↵Paul "LeoNerd" Evans2014-08-191-3/+0
| | | | | | | | their offline mtime
* | PresenceStreamData was expecting *_key to be intsErik Johnston2014-08-191-0/+3
| |
* | Merge branch 'master' of github.com:matrix-org/synapse into sql_refactorErik Johnston2014-08-191-3/+7
|\| | | | | | | | | | | | | Conflicts: tests/rest/test_presence.py tests/rest/test_rooms.py tests/utils.py
| * Perform the 'REST'-level tests of Presence against the real Presence handler ↵Paul "LeoNerd" Evans2014-08-191-1/+1
| | | | | | | | as well, mocking out the datastore beneath it
| * Implement and test presence dropping of remote usersPaul "LeoNerd" Evans2014-08-191-2/+6
| |
* | Change the way pagination works to support out of order events.Erik Johnston2014-08-191-1/+1
|/
* Allow room presence visibility between users who share a roomPaul "LeoNerd" Evans2014-08-181-7/+5
|
* improve commentMatthew Hodgson2014-08-161-1/+1
|
* emergency bodges to turn off presence ACLs in order to makeMatthew Hodgson2014-08-161-2/+7
| | | | matrix.org:8080 actually work
* When starting to poll for presence, also include members of all shared roomsPaul "LeoNerd" Evans2014-08-151-3/+12
|
* Round Presence mtime and mtime_age to nearest msec; avoids floats for msec ↵Paul "LeoNerd" Evans2014-08-141-5/+15
| | | | values over the wire
* An initial hack at storing presence state-change mtimes in database and ↵Paul "LeoNerd" Evans2014-08-131-7/+34
| | | | presenting age durations to clients/federation events
* add in whitespace after copyright statements to improve legibilityMatthew Hodgson2014-08-131-0/+1
|
* Reference Matrix Home Servermatrix.org2014-08-121-0/+697