                            (.. System out
                                (println (pr-str [:failure resp])))
                            (if (twh/rate-limit-error? @(:status resp))
-                             (do (Thread/sleep (20 * 1000))
+                             (do (Thread/sleep (60 * 1000))
                                  (rec))
                              (twh/response-throw-error resp)))
                          twh/exception-rethrow)))

     frequencies)
)

(comment
  (def collected (atom []))

  (def ctx (tapi/make-api-context "https" "stream.twitter.com" "1.1"))

  (let [w (java.io.PipedWriter.)
        r (java.io.PipedReader. w)]
    (ts/statuses-filter :params {:track "InternetRadio"}
                        :api-context ctx
                        :oauth-creds credentials
                        :callbacks (AsyncStreamingCallback.
                                     (fn [_ body]
                                       (io/copy (.toByteArray body) w))
                                     (comp println twh/response-return-everything)
                                     twh/exception-print))
    (future
      (->> (json/parsed-seq r true)
           (map (fn [j]
                  (swap! collected conj j)))
           doall)))

  (->> collected deref
       (map (comp :hashtags :entities))
       (mapcat #(map :text %))
       frequencies)
  )

;; Taken from Sente README
(let [{:keys [ch-recv
              send-fn

                                  :params {:screen-name "InternetRadio"})
                   :body)]
      {:name (:screen_name user)
       :id (:id user)
       :number-of-tweets (:statuses_count user)
       :last-tweet-id (-> user :status :id)})
    (catch Exception _ nil)))
