summary refs log tree commit diff
path: root/synapse/storage/databases/main/receipts.py (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Revert "Make all `process_replication_rows` methods async (#13304)" (#13312)Erik Johnston2022-07-181-4/+2
| | | This reverts commit 5d4028f217f178fcd384d5bfddd92225b4e78c51.
* Make all `process_replication_rows` methods async (#13304)Nick Mills-Barrett2022-07-171-2/+4
| | | | | More prep work for asyncronous caching, also makes all process_replication_rows methods consistent (presence handler already is so). Signed off by Nick @ Beeper (@Fizzadar)
* Fix serialization errors when rotating notifications (#13118)Erik Johnston2022-06-281-12/+1
|
* Speed up `get_unread_event_push_actions_by_room` (#13005)Erik Johnston2022-06-151-33/+41
| | | | | | | | | | | Fixes #11887 hopefully. The core change here is that `event_push_summary` now holds a summary of counts up until a much more recent point, meaning that the range of rows we need to count in `event_push_actions` is much smaller. This needs two major changes: 1. When we get a receipt we need to recalculate `event_push_summary` rather than just delete it 2. The logic for deleting `event_push_actions` is now divorced from calculating `event_push_summary`. In future it would be good to calculate `event_push_summary` while we persist a new event (it should just be a case of adding one to the relevant rows in `event_push_summary`), as that will further simplify the get counts logic and remove the need for us to periodically update `event_push_summary` in a background job.
* Use READ COMMITTED isolation level when inserting read receipts (#12957)Nick Mills-Barrett2022-06-091-0/+5
|
* Clean-up some receipts code (#12888)Patrick Cloke2022-05-271-42/+47
| | | | | * Properly marks private methods as private. * Adds missing docstrings. * Rework inline methods.
* Additional constants for EDU types. (#12884)Patrick Cloke2022-05-271-4/+4
| | | Instead of hard-coding strings in many places.
* Avoid attempting to delete push actions for remote users. (#12879)Patrick Cloke2022-05-261-1/+4
| | | | Remote users will never have push actions, so we can avoid a database round-trip/transaction completely.
* Remove unused receipt datastore methods. (#12632)Patrick Cloke2022-05-051-54/+0
| | | The last usage was removed in 5a1dd297c3ce105a7f516d9d9fe87b94b9d356c8 (#8059).
* Implement changes to MSC2285 (hidden read receipts) (#12168)Šimon Brandner2022-05-041-32/+110
| | | | | * Changes hidden read receipts to be a separate receipt type (instead of a field on `m.read`). * Updates the `/receipts` endpoint to accept `m.fully_read`.
* Improve the docstrings for the receipts store. (#12581)Patrick Cloke2022-04-281-5/+51
|
* Prefill more stream change caches. (#12372)Erik Johnston2022-04-051-1/+12
|
* Add some type hints to datastore. (#12255)Dirk Klimpel2022-03-281-12/+25
|
* Type hint the constructors of the data store classes (#11555)Sean Quah2021-12-131-2/+11
|
* Add a constant for receipt types (m.read). (#11531)Patrick Cloke2021-12-081-33/+68
| | | And expand some type hints in the receipts storage module.
* Add type hints for most `HomeServer` parameters (#11095)Sean Quah2021-10-221-2/+5
|
* Add type hints for event streams. (#10856)Patrick Cloke2021-09-211-3/+3
|
* Combine `LruCache.invalidate` and `invalidate_many` (#9973)Richard van der Hoff2021-05-271-4/+2
| | | | | | | | | | * Make `invalidate` and `invalidate_many` do the same thing ... so that we can do either over the invalidation replication stream, and also because they always confused me a bit. * Kill off `invalidate_many` * changelog
* Remove redundant "coding: utf-8" lines (#9786)Jonathan de Jong2021-04-141-1/+0
| | | | | | | Part of #9744 Removes all redundant `# -*- coding: utf-8 -*-` lines from files, as python 3 automatically reads source code as utf-8 now. `Signed-off-by: Jonathan de Jong <jonathan@automatia.nl>`
* Update black, and run auto formatting over the codebase (#9381)Eric Eastwood2021-02-161-3/+4
| | | | | | | - Update black version to the latest - Run black auto formatting over the codebase - Run autoformatting according to [`docs/code_style.md `](https://github.com/matrix-org/synapse/blob/80d6dc9783aa80886a133756028984dbf8920168/docs/code_style.md) - Update `code_style.md` docs around installing black to use the correct version
* Fix some typos.Patrick Cloke2021-02-121-3/+3
|
* Fix receipts or account data not being sent down sync (#9193)Erik Johnston2021-01-211-2/+2
| | | | | Introduced in #9104 This wasn't picked up by the tests as this is all fine the first time you run Synapse (after upgrading), but then when you restart the wrong value is pulled from `stream_positions`.
* Allow moving account data and receipts streams off master (#9104)Erik Johnston2021-01-181-37/+71
|
* Improve appservice handler to send only the most recent read receipts when ↵Will Hunt2020-11-181-1/+6
| | | | | | | | | | | | | | | | | | | no stream_id is stored. (#8744) * Make this line debug (it's noisy) * Don't include from_key for presence if we are at 0 * Limit read receipts for all rooms to 100 * changelog.d/8744.bugfix * Allow from_key to be None * Update 8744.bugfix * The from_key is superflous * Update comment
* Add `DeferredCache.get_immediate` method (#8568)Richard van der Hoff2020-10-191-10/+1
| | | | | | | | | | | * Add `DeferredCache.get_immediate` method A bunch of things that are currently calling `DeferredCache.get` are only really interested in the result if it's completed. We can optimise and simplify this case. * Remove unused 'default' parameter to DeferredCache.get() * another get_immediate instance
* Send some ephemeral events to appservices (#8437)Will Hunt2020-10-151-0/+55
| | | Optionally sends typing, presence, and read receipt information to appservices.
* Use `async with` for ID gens (#8383)Erik Johnston2020-09-231-1/+1
| | | This will allow us to hit the DB after we've finished using the generated stream ID.
* Simplify super() calls to Python 3 syntax. (#8344)Patrick Cloke2020-09-181-2/+2
| | | | | | | This converts calls like super(Foo, self) -> super(). Generated with: sed -i "" -Ee 's/super\([^\(]+\)/super()/g' **/*.py
* Switch metaclass initialization to python 3-compatible syntax (#8326)Jonathan de Jong2020-09-161-5/+3
|
* Convert additional databases to async/await (#8199)Patrick Cloke2020-09-011-5/+9
|
* Convert simple_update* and simple_select* to async (#8173)Patrick Cloke2020-08-271-3/+5
|
* Convert simple_select_one and simple_select_one_onecol to async (#8162)Patrick Cloke2020-08-261-2/+4
|
* Make StreamIdGen `get_next` and `get_next_mult` async (#8161)Erik Johnston2020-08-251-2/+1
| | | | This is mainly so that `StreamIdGenerator` and `MultiWriterIdGenerator` will have the same interface, allowing them to be used interchangeably.
* Convert receipts and events databases to async/await. (#8076)Patrick Cloke2020-08-141-36/+46
|
* Convert misc database code to async (#8087)Patrick Cloke2020-08-141-3/+2
|
* Reduce unnecessary whitespace in JSON. (#7372)David Vo2020-08-071-5/+4
|
* Rename database classes to make some sense (#8033)Erik Johnston2020-08-051-0/+591