From 44f71422cc235fd1aba8f9522d3ef9ffad649e40 Mon Sep 17 00:00:00 2001 From: cage Date: Wed, 4 Jun 2025 16:02:13 +0200 Subject: [PATCH] - [gemini] grouped gemlog page entries by date. --- po/es.po | 2 +- src/misc-utils.lisp | 3 +++ src/package.lisp | 1 + src/program-events.lisp | 11 ++++++++++- 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/po/es.po b/po/es.po index f0e9cf5..81a1318 100644 --- a/po/es.po +++ b/po/es.po @@ -1792,7 +1792,7 @@ msgstr "" msgid "(directory)" msgstr "" -#: src/software-configuration.lisp:959 +#: src/software-configuration.lisp:961 msgid "This message was encrypted" msgstr "Este mensaje estaba cifrado" diff --git a/src/misc-utils.lisp b/src/misc-utils.lisp index 8c0f6e4..bf3b8f9 100644 --- a/src/misc-utils.lisp +++ b/src/misc-utils.lisp @@ -1016,6 +1016,9 @@ to the array" (local-time:adjust-timestamp! object (:set units new-value)) (local-time:adjust-timestamp! object (:offset units new-value)))) +(defun timestamp= (a b) + (local-time:timestamp= a b)) + ;; threads (defmacro with-lock-held ((lock) &body body) diff --git a/src/package.lisp b/src/package.lisp index 7ca8ef2..c167116 100644 --- a/src/package.lisp +++ b/src/package.lisp @@ -305,6 +305,7 @@ :local-time-obj-now :time-n-days-ago :modify-timestamp + :timestamp= :current-year :extract-year-from-timestamp :format-time diff --git a/src/program-events.lisp b/src/program-events.lisp index 7e2c85a..1218c9e 100644 --- a/src/program-events.lisp +++ b/src/program-events.lisp @@ -1629,7 +1629,9 @@ (format stream "~a~2%" (gemini-parser:geminize-h2 (_ "No subtitle")))) - (loop for entry in entries do + (loop for entry in entries + with current-date = nil + do (let* ((link (db:row-post-link entry)) (date-format (swconf:date-fmt swconf:+key-message-window+)) (date (db:row-post-date entry)) @@ -1638,6 +1640,13 @@ " " (db:row-post-title entry))) (seenp (db-utils:db-not-nil-p (db:row-post-seenp entry)))) + (cond + ((null current-date) + (setf current-date encoded-date)) + ((not (misc:timestamp= encoded-date + current-date)) + (setf current-date encoded-date) + (format stream "~2%"))) (format stream (_ "~a ~:[(not opened)~;(opened)~]~%") (gemini-parser:render-gemini-link link