(ns cljcastr.transcript
  (:require [cljcastr.transcription.zencastr :as zencastr]
            [clojure.edn :as edn]))

(defn parse-transcript
  ([transcript-type text]
   (parse-transcript transcript-type false text))
  ([transcript-type include-footnotes? text]
   (case transcript-type
     :edn
     (let [transcript (edn/read-string text)]
       (if include-footnotes?
         transcript
         (:transcript transcript)))

     :json
     (let [transcript (-> (js/JSON.parse text) (.-text))]
       (if include-footnotes?
         {:transcript transcript, :footnotes []}
         transcript))

     :txt
     (let [transcript (zencastr/transcript->paragraphs text)]
       (if include-footnotes?
         {:transcript transcript, :footnotes []}
         transcript)))))
