summaryrefslogtreecommitdiff
path: root/tw/services
diff options
context:
space:
mode:
authorTimo Wilken2023-02-19 16:56:50 +0100
committerTimo Wilken2023-02-19 16:56:50 +0100
commit9989ab2f85bafd3b1f8fdacc02fce9e3c4b7d90a (patch)
tree8de2681377ab26893210bfddbf667f04a2f6201a /tw/services
parentafbfc0f4e410a9fefd5aa2f1c818ae8271c77f17 (diff)
Simplify yt-dlp scheduling function
Diffstat (limited to 'tw/services')
-rw-r--r--tw/services/media.scm23
1 files changed, 11 insertions, 12 deletions
diff --git a/tw/services/media.scm b/tw/services/media.scm
index 5fd5b2b5..910983a1 100644
--- a/tw/services/media.scm
+++ b/tw/services/media.scm
@@ -17,18 +17,17 @@
(define (random-time-every-second-night day-predicate)
#~(lambda (now)
- (let* ((even-day
- (if (#$day-predicate (tm:yday (localtime now)))
- now
- (next-day-from now)))
- (deterministic-value
- (number->string (tm:yday (localtime even-day)))))
- ;; Between 1 and 6 a.m., randomly, but deterministically for each
- ;; day (to avoid runs being skipped in case mcron is restarted).
- ;; (random 6 (seed->random-state yday)) isn't chaotic enough.
- (next-minute-from
- (next-hour-from even-day (list (1+ (string-hash deterministic-value 6))))
- (list (string-hash deterministic-value 60))))))
+ (next-minute-from
+ (next-hour-from
+ ;; If today's day number satisfies `day-predicate' (e.g. `even?'),
+ ;; then run today, else tomorrow.
+ (if (#$day-predicate (tm:yday (localtime now)))
+ now
+ (next-day-from now))
+ ;; Between 1 and 6 a.m., randomly. The certbot service uses `random'
+ ;; like this too, so it should be safe.
+ (list (1+ (random 6))))
+ (list (random 60)))))