src/newseasons/itunes.clj @ 279de613dd93

Wrap the http requests to apple.
author Steve Losh <steve@stevelosh.com>
date Wed, 05 Oct 2011 22:19:48 -0400
parents 89f24149ecd7
children (none)
(ns newseasons.itunes
  (:require [clj-http.client :as client]) 
  (:use newseasons.utils)
  (:use [cheshire.core :only (parse-string)]))


(defn itunes-search [params]
  (try
    ((parse-string (:body (client/get "http://itunes.apple.com/search"
                                      {:query-params params})))
       "results")
    (catch java.lang.Exception e
      (println "Failed request to " (:url (.data e))))))

(defn itunes-search-show [query]
  (itunes-search {"term" query
                  "media" "tvShow"
                  "entity" "tvSeason"
                  "attribute" "showTerm"}))


(defn itunes-lookup [field id entity]
  (try
    ((parse-string (:body (client/get "http://itunes.apple.com/lookup"
                                      {:query-params {field id
                                                      "entity" entity}})))
       "results")
    (catch java.lang.Exception e
      (println "Failed request to " (:url (.data e))))))

(defn itunes-lookup-seasons [id]
  (let [results (itunes-lookup "id" id "tvSeason")]
    (last (sort-maps-by (filter #(% "collectionName")
                                results)
                        "releaseDate"))))