Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
synapse
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container registry
Model registry
Monitor
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Maunium
synapse
Commits
762a758f
Commit
762a758f
authored
6 years ago
by
Matthew Hodgson
Committed by
Richard van der Hoff
6 years ago
Browse files
Options
Downloads
Patches
Plain Diff
lazyload aware /messages (#3589)
parent
3f543dc0
Branches
Branches containing commit
Tags
Tags containing commit
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
changelog.d/3589.feature
+1
-0
1 addition, 0 deletions
changelog.d/3589.feature
synapse/handlers/pagination.py
+34
-1
34 additions, 1 deletion
synapse/handlers/pagination.py
synapse/rest/client/versions.py
+12
-1
12 additions, 1 deletion
synapse/rest/client/versions.py
with
47 additions
and
2 deletions
changelog.d/3589.feature
0 → 100644
+
1
−
0
View file @
762a758f
Add
lazy-loading
support
to
/messages
as
per
MSC1227
This diff is collapsed.
Click to expand it.
synapse/handlers/pagination.py
+
34
−
1
View file @
762a758f
...
@@ -18,7 +18,7 @@ import logging
...
@@ -18,7 +18,7 @@ import logging
from
twisted.internet
import
defer
from
twisted.internet
import
defer
from
twisted.python.failure
import
Failure
from
twisted.python.failure
import
Failure
from
synapse.api.constants
import
Membership
from
synapse.api.constants
import
EventTypes
,
Membership
from
synapse.api.errors
import
SynapseError
from
synapse.api.errors
import
SynapseError
from
synapse.events.utils
import
serialize_event
from
synapse.events.utils
import
serialize_event
from
synapse.types
import
RoomStreamToken
from
synapse.types
import
RoomStreamToken
...
@@ -251,6 +251,33 @@ class PaginationHandler(object):
...
@@ -251,6 +251,33 @@ class PaginationHandler(object):
is_peeking
=
(
member_event_id
is
None
),
is_peeking
=
(
member_event_id
is
None
),
)
)
state
=
None
if
event_filter
and
event_filter
.
lazy_load_members
():
# TODO: remove redundant members
types
=
[
(
EventTypes
.
Member
,
state_key
)
for
state_key
in
set
(
event
.
sender
# FIXME: we also care about invite targets etc.
for
event
in
events
)
]
state_ids
=
yield
self
.
store
.
get_state_ids_for_event
(
events
[
0
].
event_id
,
types
=
types
,
)
if
state_ids
:
state
=
yield
self
.
store
.
get_events
(
list
(
state_ids
.
values
()))
if
state
:
state
=
yield
filter_events_for_client
(
self
.
store
,
user_id
,
state
.
values
(),
is_peeking
=
(
member_event_id
is
None
),
)
time_now
=
self
.
clock
.
time_msec
()
time_now
=
self
.
clock
.
time_msec
()
chunk
=
{
chunk
=
{
...
@@ -262,4 +289,10 @@ class PaginationHandler(object):
...
@@ -262,4 +289,10 @@ class PaginationHandler(object):
"
end
"
:
next_token
.
to_string
(),
"
end
"
:
next_token
.
to_string
(),
}
}
if
state
:
chunk
[
"
state
"
]
=
[
serialize_event
(
e
,
time_now
,
as_client_event
)
for
e
in
state
]
defer
.
returnValue
(
chunk
)
defer
.
returnValue
(
chunk
)
This diff is collapsed.
Click to expand it.
synapse/rest/client/versions.py
+
12
−
1
View file @
762a758f
...
@@ -27,11 +27,22 @@ class VersionsRestServlet(RestServlet):
...
@@ -27,11 +27,22 @@ class VersionsRestServlet(RestServlet):
def
on_GET
(
self
,
request
):
def
on_GET
(
self
,
request
):
return
(
200
,
{
return
(
200
,
{
"
versions
"
:
[
"
versions
"
:
[
# XXX: at some point we need to decide whether we need to include
# the previous version numbers, given we've defined r0.3.0 to be
# backwards compatible with r0.2.0. But need to check how
# conscientious we've been in compatibility, and decide whether the
# middle number is the major revision when at 0.X.Y (as opposed to
# X.Y.Z). And we need to decide whether it's fair to make clients
# parse the version string to figure out what's going on.
"
r0.0.1
"
,
"
r0.0.1
"
,
"
r0.1.0
"
,
"
r0.1.0
"
,
"
r0.2.0
"
,
"
r0.2.0
"
,
"
r0.3.0
"
,
"
r0.3.0
"
,
]
],
# as per MSC1497:
"
unstable_features
"
:
{
"
m.lazy_load_members
"
:
True
,
}
})
})
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment