diff options
Diffstat (limited to 'synapse')
-rw-r--r-- | synapse/push/action_generator.py | 26 | ||||
-rw-r--r-- | synapse/rest/client/v2_alpha/register.py | 5 | ||||
-rw-r--r-- | synapse/rest/media/v1/preview_url_resource.py | 10 | ||||
-rw-r--r-- | synapse/rest/media/v1/thumbnail_resource.py | 32 |
4 files changed, 41 insertions, 32 deletions
diff --git a/synapse/push/action_generator.py b/synapse/push/action_generator.py index 59e512f507..a0160994b7 100644 --- a/synapse/push/action_generator.py +++ b/synapse/push/action_generator.py @@ -17,6 +17,8 @@ from twisted.internet import defer from .bulk_push_rule_evaluator import evaluator_for_event +from synapse.util.metrics import Measure + import logging logger = logging.getLogger(__name__) @@ -25,6 +27,7 @@ logger = logging.getLogger(__name__) class ActionGenerator: def __init__(self, hs): self.hs = hs + self.clock = hs.get_clock() self.store = hs.get_datastore() # really we want to get all user ids and all profile tags too, # since we want the actions for each profile tag for every user and @@ -35,14 +38,15 @@ class ActionGenerator: @defer.inlineCallbacks def handle_push_actions_for_event(self, event, context, handler): - bulk_evaluator = yield evaluator_for_event( - event, self.hs, self.store - ) - - actions_by_user = yield bulk_evaluator.action_for_event_by_user( - event, handler, context.current_state - ) - - context.push_actions = [ - (uid, actions) for uid, actions in actions_by_user.items() - ] + with Measure(self.clock, "handle_push_actions_for_event"): + bulk_evaluator = yield evaluator_for_event( + event, self.hs, self.store + ) + + actions_by_user = yield bulk_evaluator.action_for_event_by_user( + event, handler, context.current_state + ) + + context.push_actions = [ + (uid, actions) for uid, actions in actions_by_user.items() + ] diff --git a/synapse/rest/client/v2_alpha/register.py b/synapse/rest/client/v2_alpha/register.py index d32c06c882..ff8f69ddbf 100644 --- a/synapse/rest/client/v2_alpha/register.py +++ b/synapse/rest/client/v2_alpha/register.py @@ -100,6 +100,11 @@ class RegisterRestServlet(RestServlet): # == Application Service Registration == if appservice: + # Set the desired user according to the AS API (which uses the + # 'user' key not 'username'). Since this is a new addition, we'll + # fallback to 'username' if they gave one. + if isinstance(body.get("user"), basestring): + desired_username = body["user"] result = yield self._do_appservice_registration( desired_username, request.args["access_token"][0] ) diff --git a/synapse/rest/media/v1/preview_url_resource.py b/synapse/rest/media/v1/preview_url_resource.py index 8e1cf6e2fb..c27ba72735 100644 --- a/synapse/rest/media/v1/preview_url_resource.py +++ b/synapse/rest/media/v1/preview_url_resource.py @@ -17,7 +17,6 @@ from .base_resource import BaseMediaResource from twisted.web.server import NOT_DONE_YET from twisted.internet import defer -from urlparse import urlparse, urlsplit, urlunparse from synapse.api.errors import ( SynapseError, Codes, @@ -36,6 +35,7 @@ import re import fnmatch import cgi import ujson as json +import urlparse import logging logger = logging.getLogger(__name__) @@ -79,7 +79,7 @@ class PreviewUrlResource(BaseMediaResource): # impose the URL pattern blacklist if hasattr(self, "url_preview_url_blacklist"): - url_tuple = urlsplit(url) + url_tuple = urlparse.urlsplit(url) for entry in self.url_preview_url_blacklist: match = True for attrib in entry: @@ -338,15 +338,15 @@ class PreviewUrlResource(BaseMediaResource): defer.returnValue(og) def _rebase_url(self, url, base): - base = list(urlparse(base)) - url = list(urlparse(url)) + base = list(urlparse.urlparse(base)) + url = list(urlparse.urlparse(url)) if not url[0]: # fix up schema url[0] = base[0] or "http" if not url[1]: # fix up hostname url[1] = base[1] if not url[2].startswith('/'): url[2] = re.sub(r'/[^/]+$', '/', base[2]) + url[2] - return urlunparse(url) + return urlparse.urlunparse(url) @defer.inlineCallbacks def _download_url(self, url, user): diff --git a/synapse/rest/media/v1/thumbnail_resource.py b/synapse/rest/media/v1/thumbnail_resource.py index 513b445688..40ef22459c 100644 --- a/synapse/rest/media/v1/thumbnail_resource.py +++ b/synapse/rest/media/v1/thumbnail_resource.py @@ -72,10 +72,10 @@ class ThumbnailResource(BaseMediaResource): self._respond_404(request) return - if media_info["media_type"] == "image/svg+xml": - file_path = self.filepaths.local_media_filepath(media_id) - yield self._respond_with_file(request, media_info["media_type"], file_path) - return + # if media_info["media_type"] == "image/svg+xml": + # file_path = self.filepaths.local_media_filepath(media_id) + # yield self._respond_with_file(request, media_info["media_type"], file_path) + # return thumbnail_infos = yield self.store.get_local_media_thumbnails(media_id) @@ -108,10 +108,10 @@ class ThumbnailResource(BaseMediaResource): self._respond_404(request) return - if media_info["media_type"] == "image/svg+xml": - file_path = self.filepaths.local_media_filepath(media_id) - yield self._respond_with_file(request, media_info["media_type"], file_path) - return + # if media_info["media_type"] == "image/svg+xml": + # file_path = self.filepaths.local_media_filepath(media_id) + # yield self._respond_with_file(request, media_info["media_type"], file_path) + # return thumbnail_infos = yield self.store.get_local_media_thumbnails(media_id) for info in thumbnail_infos: @@ -148,10 +148,10 @@ class ThumbnailResource(BaseMediaResource): desired_method, desired_type): media_info = yield self._get_remote_media(server_name, media_id) - if media_info["media_type"] == "image/svg+xml": - file_path = self.filepaths.remote_media_filepath(server_name, media_id) - yield self._respond_with_file(request, media_info["media_type"], file_path) - return + # if media_info["media_type"] == "image/svg+xml": + # file_path = self.filepaths.remote_media_filepath(server_name, media_id) + # yield self._respond_with_file(request, media_info["media_type"], file_path) + # return thumbnail_infos = yield self.store.get_remote_media_thumbnails( server_name, media_id, @@ -196,10 +196,10 @@ class ThumbnailResource(BaseMediaResource): # We should proxy the thumbnail from the remote server instead. media_info = yield self._get_remote_media(server_name, media_id) - if media_info["media_type"] == "image/svg+xml": - file_path = self.filepaths.remote_media_filepath(server_name, media_id) - yield self._respond_with_file(request, media_info["media_type"], file_path) - return + # if media_info["media_type"] == "image/svg+xml": + # file_path = self.filepaths.remote_media_filepath(server_name, media_id) + # yield self._respond_with_file(request, media_info["media_type"], file_path) + # return thumbnail_infos = yield self.store.get_remote_media_thumbnails( server_name, media_id, |