diff --git a/looptober.clj b/looptober.clj index 1004551..a9fa26a 100644 --- a/looptober.clj +++ b/looptober.clj @@ -11,7 +11,7 @@ (first (filter #(when (pred %) (reduced %)) xs))) ;; the nested map looks like this: -;; {"instance.url" [timestamp-in-ms [status ...]]} +;; {["instance.url" token] [timestamp-in-ms [status ...]]} (defonce response-cache (atom {})) (def update-interval (* 1000 60 30)) ;; 30 min @@ -37,11 +37,12 @@ ([instance-url token] ;; cache update logic (let [now (System/currentTimeMillis) - [last-fetch statuses] (get @response-cache instance-url) + cache-key [instance-url token] + [last-fetch statuses] (get @response-cache cache-key) max-status (first statuses)] (if (or (nil? last-fetch) (> (- now last-fetch) update-interval)) - (let [updated (swap! response-cache assoc instance-url + (let [updated (swap! response-cache assoc cache-key [now (let [new-statuses (paginate (format "%s/api/v1/timelines/tag/looptober" instance-url) token @@ -50,7 +51,7 @@ (neg? (compare (:created_at max-status "2023-10-01T00:00:00.000Z") (:created_at status))))) (:id max-status))] (concat (filterv audio-attachment new-statuses) statuses))]) - [_ statuses] (get updated instance-url)] + [_ statuses] (get updated cache-key)] statuses) statuses))))