|
|
|
@ -327,21 +327,37 @@ class TransportLayerClient(object): |
|
|
|
|
include_all_networks=False, |
|
|
|
|
third_party_instance_id=None, |
|
|
|
|
): |
|
|
|
|
path = _create_v1_path("/publicRooms") |
|
|
|
|
|
|
|
|
|
args = {"include_all_networks": "true" if include_all_networks else "false"} |
|
|
|
|
if third_party_instance_id: |
|
|
|
|
args["third_party_instance_id"] = (third_party_instance_id,) |
|
|
|
|
if limit: |
|
|
|
|
args["limit"] = [str(limit)] |
|
|
|
|
if since_token: |
|
|
|
|
args["since"] = [since_token] |
|
|
|
|
|
|
|
|
|
# TODO(erikj): Actually send the search_filter across federation. |
|
|
|
|
|
|
|
|
|
response = yield self.client.get_json( |
|
|
|
|
destination=remote_server, path=path, args=args, ignore_backoff=True |
|
|
|
|
) |
|
|
|
|
if search_filter: |
|
|
|
|
# this uses MSC2197 (Search Filtering over Federation) |
|
|
|
|
path = _create_v1_path("/publicRooms") |
|
|
|
|
|
|
|
|
|
data = {"include_all_networks": "true" if include_all_networks else "false"} |
|
|
|
|
if third_party_instance_id: |
|
|
|
|
data["third_party_instance_id"] = third_party_instance_id |
|
|
|
|
if limit: |
|
|
|
|
data["limit"] = str(limit) |
|
|
|
|
if since_token: |
|
|
|
|
data["since"] = since_token |
|
|
|
|
|
|
|
|
|
data["filter"] = search_filter |
|
|
|
|
|
|
|
|
|
response = yield self.client.post_json( |
|
|
|
|
destination=remote_server, path=path, data=data, ignore_backoff=True |
|
|
|
|
) |
|
|
|
|
else: |
|
|
|
|
path = _create_v1_path("/publicRooms") |
|
|
|
|
|
|
|
|
|
args = {"include_all_networks": "true" if include_all_networks else "false"} |
|
|
|
|
if third_party_instance_id: |
|
|
|
|
args["third_party_instance_id"] = (third_party_instance_id,) |
|
|
|
|
if limit: |
|
|
|
|
args["limit"] = [str(limit)] |
|
|
|
|
if since_token: |
|
|
|
|
args["since"] = [since_token] |
|
|
|
|
|
|
|
|
|
response = yield self.client.get_json( |
|
|
|
|
destination=remote_server, path=path, args=args, ignore_backoff=True |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
return response |
|
|
|
|
|
|
|
|
|