             e))))))
 
 
-(defn- -games-url->games [url max-per-page page]
+(defn- -games-url->games [url max-per-page page total-pages]
+  (-> (str "Downloading page " (inc page) "/" total-pages ".\n")
+      color/cyan
+      console/print-err)
+
+  (when (pos? page)
+    (Thread/sleep nice-downloader-waiting-time))
+
   (try
     (-> url
         (client/get {:query-params

    [fr.tedoldi.lichess.game.retriever.console :as console]))

(def ^:private nice-downloader-waiting-time 300)

(defn username->user [url username]
  (let [url (str url "/user/" username)]


                         :nbResults)

        total-pages  (-> nb-results
                         (/ max-per-page)
                         Math/ceil
                         int)]

    (-> (str "Found " nb-results " games ~ " total-pages " pages to sync.\n")
        color/cyan
        console/print-err)

    (let [page-nb->game (comp

                          (filter (fn [{:keys [timestamp]}]
                                    (or
                                      (nil? since-timestamp)
                                      (and timestamp
                                           (> timestamp since-timestamp)))))

                          (map #(-games-url->games url max-per-page % total-pages)))]
      (lazy-cat
        (sequence page-nb->game
                  (range total-pages))))))
