From b130f5a583949b90a36df32be8ce337959759578 Mon Sep 17 00:00:00 2001
From: Mischa POSLAWSKY
Date: Sun, 2 May 2021 20:21:29 +0200
Subject: [PATCH] issue/activity: append related image to subsequent message
Prefer attribution of significant message instead of preceding images.
---
widget/issue/activity.php | 17 ++++++++++++++---
1 file changed, 14 insertions(+), 3 deletions(-)
diff --git a/widget/issue/activity.php b/widget/issue/activity.php
index 371f11a..a153f87 100644
--- a/widget/issue/activity.php
+++ b/widget/issue/activity.php
@@ -8,17 +8,27 @@ $sql = "SELECT $cols FROM messages m JOIN issues i ON i.id = issue";
$sql .= " WHERE message IS NOT NULL";
$sql .= " ORDER BY m.created DESC LIMIT $limit";
$query = $Db->query($sql);
+$rows = $query->fetchall();
$msgformat = [
"{(?=
\n).+}s" => ' ',
'{(.*)(]+>
)\s*}s' => "$2\n$1",
- '{(?<= '/thumb/300x',
];
print '';
$prev = NULL;
-while ($row = $query->fetch()) {
+foreach ($rows as $i => $row) {
+ $next = $rows[$i + 1] ?? NULL;
+
+ if ($next and $next->issue === $row->issue
+ and preg_match('/\A(?:]*><\/p>)+\z/', $row->message)) {
+ # postpone related image to the following message
+ $next->message = $row->message . $next->message;
+ continue;
+ }
+
if (!$prev or $prev->issue !== $row->issue or $prev->author !== $row->author
or !preg_match('/\A
message)) {
print '
- ';
@@ -37,9 +47,10 @@ while ($row = $query->fetch()) {
);
print "";
print '
';
- print '- ';
}
+ print '
- ';
print preg_replace(array_keys($msgformat), array_values($msgformat), $row->message);
+ print "\n";
$prev = $row;
}
--
2.30.0