diff --git a/deps.edn b/deps.edn index 175a3de..1472a06 100644 --- a/deps.edn +++ b/deps.edn @@ -5,11 +5,14 @@ yogthos/config {:mvn/version "1.1.8"} com.rpl/specter {:mvn/version "1.1.3"} ch.qos.logback/logback-classic {:mvn/version "1.2.5"} - org.suskalo/discljord {:mvn/version "1.3.0-SNAPSHOT"} + org.suskalo/discljord {:mvn/version "1.3.0-RC2"} org.clojure/core.async {:mvn/version "1.3.618"} cheshire/cheshire {:mvn/version "5.10.1"} fmnoise/flow {:mvn/version "4.1.0"} - hato/hato {:mvn/version "0.8.2"}} + hato/hato {:mvn/version "0.8.2"} + camel-snake-kebab/camel-snake-kebab {:mvn/version "0.4.2"} + org.clojure/alpha.spec {:git/url "https://github.com/clojure/spec-alpha2.git" + :sha "c087ded910b3532a938b37e853df79fc3b9c48c1"}} :jvm-opts ["-Dconfig=config.edn"] diff --git a/src/doplarr/arr_utils.clj b/src/doplarr/arr_utils.clj deleted file mode 100644 index a5e03fa..0000000 --- a/src/doplarr/arr_utils.clj +++ /dev/null @@ -1,45 +0,0 @@ -(ns doplarr.arr-utils - (:require - [clojure.tools.logging :as log] - [clojure.core.async :as a] - [fmnoise.flow :as flow :refer [then else]] - [hato.client :as hc])) - -(defn fatal-error [ex] - (log/fatal ex) - #_(System/exit -1)) - -(defn deep-merge [a & maps] - (if (map? a) - (apply merge-with deep-merge a maps) - (apply merge-with deep-merge maps))) - -(defn http-request [method url key & [params]] - (let [chan (a/chan) - put-close #(do - (a/put! chan %) - (a/close! chan))] - (hc/request - (deep-merge - {:method method - :url url - :as :json - :async? true - :headers {"X-API-Key" key}} - params) - put-close - put-close) - chan)) - -(defn rootfolder [base-url key] - (a/go - (->> (a/> (a/> (a/> (:body %) - (map utils/quality-profile-data))) - (else utils/fatal-error)))) - -(defn request [movie & {:keys [profile-id]}] - (a/go - (->> (a/kebab-case-keyword m)) + +(defn to-camel [m] + (cske/transform-keys csk/->camelCaseString m)) + +(defn process-search-result [result] + (-> result + (select-keys ["title" "year" "id" "tvdbId" "tmdbId"]) + from-camel)) + +(defn process-quality-profile [profile] + (->> (select-keys profile ["id" "name"]) + from-camel)) + +(defn request-and-process-body [request-fn process-fn & request-args] + (a/go + (->> (a/