aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lisp/mastodon-tl.el12
-rw-r--r--test/mastodon-tl-tests.el65
2 files changed, 45 insertions, 32 deletions
diff --git a/lisp/mastodon-tl.el b/lisp/mastodon-tl.el
index f400cc1..ea67f89 100644
--- a/lisp/mastodon-tl.el
+++ b/lisp/mastodon-tl.el
@@ -837,7 +837,8 @@ TIMESTAMP is assumed to be in the past."
(let* ((time-difference (time-subtract current-time timestamp))
(seconds-difference (float-time time-difference))
(tmp (mastodon-tl--human-duration (max 0 seconds-difference))))
- (cons (concat (car tmp) " ago")
+ ;; revert to old just now style for < 1 min
+ (cons (concat (car tmp) (if (string= "just now" (car tmp)) "" " ago"))
(time-add current-time (cdr tmp)))))
(defun mastodon-tl--relative-time-description (timestamp &optional current-time)
@@ -1337,8 +1338,10 @@ displayed when the duration is smaller than a minute)."
(if n2 (setq n2 (truncate n2)))
(cond
((null n2)
- (cons (format "%d %s%s" n1 unit1 (if (> n1 1) "s" ""))
- (max resolution res1)))
+ ;; revert to old just now style for < 1 min:
+ (cons "just now" 60))
+ ;; (cons (format "%d %s%s" n1 unit1 (if (> n1 1) "s" ""))
+ ;; (max resolution res1)))
((< (* res2 n2) resolution)
(cons (format "%d %s%s" n1 unit1 (if (> n1 1) "s" ""))
(max resolution res2)))
@@ -2610,7 +2613,8 @@ ACCOUNT-ID, COMMENT, ITEM-ID, FORWARD-P, CAT, and RULES are all from
,(when item-id `("status_ids[]" . ,item-id))
,(when forward-p `("forward" . ,forward-p))
,(when cat `("category" . ,cat))))))
- (when rules
+ (if (not rules)
+ params
(let ((alist
(mastodon-http--build-array-params-alist "rule_ids[]" rules)))
(append alist params)))))
diff --git a/test/mastodon-tl-tests.el b/test/mastodon-tl-tests.el
index 6d9ab9a..183f83d 100644
--- a/test/mastodon-tl-tests.el
+++ b/test/mastodon-tl-tests.el
@@ -220,6 +220,9 @@ Strict-Transport-Security: max-age=31536000
'(("since_id" . "12345"))))
(mastodon-tl--updated-json "timelines/foo" "12345"))))
+;; broken by monnier's `mastodon-tl--human-duration', which uses "secs" rather
+;; than "just now". its not just the abbrevs, also the rounding works
+;; differently
(ert-deftest mastodon-tl--relative-time-description ()
"Should format relative time as expected"
(cl-labels ((minutes (n) (* n 60))
@@ -232,32 +235,35 @@ Strict-Transport-Security: max-age=31536000
(mastodon-tl--relative-time-description timestamp)))
(check (seconds expected)
(should (string= (format-seconds-since seconds) expected))))
- (check 1 "just now")
- (check 59 "just now")
- (check 60 "1 minute ago")
- (check 89 "1 minute ago") ;; rounding down
- (check 91 "2 minutes ago") ;; rounding up
- (check (minutes 3.49) "3 minutes ago") ;; rounding down
- (check (minutes 3.52) "4 minutes ago")
- (check (minutes 59) "59 minutes ago")
+ (check 1 "1 sec ago")
+ (check 59 "59 secs ago")
+ (check 60 "1 min ago")
+ (check 89 "1 min ago") ;; rounding down
+ (check 91 "1 min ago") ;"2 minutes ago") ;; rounding up
+ (check (minutes 3.49) "3 mins ago") ;; rounding down
+ (check (minutes 3.52) "3 mins ago") ;"4 minutes ago")
+ (check (minutes 59) "59 mins ago")
(check (minutes 60) "1 hour ago")
- (check (minutes 89) "1 hour ago")
- (check (minutes 91) "2 hours ago")
- (check (hours 3.49) "3 hours ago") ;; rounding down
- (check (hours 3.51) "4 hours ago") ;; rounding down
- (check (hours 23.4) "23 hours ago")
- (check (hours 23.6) "1 day ago") ;; rounding up
- (check (days 1.48) "1 day ago") ;; rounding down
- (check (days 1.52) "2 days ago") ;; rounding up
- (check (days 6.6) "1 week ago") ;; rounding up
- (check (weeks 2.49) "2 weeks ago") ;; rounding down
- (check (weeks 2.51) "3 weeks ago") ;; rounding down
- (check (1- (weeks 52)) "52 weeks ago")
- (check (weeks 52) "1 year ago")
- (check (years 2.49) "2 years ago") ;; rounding down
- (check (years 2.51) "3 years ago") ;; rounding down
+ (check (minutes 89) "1 hour, 29 mins ago")
+ (check (minutes 91) "1 hour, 31 mins ago") ;"2 hours ago")
+ (check (hours 3.49) "3 hours, 29 mins ago") ; "3 hours ago") ;; rounding down
+ (check (hours 3.51) "3 hours, 30 mins ago") ; "4 hours ago") ;; rounding down
+ (check (hours 23.4) "23 hours, 24 mins ago"); "23 hours ago")
+ (check (hours 23.6) "23 hours, 36 mins ago") ; "1 day ago") ;; rounding up
+ (check (days 1.48) "1 day, 11 hours ago") ; "1 day ago") ;; rounding down
+ (check (days 1.52) "1 day, 12 hours ago"); "2 days ago") ;; rounding up
+ (check (days 6.6) "6 days, 14 hours ago"); "1 week ago") ;; rounding up
+ (check (weeks 2.49) "2 weeks, 3 days ago"); "2 weeks ago") ;; rounding down
+ (check (weeks 2.51) "2 weeks, 3 days ago"); "3 weeks ago") ;; rounding down
+ (check (1- (weeks 52)) "11 months, 4 weeks ago") ;"52 weeks ago")
+ (check (weeks 52) "11 months, 4 weeks ago") ;"1 year ago")
+ (check (years 2.49) "2 years, 5 months ago"); "2 years ago") ;; rounding down
+ (check (years 2.51) "2 years, 6 months ago"); "3 years ago") ;; rounding down
))
+;; broken by monnier's `mastodon-tl--human-duration', which uses "secs" rather
+;; than "just now". its not just the abbrevs, also the rounding works
+;; differently
(ert-deftest mastodon-tl--relative-time-details--next-update ()
"Should calculate the next update time information as expected"
(let ((current-time (current-time)))
@@ -536,7 +542,10 @@ Strict-Transport-Security: max-age=31536000
(should (equal '(22782 21551) (plist-get properties 'timestamp)))
(should (string-equal ;;"7 minutes ago"
;; "7 mins ago" ;; not sure why its diff now
- "7 years, 3 months ago"
+
+ ;; FIXME: this value has become really relative so we will have to
+ ;; keep changing it!
+ "7 years, 4 months ago"
(plist-get properties 'display)))))))
(ert-deftest mastodon-tl--consider-timestamp-for-updates-no-active-callback ()
@@ -1181,9 +1190,9 @@ correct value for following, as well as notifications enabled or disabled."
(stub y-or-n-p => t) ; yes to all
(mock (mastodon-tl--read-rules-ids) => '(1 2 3))
(should (equal (mastodon-tl--report-params account toot)
- '(("rule_ids[]" . 3)
+ '(("rule_ids[]" . 1)
("rule_ids[]" . 2)
- ("rule_ids[]" . 1)
+ ("rule_ids[]" . 3)
("account_id" . 42)
("comment" . "Dummy complaint")
("status_ids[]" . 61208)
@@ -1194,9 +1203,9 @@ correct value for following, as well as notifications enabled or disabled."
(should (equal
(mastodon-tl--report-build-params 42 "Dummy complaint"
61208 "true" nil '(1 2 3))
- '(("rule_ids[]" . 3)
+ '(("rule_ids[]" . 1)
("rule_ids[]" . 2)
- ("rule_ids[]" . 1)
+ ("rule_ids[]" . 3)
("account_id" . 42)
("comment" . "Dummy complaint")
("status_ids[]" . 61208)