(defn fetch-user [id]
  (let [user (fetch-item id)
        score (fetch-score id)]
    (assoc user :score score)))

(defn fetch-post [id]
  (let [post (fetch-item id)
        user (fetch-user (get-in post [:owner :id]))]
    (assoc post :owner user)))

(defn timeline-ids [username]
  (fetch-collection (str "@" username)))

(defn timeline-posts [username]
  (->> username
       timeline-ids
       (take 20)
       (map fetch-post)))