Ensure that a URL exists in the content during push. (#8965)

This fixes an KeyError exception, after this PR the content
is just considered unknown.
This commit is contained in:
Patrick Cloke 2020-12-18 07:26:15 -05:00 committed by GitHub
parent a7a913918c
commit 4136255d3c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 7 additions and 2 deletions

1
changelog.d/8965.bugfix Normal file
View file

@ -0,0 +1 @@
Fix a longstanding bug where a `m.image` event without a `url` would cause errors on push.

View file

@ -486,7 +486,11 @@ class Mailer:
def add_image_message_vars( def add_image_message_vars(
self, messagevars: Dict[str, Any], event: EventBase self, messagevars: Dict[str, Any], event: EventBase
) -> None: ) -> None:
messagevars["image_url"] = event.content["url"] """
Potentially add an image URL to the message variables.
"""
if "url" in event.content:
messagevars["image_url"] = event.content["url"]
async def make_summary_text( async def make_summary_text(
self, self,

View file

@ -29,7 +29,7 @@
{{ message.body_text_html }} {{ message.body_text_html }}
{%- elif message.msgtype == "m.notice" %} {%- elif message.msgtype == "m.notice" %}
{{ message.body_text_html }} {{ message.body_text_html }}
{%- elif message.msgtype == "m.image" %} {%- elif message.msgtype == "m.image" and message.image_url %}
<img src="{{ message.image_url|mxc_to_http(640, 480, scale) }}" /> <img src="{{ message.image_url|mxc_to_http(640, 480, scale) }}" />
{%- elif message.msgtype == "m.file" %} {%- elif message.msgtype == "m.file" %}
<span class="filename">{{ message.body_text_plain }}</span> <span class="filename">{{ message.body_text_plain }}</span>