summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoas Schilling <coding@schilljs.com>2023-07-24 21:37:34 +0200
committerJoas Schilling <coding@schilljs.com>2023-10-16 15:46:11 +0200
commitfa58ad76fc941d17b1eda51e071eae4a0470cc5b (patch)
tree34347d498b12d0dc714080861eba2db05c2b0c34
parent2df805268e47a1cdee4ca5c21e488a257c554ccd (diff)
feat(attachments): Add option for captions
Signed-off-by: Joas Schilling <coding@schilljs.com>
-rw-r--r--lib/Chat/Parser/SystemMessage.php4
-rw-r--r--lib/Chat/SystemMessage/Listener.php6
2 files changed, 10 insertions, 0 deletions
diff --git a/lib/Chat/Parser/SystemMessage.php b/lib/Chat/Parser/SystemMessage.php
index c9f91c17e..be4aaf4b5 100644
--- a/lib/Chat/Parser/SystemMessage.php
+++ b/lib/Chat/Parser/SystemMessage.php
@@ -409,6 +409,10 @@ class SystemMessage {
} else {
$chatMessage->setMessageType(ChatManager::VERB_MESSAGE);
}
+
+ if (isset($metaData['caption']) && $metaData['caption'] !== '') {
+ $parsedMessage = $metaData['caption'];
+ }
} catch (\Exception $e) {
$parsedMessage = $this->l->t('{actor} shared a file which is no longer available');
if ($currentUserIsActor) {
diff --git a/lib/Chat/SystemMessage/Listener.php b/lib/Chat/SystemMessage/Listener.php
index fa0542ccf..806e6c707 100644
--- a/lib/Chat/SystemMessage/Listener.php
+++ b/lib/Chat/SystemMessage/Listener.php
@@ -373,6 +373,10 @@ class Listener implements IEventListener {
$metaData = json_decode($metaData, true);
$metaData = is_array($metaData) ? $metaData : [];
+ if (!empty($metaData['noMessage'])) {
+ return;
+ }
+
if (isset($metaData['messageType']) && $metaData['messageType'] === 'voice-message') {
if ($share->getNode()->getMimeType() !== 'audio/mpeg'
&& $share->getNode()->getMimeType() !== 'audio/wav') {
@@ -381,6 +385,8 @@ class Listener implements IEventListener {
}
$metaData['mimeType'] = $share->getNode()->getMimeType();
+ $metaData['caption'] = $metaData['caption'] ?? '';
+
$listener->sendSystemMessage($room, 'file_shared', ['share' => $share->getId(), 'metaData' => $metaData]);
}