mirror of
https://github.com/jointakahe/takahe.git
synced 2024-11-21 23:01:00 +00:00
Render non-media PostAttachments (#420)
This commit is contained in:
parent
9dded19172
commit
06f6257645
3 changed files with 51 additions and 3 deletions
|
@ -73,7 +73,11 @@ class PostAttachment(StatorModel):
|
|||
]
|
||||
|
||||
def is_video(self):
|
||||
return self.mimetype in ["video/webm"]
|
||||
return self.mimetype in [
|
||||
"video/mp4",
|
||||
"video/ogg",
|
||||
"video/webm",
|
||||
]
|
||||
|
||||
def thumbnail_url(self) -> RelativeAbsoluteUrl:
|
||||
if self.thumbnail:
|
||||
|
@ -89,11 +93,20 @@ class PostAttachment(StatorModel):
|
|||
def full_url(self):
|
||||
if self.file:
|
||||
return RelativeAbsoluteUrl(self.file.url)
|
||||
else:
|
||||
if self.is_image():
|
||||
return ProxyAbsoluteUrl(
|
||||
f"/proxy/post_attachment/{self.pk}/",
|
||||
remote_url=self.remote_url,
|
||||
)
|
||||
return RelativeAbsoluteUrl(self.remote_url)
|
||||
|
||||
@property
|
||||
def file_display_name(self):
|
||||
if self.remote_url:
|
||||
return self.remote_url.rsplit("/", 1)[-1]
|
||||
if self.file:
|
||||
return self.file.name
|
||||
return f"attachment ({self.mimetype})"
|
||||
|
||||
### ActivityPub ###
|
||||
|
||||
|
|
|
@ -1497,6 +1497,32 @@ form .post {
|
|||
max-width: 100%;
|
||||
}
|
||||
|
||||
.post .attachments .other {
|
||||
grid-column: span 2;
|
||||
padding: 8px;
|
||||
border: 1px solid var(--color-text-duller);
|
||||
background: var(--color-bg-menu);
|
||||
border-radius: 4px;
|
||||
margin-top: 8px;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
.post .attachments .other-label {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.post .attachments .other-label > i {
|
||||
margin-right: 12px;
|
||||
}
|
||||
|
||||
.post .attachments .other:hover {
|
||||
text-decoration: none;
|
||||
background: var(--color-bg-main);
|
||||
color: #FFF;
|
||||
border-color: var(--color-highlight);
|
||||
}
|
||||
|
||||
.post .actions {
|
||||
display: flex;
|
||||
position: relative;
|
||||
|
|
|
@ -50,11 +50,20 @@
|
|||
{% elif attachment.is_video %}
|
||||
<a href="{{ attachment.full_url.relative }}" class="video">
|
||||
<video muted controls loop>
|
||||
<source src="{{ attachment.full_url.relative }}">
|
||||
<source src="{{ attachment.full_url.relative }}" type="{{ attachment.mimetype }}">
|
||||
</video>
|
||||
</a>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% for attachment in post.attachments.all %}
|
||||
{% if not attachment.is_image and not attachment.is_video %}
|
||||
<a href="{{ attachment.full_url.relative }}" class="other">
|
||||
<div class="other-label">
|
||||
<i class="fa-solid fa-download"></i> {{ attachment.file_display_name }}
|
||||
</div>
|
||||
</a>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
|
Loading…
Reference in a new issue