summary refs log tree commit diff
path: root/synapse
diff options
context:
space:
mode:
Diffstat (limited to 'synapse')
-rw-r--r--synapse/http/client.py2
-rw-r--r--synapse/python_dependencies.py1
-rw-r--r--synapse/rest/media/v1/preview_url_resource.py17
3 files changed, 11 insertions, 9 deletions
diff --git a/synapse/http/client.py b/synapse/http/client.py
index 127690e534..a735300db0 100644
--- a/synapse/http/client.py
+++ b/synapse/http/client.py
@@ -21,7 +21,7 @@ import synapse.metrics
 
 from canonicaljson import encode_canonical_json
 
-from twisted.internet import defer, reactor, ssl
+from twisted.internet import defer, reactor, ssl, protocol
 from twisted.web.client import (
     Agent, readBody, FileBodyProducer, PartialDownloadError,
 )
diff --git a/synapse/python_dependencies.py b/synapse/python_dependencies.py
index 0a6043ae8d..d12ef15043 100644
--- a/synapse/python_dependencies.py
+++ b/synapse/python_dependencies.py
@@ -36,6 +36,7 @@ REQUIREMENTS = {
     "blist": ["blist"],
     "pysaml2>=3.0.0,<4.0.0": ["saml2>=3.0.0,<4.0.0"],
     "pymacaroons-pynacl": ["pymacaroons"],
+    "lxml>=3.6.0": ["lxml"],
 }
 CONDITIONAL_REQUIREMENTS = {
     "web_client": {
diff --git a/synapse/rest/media/v1/preview_url_resource.py b/synapse/rest/media/v1/preview_url_resource.py
index fb8ab3096f..5c8e20e23c 100644
--- a/synapse/rest/media/v1/preview_url_resource.py
+++ b/synapse/rest/media/v1/preview_url_resource.py
@@ -13,10 +13,11 @@
 # limitations under the License.
 
 from twisted.web.resource import Resource
+from twisted.internet import defer
 from lxml import html
 from synapse.http.client import SimpleHttpClient
-from synapse.http.server import respond_with_json_bytes
-from simplejson import json
+from synapse.http.server import request_handler, respond_with_json_bytes
+import ujson as json
 
 import logging
 logger = logging.getLogger(__name__)
@@ -75,7 +76,7 @@ class PreviewUrlResource(Resource):
             # "og:url"         : "https://twitter.com/matrixdotorg/status/684074366691356672"
             # "og:title"       : "Matrix on Twitter"
             # "og:image"       : "https://pbs.twimg.com/profile_images/500400952029888512/yI0qtFi7_400x400.png"
-            # "og:description" : "“Synapse 0.12 is out! Lots of polishing, performance &amp;amp; bugfixes: /sync API, /r0 prefix, fulltext search, 3PID invites https://t.co/5alhXLLEGP”"
+            # "og:description" : "Synapse 0.12 is out! Lots of polishing, performance &amp;amp; bugfixes: /sync API, /r0 prefix, fulltext search, 3PID invites https://t.co/5alhXLLEGP"
             # "og:site_name"   : "Twitter"
 
             og = {}
@@ -143,15 +144,15 @@ class PreviewUrlResource(Resource):
             os.remove(fname)
             raise
 
-        return {
+        yield ({
             "media_type": media_type,
             "media_length": length,
             "download_name": download_name,
             "created_ts": time_now_ms,
             "filesystem_id": file_id,
             "filename": fname,
-        }
-
+        })
+        return
 
     def _is_media(content_type):
         if content_type.lower().startswith("image/"):
@@ -159,6 +160,6 @@ class PreviewUrlResource(Resource):
 
     def _is_html(content_type):
         content_type = content_type.lower()
-        if content_type == "text/html" or
-           content_type.startswith("application/xhtml"):
+        if (content_type == "text/html" or
+            content_type.startswith("application/xhtml")):
             return True